Dopo aver cercato e letto su Modern OpenGL per aggiornare il mio progetto esistente, sono un po 'confuso, dal mio framework 3D basato su OpenGL 2.1.Modern OpenGL: VBO, GLM e Matrix Stacks
in modo, per quanto imparo ...
Abbiamo bisogno di generare i nostri Vertex-Buffer-Oggetti da vertici, indici, normali, colori, UV, ecc
poi possiamo usare GLM per matrice di trasformazione, e utilizzare solo VBO per creare o manipolare mesh, infine si passa tutto in Shader GLSL vertex simili ...
glm::mat4 MVP = projection * view * model; glUniformMatrix4fv(glGetUniformLocation(shaderProgramID, "MVP"), 1, GL_FALSE, glm::value_ptr(MVP)); //or &MVP[0][0] // uniform mat4 MVP; // in vec3 Vertex; // void main(void) // { // gl_Position = MVP * vec4(Vertex, 1.0); //instead of ftransform(); // }
DOMANDA: Come facciamo le trasformazioni gerarchiche senza pushMatrix/popMatrix? (o forse facciamo una trasformazione gerarchica usando i nostri VBO, è possibile?)
Se non è possibile, come ottenere lo stesso risultato di pushMatrix/popMatrix utilizzando la libreria stack> GLM e C++ <?
Diciamo che ho bisogno di qualcosa di simile:
> Set identity
> Translate to X, Y, Z
> Draw Mesh 1
> Rotate 0.5 by X axis
> Draw Mesh 2
> Scale down to 0.1
> Draw Mesh 3
@ BЈовић: [OpenGL Mathematics (GLM)] (http://glm.g-truc.net/), una libreria C++ di sola intestazione per matematica a matrice/vettoriale. – genpfault