0

我在按照本教程尝试将矩阵和向量与 GLM 相乘时遇到此错误。

reading1.cpp: In function ‘int main()’:
reading1.cpp:50:44: error: conversion from ‘glm::detail::tmat4x4<int>’ to non-scalar type ‘glm::mat4 {aka glm::detail::tmat4x4<float>}’ requested

我正在使用此命令进行编译。

g++ 1.cpp -o 1 -lGLEW -lglfw

#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>

//program



glm::mat4 myMatrix = glm::translate(10,0,0);
glm::vec4 myVector(10,10,10,0);
glm::vec4 transformedVector = myMatrix * myVector;

//program
4

1 回答 1

4

由于大量使用模板,我发现 GLM 对类型非常挑剔。我的猜测是您的 vec4 或 mat4 正在创建int类型,而不是float.

尝试使用浮点数显式创建它们,因为如果存在与模板匹配的 int 构造函数,它不会自动转换它们。

glm::mat4 myMatrix = glm::translate(10.f,0.f,0.f);
glm::vec4 myVector(10.f,10.f,10.f,0.f);
于 2012-12-04T05:34:48.197 回答