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 コンストラクターがある場合は自動変換されないため、float を使用して明示的に作成してみてください。

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 に答える