use*_*426 1 opengl vector matrix matrix-multiplication glm-math
我在按照本教程尝试使用 GLM 进行矩阵和向量相乘时遇到此错误。
\n\nreading1.cpp: In function \xe2\x80\x98int main()\xe2\x80\x99:\nreading1.cpp:50:44: error: conversion from \xe2\x80\x98glm::detail::tmat4x4<int>\xe2\x80\x99 to non-scalar type \xe2\x80\x98glm::mat4 {aka glm::detail::tmat4x4<float>}\xe2\x80\x99 requested\n
Run Code Online (Sandbox Code Playgroud)\n\n我正在使用这个命令来编译。
\n\ng++ 1.cpp -o 1 -lGLEW -lglfw
\n\n#include <glm/glm.hpp>\n#include <glm/gtx/transform.hpp>\n\n//program\n\n\n\nglm::mat4 myMatrix = glm::translate(10,0,0);\nglm::vec4 myVector(10,10,10,0);\nglm::vec4 transformedVector = myMatrix * myVector;\n\n//program\n
Run Code Online (Sandbox Code Playgroud)\n
我发现由于大量使用模板,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);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2442 次 |
最近记录: |