我阅读了OpenGL Readbook第8编辑器。但我无法从第3章“绘图命令示例”中创建示例。作者在示例中使用了自己的库vmath.h
。但它不起作用。他们忘了添加库函数“vmath::translation(GLfloat, GLfloat, GLfloat);
”,虽然使用它。作者使用了自己的库“vapp.h
”,这让我很困惑。有很多宏,通过定义类的方法。我真的很困惑。
我使用了代替他们的库,线性代数的“特征”库。
Here is my code on GitHub
我编译并运行了这个程序。这行得通。但我看到一个黑色的窗户,但我应该看到一个四个三角形。我做错了什么?
附:我通过用于矩阵和顶点的“特征库”重新编写了作者的程序。我只看到黑屏。为什么?! Here is code on GitHub
我有两个着色器:
顶点着色器:
#version 400 core
uniform mat4 model_matrix;
uniform mat4 projection_matrix;
layout (location = 0) in vec4 position;
layout (location = 1) in vec4 color;
out vec4 vs_fs_color;
void main(void)
{
vs_fs_color = color;
gl_Position = projection_matrix * (model_matrix * position);
}
片段着色器:
#version 400 core
in vec4 vs_fs_color;
layout (location = 0) out vec4 color;
void main(void)
{
color = vs_fs_color;
}
我正好使用这些着色器。
Here is what I should see.
This is original project(MSVC++)
This is a include files(including vapp.h
and vapp.h
)
答案 0 :(得分:1)
当您设置model_matrix
时,glUniformMatrix4fv
的第二个参数应为1,而不是4.此外,您在frustum
中使用了错误的索引。将result(2, 0)
更改为result(0, 2)
并对所有其他对执行相同操作。