मैं ओपनजीएल में परिवर्तन सीखने की कोशिश कर रहा हूं और मैं गणित गणना के लिए जीएलएम का उपयोग कर रहा हूं। मेरे पास एक वेक्टर है और मैं उस वेक्टर में कुछ रोटेशन लागू करना चाहता हूं। लेकिन मुझे आउटपुट 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;
}
1 उत्तर
आपने अपने मॉडल मैट्रिक्स को इनिशियलाइज़ नहीं किया। होना चाहिए:
glm::mat4 model = glm::mat4(1.0f);
इसे पहचान मैट्रिक्स में प्रारंभ करने के लिए।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
opengl
ओपनजीएल (ओपन ग्राफिक्स लाइब्रेरी) एक ग्राफिक्स मानक और एपीआई है जो प्लेटफ़ॉर्म स्वतंत्र है और डेस्कटॉप, वर्कस्टेशन और मोबाइल उपकरणों के लिए उपलब्ध है। इसे हार्डवेयर-त्वरित रेंडरिंग प्रदान करने के लिए डिज़ाइन किया गया है, और इसलिए यह पारंपरिक सॉफ़्टवेयर रेंडरिंग में बहुत बेहतर प्रदर्शन देता है। OpenGL का उपयोग CAD सॉफ्टवेयर और कंप्यूटर गेम जैसे अनुप्रयोगों के लिए किया जाता है। OpenGL मानक, साथ ही OpenGL ES, क्रोनोस समूह द्वारा नियंत्रित किया जाता है।