使用单位矩阵的坐标将不起作用
Coordinates using idenity matrix won't work
基本上我为顶点着色器提供了一个识别矩阵,但由于某种原因它不起作用。
这是我的 C++ 代码:
glm::mat4 trans;
GLuint transformLoc = glGetUniformLocation(program, "transform");
glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(trans));
我在 glUseProgram()
之后这样做。
这是我的顶点着色器代码:
#version 330 core
layout (location = 0) in vec3 position;
layout (location = 1) in vec3 inColor;
layout (location = 2) in vec2 texCoord;
out vec3 ourColor;
out vec2 ourTextCoord;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(position, 1.0f);
ourTextCoord = texCoord;
ourColor = inColor;
};
gl_Position = vec4(position, 1.0f)
工作正常,但将它与标识矩阵相乘不起作用...
编辑:
我只看到黑屏。
从 0.9.9.0 开始,GLM 不再默认进行身份初始化(或任何初始化!)默认构造 vectors/matrices。
您可以 #define GLM_FORCE_CTOR_INIT
在 #include
使用 GLM 之前恢复旧行为。
基本上我为顶点着色器提供了一个识别矩阵,但由于某种原因它不起作用。
这是我的 C++ 代码:
glm::mat4 trans;
GLuint transformLoc = glGetUniformLocation(program, "transform");
glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(trans));
我在 glUseProgram()
之后这样做。
这是我的顶点着色器代码:
#version 330 core
layout (location = 0) in vec3 position;
layout (location = 1) in vec3 inColor;
layout (location = 2) in vec2 texCoord;
out vec3 ourColor;
out vec2 ourTextCoord;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(position, 1.0f);
ourTextCoord = texCoord;
ourColor = inColor;
};
gl_Position = vec4(position, 1.0f)
工作正常,但将它与标识矩阵相乘不起作用...
编辑: 我只看到黑屏。
从 0.9.9.0 开始,GLM 不再默认进行身份初始化(或任何初始化!)默认构造 vectors/matrices。
您可以 #define GLM_FORCE_CTOR_INIT
在 #include
使用 GLM 之前恢复旧行为。