QMatrix4x4 proj (1.f, 0.f, 0.f, 0.f,
0.f, 1.f, 0.f, 0.f,
0.f, 0.f, 1.f, 0.0f,
0.f, 0.f, 1.1f, 1.f);
glm::mat4 proj;
proj = glm::perspective(
glm::radians(80.0f),
1.0f,
0.0f,
2.0f
);
什么都没发生。
我的印象是,当将0.0f、2.0f
放入近平面和远平面参数时,0.0f-2.0f范围内的任何顶点坐标都被线性插值到坐标系-1.0f-1.0f中,以用作归一化设备坐标。但是,无论我在这里放哪一对值,都没有呈现任何东西。
下面是我试图绘制的坐标:
rawverts = {
0.0f, 0.0f, 1.0f,
0.0f, 0.7f, 1.0f,
0.4f, 0.0f, 1.0f,
0.0f, -0.7f, 1.0f,
-0.4f, 0.0f, 1.0f
};
当将投影矩阵传递给顶点着色器时:
int projIndex = shaders->uniformLocation("proj");
...
shaders->setUniformValue(projIndex, QMatrix4x4(glm::value_ptr(proj)) );
顶点着色器本身:
#version 330 core
in vec3 vertex;
uniform mat4 translate;
uniform mat4 view;
uniform mat4 proj;
uniform float time;
uniform float aspect;
uniform vec2 resolution;
void main() {
gl_Position = proj * view * translate * vec4(vertex, 1);
}
您必须传递glm矩阵的QMatrix4x4转置矩阵。
然后而不是使用。
shaders->setUniformValue(projIndex, QMatrix4x4(glm::value_ptr(proj)) );
您必须使用:
shaders->setUniformValue(projIndex, QMatrix4x4(glm::value_ptr(proj)).transposed());
我试图用GLM来渲染一个对象,但是我得到了这个: 编辑:忘记提到我试图渲染的对象是一个简单的环面。 我做了很多调查,注意到返回。文档说,如果着色器中没有使用统一变量,即使声明了它,它也会返回。正如你在下面看到的,它已经被声明并且正在顶点着色器中使用。我检查了以确保它是有效的,诸如此类。 顶点着色器(简单的未点亮的红色): 片段着色器:
我对OpenGL、GLFW或GLEW没有太多的经验,所以我对这些库的故障排除能力微乎其微。我已经设法呈现了一个三角形([-1,-1,0],[1,-1,0],[0,1,0]),但是当使用顶点属性坐标和颜色属性作为立方体时,它似乎无法呈现。我的代码、着色器和矩阵运算可能有很多问题。我希望我对我所做的事情有更清楚的了解,这样我就可以对我的错误有更详细的描述。目前,上面的代码只呈现窗口。我最初遵循http
应该是这样的: 而不是这个: 我的屏幕宽度是1000,高度是600。 我正在使用OpenGL(lwjgl)在java中制作2d游戏。我可以画一个三角形,但使用我的着色器时它不起作用。着色器编译没有错误,但屏幕变黑了。 我完全不知道该怎么做,我必须启用什么吗? 这是我在GLSL中的vertexShader代码 这是片段着色器: 我最近发现,如果我只运行它有效的片段着色器,我就会得到指定的颜色。但是如
我正在尝试将FBO的深度纹理和颜色纹理链接到GLSL着色器(版本4.0) 问题是,同时只有一个链接,这很奇怪,因为其他纹理可以很好地链接在一起(例如:漫反射贴图、法线贴图和镜面反射贴图) 以下是我的绑定RT代码: 我真的不知道这里怎么了。。。
我想使用Alpha / Blend模式进行未来的事情(主要是交易和可能的图像混合)。 好吧,我不能让它使用LWJGL(GL1.1)工作,我已经尝试了其他混合模式,但没有工作,也没有改变背景或类似的东西... < Li > http://I . imgur . com/Chu 4 ygs . png-GL _ BLEND始终启用,一切都是透明的 < Li > http://I . imgur . c