OpenGL moderno: pilhas VBO, GLM e matriz

epois de pesquisar e ler sobre o OpenGL Moderno, a fim de atualizar meu projeto existente, estou um pouco confuso, pois minha estrutura 3D é baseada no OpenGL 2.

so, tanto quanto eu aprendo ...

Precisamos gerar nosso Vertex-Buffer-Objects a partir de vértices, índices, normais, cores, UVs et

, então podemos usar o GLM para transformação de matriz e usamos apenas o VBO para criar ou manipular malhas, finalmente passamos tudo para o shader de vértice GLSL como este ...

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();
// }

PERGUNTA: Como fazemos transformações hierárquicas sem pushMatrix / popMatrix? (ou talvez façamos uma transformação hierárquica usando nossos VBOs, é possível?)

Se não for possível, como obter o mesmo resultado que pushMatrix / popMatrix usando GLM e biblioteca C ++ <stack>?

Digamos que preciso de algo assim:

> 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

questionAnswers(8)

yourAnswerToTheQuestion