gpt4 book ai didi

c++ - OpenGL 红皮书示例中的错误,第 3 章

转载 作者:行者123 更新时间:2023-11-28 07:15:21 26 4
gpt4 key购买 nike

我阅读了 OpenGL Readbook 8th Editor。但是我无法创建第 3 章“绘图命令示例”中的示例。作者在示例中使用了自己的库 vmath.h。但它不起作用。他们忘记添加到库函数“vmath::translation(GLfloat, GLfloat, GLfloat>);”,尽管使用了它。作者使用了自己的库“vapp.h”,这让我很困惑。有很多宏,通过它来定义类。我真的很困惑。我没有使用他们的库,而是使用了线性代数的“Eigen”库。

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)

最佳答案

当您设置 model_matrix 时,glUniformMatrix4fv 的第二个参数应该是 1,而不是 4。另外,您在 frustum 中使用了错误的索引。将 result(2, 0) 更改为 result(0, 2) 并对所有其他对执行相同的操作。

关于c++ - OpenGL 红皮书示例中的错误,第 3 章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20328677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com