我在此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
答案 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);