[英]Error in OpenGL Redbook example, Chapter 3
我阅读了OpenGL阅读书第8版编辑器。 但是我无法从第3章“绘图命令示例”中创建示例。 在示例中,作者使用了自己的库vmath.h
。 但这不起作用。 他们忘记了添加到库函数“ vmath::translation(GLfloat, GLfloat, GLfloat);
”,尽管使用了它。 作者使用了自己的库“ vapp.h
”,这使我感到困惑。 有很多宏,通过哪个宏定义了类。 我真的很困惑 我使用线性代数的“ Eigen”库代替了它们的库。
这是我在GitHub上的代码
我编译并运行了该程序。 这行得通。 但是我看到一个黑色的窗口,但是我应该看到一个四个三角形。 我做错了什么? PS I通过用于“矩阵”和“顶点”的“本征库”重新编写了作者的程序。 我只看到黑屏。 为什么?! 这是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;
}
我恰好使用了这些着色器。 这是我应该看到的。
这是原始项目(MSVC ++)
这是一个包含文件(包括vapp.h
和vapp.h
)
当你设置你的model_matrix
,第二个参数glUniformMatrix4fv
应该是1,而不是4。另外,您在使用错误的指数frustum
。 将result(2, 0)
更改为result(0, 2)
,并对所有其他对执行相同操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.