使用单位矩阵的坐标不起作用[重复]

Posted

技术标签:

【中文标题】使用单位矩阵的坐标不起作用[重复]【英文标题】:Coordinates using idenity matrix won't work [duplicate] 【发布时间】:2020-06-03 19:43:30 【问题描述】:

基本上我为顶点着色器提供了一个识别矩阵,但由于某种原因它不起作用。

这是我的 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) 工作正常,但将其与识别矩阵相乘不起作用...

编辑: 我看到的只是黑屏。

【问题讨论】:

当你说“它不起作用”时,你遇到了什么?你看到黑屏了吗?有错误吗?着色器是否接收不同的矩阵?请具体 我看到黑屏 我也没有得到 glGetError() 的任何错误。 glm != glm-math 【参考方案1】:

从0.9.9.0开始,GLM 不再默认初始化(或任何初始化!)默认构造的向量/矩阵。

您可以在#includeing GLM 之前#define GLM_FORCE_CTOR_INIT 恢复旧行为。

【讨论】:

谢谢!!工作!!

以上是关于使用单位矩阵的坐标不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenGL 中使用矩阵——MVP 矩阵不起作用

GPS坐标在使用网络的黑莓9800中不起作用

Dijkstra 算法不起作用(邻接矩阵)

没有数据矩阵,nbclust 不起作用

OpenGL GLSL - 投影矩阵不起作用

自定义顶点处理器不起作用 - 矩阵乘法错误或其他啥?