为什么GLM不翻译顶点
Why glm does not translate vertex
我正在尝试使用GLM转换矩阵转换。
,但看起来,我做错了什么。我试图更改Vemm和M V的侧面,但是我也有同样的结果。RES具有与to
相同后的值;
void transform(V3 &to, PTransformation t)
{
float v1 = to.x();
float v2 = to.y();
float v3 = to.z();
glm::vec4 v = glm::vec4(v1, v2, v3, 1.0f);
glm::vec3 valuesToTranslate(t.translateX, t.translateY, t.translateZ);
glm::mat4 m = glm::translate(valuesToTranslate);
glm::vec4 res = v * m;
to.e[0] = res.x;
to.e[1] = res.y;
to.e[2] = res.z;
}
我已经用GLM 0.9.9和GCC 7.4.0对此进行了测试,并且在切换v
和m
的乘法顺序后起作用。
glm::vec4 v = glm::vec4(0.0, 4.0, 0.0, 1.0f);
glm::vec3 valuesToTranslate(8.0, 0.0, 0.0);
glm::mat4 m = glm::translate(valuesToTranslate);
glm::vec4 res = m * v;
// expected output: vec(8.0, 4.0, 0.0, 1.0)
std::cout << glm::to_string(res) << std::endl;
如果您仍然没有在自己的代码中获得预期结果,我建议检查输入值,并且未能通过检查您的GLM版本没有已知问题。
也许您的输入数据无效?您可以显示输入数据
相关文章:
- 如何循环打印顶点结构
- 不同翻译单元中不可重载的非内联函数定义
- D3D11-将混合权重和索引传递到顶点着色器
- 从返回的顶点缓冲区查询顶点结构
- Vulkan 中的动态顶点缓冲区格式设置
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 需要将一行代码从C++ Qt翻译成PyQt
- 为什么未命名的结构内联变量在每个翻译单元中没有相同的地址?
- 如何将一半传递给顶点着色器?
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- 在没有 API 的情况下使用谷歌翻译文本
- QT QOpenGLWidget:如何在不使用数据块复制的情况下修改VBO中的单个顶点值?
- 使用 OpenGL 4.5 更改所选顶点的颜色
- Direct3D 11 - HLSL - 获取顶点索引 ID
- 创建异构顶点数据数组的可移植方法
- 使用 glvertex4i 传递网格面索引时的顶点着色器错误
- 如何执行 cppcheck 交叉翻译单元 (CTU) 静态分析?
- 模板变量是否允许在多个翻译单元中并有效合并?
- 是否允许类在程序中的不同翻译单元之间具有不同的定义?
- 为什么GLM不翻译顶点