ile nasıl dönüştürebilirim? Glm :: vec3 (camera.target) öğesini bir glm :: mat4 (camera.rotationMatrix) ile dönüştürmek istiyorum. Çoğunu deneyin, bana bir hata verin: hata: 'originalTarget *' da ('kamera *') 'operatör *' için eşleşme yok -> Kamera :: rotationMatrix '. Sanırım bir vec3 * mat4 çarpamıyorum. GLM bir kısmı bunu dönüştürmek için çalışıyor mu? Dönüşümü yapmanın başka bir yolu var mı?Bir glm :: vec3'ü bir glm :: mat4
kodu:
void Camera::Update(void)
{
// Aplicamos la rotacion sobre el target
glm::vec3 originalTarget = target;
glm::vec3 rotatedTarget = originalTarget * rotationMatrix;
// Aplicamos la rotacion sobre el Up
glm::vec3 originalUp = up;
glm::vec3 rotatedUp = originalUp * rotationMatrix;
// Establecemos las matrices de vista y proyeccion
view = lookAt(
position, //eye
rotatedTarget, //direction
rotatedUp //up
);
projection = perspective(
FOV,
(float) getParent()->getEngine()->GetCurrentWidth()/getParent()->getEngine()->GetCurrentWidth() ,
near_plane,
far_plane);
}
Sanırım "4. öğe eşittir 1.0 ile", değil mi? Transfromları 0 ile çalışmayacaksınız. –
Fotoğraf makinesinin yukarı vektörü olduğu için tercüme edilmesine gerek olmadığından, bu durumda sıfırın daha uygun olması – Slicedpan
Üzgünüz. Tamamen –