c++ - 使用单位矩阵的坐标不起作用
问题描述
基本上我为顶点着色器提供了一个识别矩阵,但由于某种原因它不起作用。
这是我的 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 不再默认初始化(或任何初始化!)默认构造的向量/矩阵。
您可以#define GLM_FORCE_CTOR_INIT
在#include
ing GLM 之前恢复旧的行为。
推荐阅读
- java - 调用 Marketo API 时出现 Java 未知主机异常
- qr-code - 如何在现有图像上嵌入二维码?
- react-native - 在 ReactNative 中从 InnerObject 获取数据
- android - 对本机队列和任务做出反应以进行后台和离线处理
- angularjs - 如何在 Angular JS 的 ng-repeat 中创建小计
- angularjs - 在AngularJS中单击一次后如何永久隐藏按钮
- r - 如何在简单的特征集合中将点突变为线
- c - 为什么仅在将变量传递给“math.h”函数时才显式使用“-lm”?
- android - 需要在 Android 和 iOS 中集成应用内购买以与患者进行视频通话?
- windows - 在 CMD 搜索中排除 Windows 文件夹