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