私の既存のプロジェクトをアップグレードするためにModern OpenGLについて検索して読んだら、私の3DフレームワークはOpenGL 2.1に基づいているので、ちょっと混乱します。そう、私の知る限り学ぶよう最新のOpenGL:VBO、GLM、Matrix Stacks
...
我々は頂点、インデックス、法線、色、UVのから私たちの頂点バッファ・オブジェクトを生成する必要がなど
その後、我々マトリックス変換にGLMを使用して、我々は唯一のメッシュを作成したり、操作するためVBOを使用することができ、最終的に我々はこのようGLSLの頂点シェーダにすべてを渡す...
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(); // }
質問:pushMatrix/popMatrixを使用しない階層的な変換をどのようにしますか? (または可能であればVBOを使用して階層的な変換を行うことは可能でしょうか?)
GLMとC++ <スタック>ライブラリを使用してpushMatrix/popMatrixと同じ結果を達成する方法はありますか?
は、私がこのような何か必要があるとしましょう:
> 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/)は、行列/ベクトル演算のためのヘッダ専用C++ライブラリです。 – genpfault