Hier habe ich eine einfache OpenGL-Funktion implementieren wollen, die für glulookat()
ähnelt:Opengl Precision Konvertierungsfehler Übersetzungsfehler E0415
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 hat mir gesagt, dass:
Error (active) E0415 no suitable constructor exists to convert from "double" to "glm::detail::tmat4x4<glm::core::type::precision::lowp_float>"
I Ich weiß, dass dieses Problem durch eine Typkonvertierung verursacht werden kann. Nachdem ich jedoch alle 0.0
zu 0
geändert habe, treten ähnliche Probleme erneut auf (n o passender XXX von "int"
bis XXX). Ich konnte nicht herausfinden, wie ich es lösen könnte. Gibt es irgendwelche Vorschläge?
War es etwas falsch mit [ 'glm :: LookAt()'] (http://glm.g-truc.net/0.9 .8/api/a00169.html # gaf8eef81da1ad09f6a8920101c01eaae4) in ['GLM_GTC_matrix_transform'] (http://glm.g-truc.net/0.9.8/api/a00169.html)? – genpfault
Ohne VS2017 zur Hand, aber '= (' sieht mir ziemlich komisch aus. Sollte es nicht 'mat4 r (...);' sein? – BDL
Wich Opengl Version? – Rama