没有透视投影和视图矩阵,我的场景就可以了:
如果我使用相机,结果会很奇怪:
当我使用结合视图/摄像机矩阵的投影时,我总是(即使向各个方向移动)会得到一个空白屏幕,或者我喜欢称其为:“黑屏故障”。
Mat4模型:(模型在x轴上的旋转)
1.0 0.0 0.0 0.0
0.0 0.4888726 0.8723553 0.0
0.0 -0.8723553 0.4888726 0.0
0.0 0.0 0.0 1.0
查看Mat4 :(相机在y轴上略微移动和旋转)
0.94107544 0.0 0.33819667 -0.53266037
0.0 1.0 0.0 0.0
-0.33819667 0.0 0.94107544 2.4321942
0.0 0.0 0.0 1.0
投影垫4:
1.299038 0.0 0.0 0.0
0.0 1.7320509 0.0 0.0
0.0 0.0 1.002002 -2.002002
0.0 0.0 1.0 0.0
透视项目计算:
thf=tan(torad(60)/2); ar=800/600; zn=1; zf=1000;
1/(thf*ar) 0 0 0
0 1/thf 0 0
0 0 (-zn-zf)/(zn-zf) 2*zn*zf/(zn-zf)
0 0 1 0
我的顶点着色器:
#version 330
attribute layout(location = 0) vec3 Position;
attribute layout(location = 1) vec3 TexCoord;
attribute layout(location = 2) vec3 Normal;
out vec3 TexCoords;
uniform mat4 Model;
uniform mat4 View;
uniform mat4 Projection;
void main(){
gl_Position = Projection * View * Model * vec4(Position, 1);
TexCoords=TexCoord;
}
事实证明,有时布尔值可能会严重破坏您的利益。
glUniformMatrix4(UniformHandle, true, ubo); // true for row-major order
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句