मैं ओपनजीएल में परिवर्तन सीखने की कोशिश कर रहा हूं और मैं गणित गणना के लिए जीएलएम का उपयोग कर रहा हूं। मेरे पास एक वेक्टर है और मैं उस वेक्टर में कुछ रोटेशन लागू करना चाहता हूं। लेकिन मुझे आउटपुट vec3(0,0,0) के रूप में मिलता है

#define GLM_ENABLE_EXPERIMENTAL
#include <glm/ext/matrix_float4x4.hpp> // mat4x4
#include <glm/ext/matrix_transform.hpp> // translate, rotate, scale, identity
#include <glm/gtx/string_cast.hpp>
#include<iostream>
int main(){
        //define  a 4x4 model matrix
        glm::mat4 model;
        //define a vector
        glm::vec4 Position = glm::vec4(glm::vec3(0.4,0.2,0.2), 1.0);
        //create a model matrix with rotation of 45 degrees around z aixs
        model = glm::rotate(model,  45.0f, glm::vec3(0.0f, 0.0f, 1.0f));        
        //print the final vector position after rotation is applied
        std::cout<< glm::to_string(model*Position) <<std::endl;
        return 0;
}
0
anekix 19 नवम्बर 2018, 21:14

1 उत्तर

सबसे बढ़िया उत्तर

आपने अपने मॉडल मैट्रिक्स को इनिशियलाइज़ नहीं किया। होना चाहिए:

glm::mat4 model = glm::mat4(1.0f);

इसे पहचान मैट्रिक्स में प्रारंभ करने के लिए।

2
Rhu Mage 19 नवम्बर 2018, 18:20