2013-01-31 9 views
5

तो मैं एक त्रिकोण मिल गया है:ओपनजीएल खंड शेडर्स कैसे जानते हैं कि बनावट में नमूना नमूना करना है?

और मैं एक शीर्ष शेडर मिल गया है:

uniform mat4 uViewProjection; 
attribute vec3 aVertexPosition; 
attribute vec2 aTextureCoords; 
varying vec2 vTextureCoords; 

void main(void) { 
    vTextureCoords = aTextureCoords; 
    gl_Position = uViewProjection * vec4(aVertexPosition, 1.0); 
} 

और मैं एक टुकड़ा शेडर मिल गया है:

precision mediump float; 
uniform sampler2D uMyTexture; 
varying vec2 vTextureCoords; 

void main(void) { 
    gl_FragColor = texture2D(uMyTexture, vTextureCoords); 
} 

और मैं शिखर और यूवी के तीन सेटों में फ़ीड करता हूं, इंटरलीव किया गया:

# x, y, z, s, t 
0.0, 1.0, 0.0, 0.5, 1.0 
-1.0, -1.0, 0.0, 0.0, 0.0 
1.0, -1.0, 0.0, 1.0, 0.0 

टुकड़ा शेडर पिक्सेल को आकर्षित करने के बारे में कैसे जानता है एक अलग पिक्सेल बी से? कौन सा शुल्क?

+0

आपने एक बनावट में सही खिलाया है? आप उन्हें एक जैसा होने की उम्मीद क्यों करेंगे या आप पूछ रहे हैं कि जीपीयू पर शेडर्स कैसे काम करते हैं? –

+0

@ जेससरामोस मैं पूछ रहा हूं कि शेडर्स कैसे काम करते हैं। मुझे समझ में नहीं आता कि क्या बदल रहा है और शेडर पास के बीच इसे कौन बदल रहा है। –

+0

@ जेनपॉल्ट के उत्तर की जांच करें। मैं एक ही बात कहने के लिए जा रहा था लेकिन उसने मुझे यह करने के लिए :) –

उत्तर

7

मैं इसे जीएल पाइपलाइन interpolates त्रिकोण चेहरे पर vTextureCoords की रैस्टराइज़ेशन चरण को समझते हैं, अंतर्वेशित मूल्य के साथ प्रत्येक पिक्सेल पर टुकड़ा शेडर चल रहा है।

+0

बहुत अच्छी व्याख्या। खुद मैने इससे बेहतर नहीं कहा होता। –

+0

तो 'vTextureCoords' में परिवर्तन? क्या सभी अलग-अलग चर किसी भी तरह बदल जाते हैं? –

+0

हां, खंड 'शेडर में सभी' अलग-अलग 'अलग-अलग मानों से भरे हुए हैं। – genpfault

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