2010-09-18 13 views
5

मैं इस कोड है जो संदर्भ "#version 330 मूल" हैआधुनिक ओपनजीएल में gl_ModelViewMatrix और gl_ModelViewProjectionMatrix क्या है?

gl_Position =   PerspectiveViewMatrix(90.0, AspectRatio, 0.01, 1000.0 ) 


         * TranslationMatrix(0, 0, -4 -0.35*MouseWheel)   


         * RotationMatrix(MouseMovement.y, X_AXIS)   
         * RotationMatrix(-MouseMovement.x, Y_AXIS)  
         * RotationMatrix(float(Strafing*3), Z_AXIS)  


         * TransformationMatrix 

         * in_Vertex; 

यह का कौन सा हिस्सा वर्ष gl_ModelViewMatrix है और कौन-सा हिस्सा gl_ModelViewProjectionMatrix है? (Gl_ProjectionMatrix क्या है कि ModelViewProjection बनाने के लिए इस्तेमाल किया गया था?)

उत्तर

6

मैं GLSL 3.3 के साथ भी परिचित नहीं हूँ, लेकिन मुझे यकीन है कि PerspectiveViewMatrix (यह भी कार्यक्षमता builin है?) मैट्रिक्स है कि पुराने builtin gl_ProjectionMatrix

की जगह का निर्माण gl_ModelViewMatrix सामान्य रूप से विश्व अंतरिक्ष में ऑब्जेक्ट के रूपांतरण मैट्रिक्स का उत्पाद है और इसका अपना "स्थानीय" परिवर्तन है, इसलिए इसे अनुवाद मैट्रिक्स, रोटेशनमैट्रिक्स और ट्रांसफॉर्मेशन मैट्रिक्स के उत्पाद के रूप में परिभाषित किया जा सकता है।


आपको अपने सभी shrader को सभी matrices भेजने की आवश्यकता है, उदा। वर्दी के रूप में ये मैट्रिक्स जिन्हें आपको स्वयं बनाने की आवश्यकता है (उदाहरण के लिए GLM का उपयोग करना)। प्रक्षेपण मैट्रिक्स के लिए आलसी उदाहरण:

// in your app 

std::array<GLfloat, 16> projection; 

glMatrixMode(GL_PROJECTION); 
glPushMatrix(); 
gluOrtho(...); 
glGetFloatv(GL_PROJECTION_MATRIX, projection.data()); 
glPopMatrix(); 

glUniformMatrix4fv(glGetUniformLocation(ShaderProgramID, "ProjectionMatrix"), 1, GL_FALSE, projection.data()); 

// in vertex shader 

uniform mat4 ProjectionMatrix; 
in vec4 InVertex; 

void main() { 
    gl_Position = ProjectionMatrix * InVertex; 
} 
+3

उन सभी matrices को हाल ही में कोर संदर्भ से हटा दिया गया है और हटा दिया गया है। प्रश्न यह था कि आजकल उनके बराबर क्या है, उदाहरण के साथ कि ऊपर कोड जो बहिष्कृत सुविधाओं का उपयोग नहीं करता है। –

+0

@ लीला डैक्स: उदाहरण जोड़ा गया – erjot

संबंधित मुद्दे