Man skapar en
Kod:
char* binary_data_verts=read_binary("filename_verts.bin", 0);
och en
Kod:
char* binary_data_uv=read_binary("filename_uv.bin", 0);
Kod:
char* read_binary(std::string str, unsigned int nr)
{
char* data;
std::ifstream is;
is.open(str, std::ios::binary);
is.seekg(0, std::ios::end);
binary_length[nr]=is.tellg();
is.seekg(0, std::ios::beg);
data=new char[binary_length[nr]];
is.read(data, binary_length[nr]);
is.close();
return data;
}
Sedan är det bara att trycka in datan i
Kod:
glBufferData(GL_ARRAY_BUFFER, binary_length[0], binary_data_verts, GL_STATIC_DRAW);
Kod:
glBufferData(GL_ARRAY_BUFFER, binary_length[0], binary_data_uv, GL_STATIC_DRAW);
Laddningen tar ganska lång tid så det är läge att spara om alla olika 3D-modeller som har olika format till binärt så det laddas fortare. Verts (glm::vec3) och UV:s (glm::vec2) omvandlas till binärt, struntar i ljus (normals).
Varje level laddas självklart också separat.