0

編集: わかりました:D 問題: glm が列優先行列を使用することを完全に忘れていました。GL_TRUE を GL_FALSE に変更するだけで、すべて問題ありません。


ProjectionMatrix で ModelMatrix を計算しようとしています。そのようです:

#version 330

layout(location = 0) in vec4 position;
layout(location = 1) in vec4 color;


uniform mat4 projectionMatrix;   //This are the Matrixes from my cpp-app
uniform mat4 modelMatrix;        //With a debugger that can show all active uniforms i checked their values: They're right!

uniform mat4 testUni;            //Here I checked if its working when I precompute the model and perspective matrices in my source: works
mat4 viewMatrix = mat4(1.0f);

noperspective out vec4 vertColor;


mat4 MVP = projectionMatrix * modelMatrix ; //Should actually have the same value like testUni

void main() 
{


gl_Position = testUni * position ;    //Well... :) Works
gl_Position = MVP * position ;    //Well... :) Doesn't work [Just the perspective Transforn]


vertColor = position;
}
4

1 に答える 1

1

ステートメントを移動する

mat4 MVP = projectionMatrix * modelMatrix ; //Should actually have the same value like testUni

main()。シェーダーの実行はメインから始まります。頂点ごとの計算を避けたい場合は、行列を外側で事前計算し、ユニフォームとして提供します。

于 2013-01-03T19:46:17.323 に答える