将矩阵和向量与GLM相乘时出错

时间:2012-12-04 05:29:29

标签: opengl vector matrix matrix-multiplication glm-math

我在此tutorial之后尝试使用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

1 个答案:

答案 0 :(得分:4)

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

尝试使用float显式创建它们,因为如果有可用的int构造与模板匹配,它将不会自动转换它们。

glm::mat4 myMatrix = glm::translate(10.f,0.f,0.f);
glm::vec4 myVector(10.f,10.f,10.f,0.f);