2010-03-04 16 views
6

प्रस्तुत करता है मैं अपने पुराने ओपनजीएल प्रोग्राम में कुछ शेडर्स जोड़ने की कोशिश कर रहा हूं जो बहुत सारे GL_POINTS और कुछ GL_LINES खींचता है। समस्याओं के बिनाखंडित शेडर के साथ जीएलएसएल केवल काले GL_POINTS

#version 120 

void main() 
{ 
    vec4 myOutputColor = gl_Color; 
    gl_FragColor = myOutputColor; 
    //gl_FragColor.r = 0.5; 
} 

इन दो shaders संकलन और लिंक:

वर्टेक्स शेडर:

void main() 
{ 
    vec4 v = vec4(gl_Vertex); 
    v.z = v.z + sin(v.x*v.x + v.y*v.y)/10.0; 
    gl_Position = gl_ModelViewProjectionMatrix * v; 
} 

टुकड़ा शेडर

मैं इन दो shaders बनाया। और कशेरुक शेडर बहुत अच्छा काम करता है, मैं कशेरुक शेडर में उस पाप का उपयोग करके विस्थापित GL_POINTS देख सकता हूं। लेकिन समस्या यह है कि अगर मैं पृष्ठभूमि रंग काला नहीं हूं तो मैं केवल अपने जीएल_POINTS और GL_LINES देख सकता हूं क्योंकि सभी बिंदुओं और रेखाओं को काला प्रदान किया जाता है। ऐसा लगता है कि प्रतिपादन कोड में glColor3f के साथ सेट सभी रंगों को अनदेखा किया जाता है। अगर मैं अपने टुकड़े के शेडर में टिप्पणी की गई रेखा को अनदेखा करता हूं तो मैं सभी रेखाएं और अंक लाल कर सकता हूं, लेकिन gl_Color को उस रंग से मेल नहीं करना चाहिए जो प्रत्येक बिंदु के लिए glColor3f के साथ सेट किया गया था?

क्या मेरे ओपनजीएल कोड में कुछ और है जो इस व्यवहार का कारण बन सकता है?

उत्तर

11

आपको कशेरुक शेडर में रंग पारित करने की आवश्यकता है।

gl_FrontColor = gl_Color; 
+0

धन्यवाद! अब काम करता है! मुझे नहीं पता कि मैंने ट्यूटोरियल्स में उस हिस्से को कैसे याद किया .. :) – ivans

+1

और अधिक के लिए यहां जवाब भी देखें: http://stackoverflow.com/questions/6430154/what-is-the-relationship-between-gl- रंग और जीएल-frontcolor में दोनों-शिखर और fr –

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