gpt4 book ai didi

c++ - Opengl Precision Conversion Error 编译错误E0415

转载 作者:行者123 更新时间:2023-11-28 05:09:00 26 4
gpt4 key购买 nike

这里我想实现一个类似于glulookat()的简单OpenGL函数:

mat4 Transform::lookAt(vec3 eye, vec3 up) {
vec3 w = glm::normalize(eye);
vec3 u = glm::normalize(glm::cross(up, w));
vec3 v = glm::cross(w, u);
mat4 r = (
u.x, u.y, u.z, 0,
v.x, v.y, v.z, 0,
w.x, w.y, w.z, 0,
0, 0, 0, 1
);

mat4 t = (
1.0, 0.0, 0.0, -eye.x,
0.0, 1.0, 0.0, -eye.y,
0.0, 0.0, 1.0, -eye.z,
0.0, 0.0, 0.0, 1.0
);

mat4 result = glm::transpose(r)*glm::transpose(t);
return result;

VS2017 告诉我:

Error (active)  E0415   no suitable constructor exists to convert from "double" to "glm::detail::tmat4x4<glm::core::type::precision::lowp_float>"

我知道这个问题可能是类型转换引起的,但是,我将所有的0.0修改为0后,又出现了类似的问题(no suitable XXX from “int” 到 XXX)。我不知道如何解决它。有什么建议吗?

最佳答案

您的矩阵声明代码中存在语法错误,mat4 r = (...)是错的。正确的语法应该是:

mat4 r(...);

(没有 = 中间)

关于c++ - Opengl Precision Conversion Error 编译错误E0415,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43940962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com