【发布时间】:2016-06-24 16:46:37
【问题描述】:
(对不起我的英语水平......)
我尝试使用 glsl #version 440 编写自己的着色器,所以我也使用自己的投影矩阵,但我只得到这个: 而不是那个 (第二个没有投影矩阵)
有谁知道发生这种情况的原因吗?
矩阵定义:
// projectionMatrix is global defined
void Perspective(float fovy, float aspect, float near, float far)
{
fovy = degree*90;
float f;
f = 1/tan(fovy/2);
projectionMatrix[0] = f/aspect; projectionMatrix[4] = 0; projectionMatrix[8] = 0; projectionMatrix[12] = 0;
projectionMatrix[1] = 0; projectionMatrix[5] = f; projectionMatrix[9] = 0; projectionMatrix[13] = 0;
projectionMatrix[2] = 0; projectionMatrix[6] = 0; projectionMatrix[10] = (far+near)/(near-far); projectionMatrix[14] = (2*far*near)/near-far;
projectionMatrix[3] = 0; projectionMatrix[7] = 0; projectionMatrix[11] = -1; projectionMatrix[15] = 1;
gl
UniformMatrix4fv(posProjectionMatrix, 1, GL_TRUE, projectionMatrix);
}
顶点着色器:
#version 440
in vec4 vertexPosition;
in vec4 vertexColor;
out vec4 Color;
uniform mat4 modelMatrix;
uniform mat4 projectionMatrix;
uniform mat4 viewMatrix;
void main()
{
gl_Position = projectionMatrix*vec4(vertexPosition.xyz, 1);
Color = vertexColor;
}
//END
如果您需要更多代码,请询问。
【问题讨论】: