मैं एक glm :: ve4 (camera.trotation) को glm :: mat4 (camera.rotationMatrix) द्वारा बदलना चाहता हूं। मैं गुणा करने की कोशिश करता हूं यह मुझे एक त्रुटि देता है: त्रुटि: 'originalTarget * ((कैमरा *) में' ऑपरेटर * 'के लिए कोई मिलान नहीं) -> कैमरा :: रोटेशनमैट्रिक्स'। मुझे लगता है कि मैं एक vec3 * mat4 गुणा नहीं कर सकता। क्या जीएलएम कुछ बदलाव इसे बदलने के लिए करता है? परिवर्तन करने के लिए अन्य तरीका?मैं एक glm :: ve4 द्वारा एक glm :: vec3 को कैसे बदल सकता हूं :: mat4
कोड:
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);
}
मान लें कि "चौथा तत्व 1.0 के बराबर है", नहीं? ट्रांसफॉर्म का अनुवाद 0 –
के साथ काम नहीं करेगा क्योंकि यह कैमरे के लिए अप वेक्टर है, इसलिए इसका अनुवाद करने की आवश्यकता नहीं है, इसलिए इस मामले में शून्य अधिक उपयुक्त है – Slicedpan
क्षमा करें। कोड को अच्छी तरह से नहीं पढ़ा है –