ठीक है, मेरे जीएलएसएल खंडक शेडर में मैं अंतरिक्ष में किसी विशेष रेखा से खंड की दूरी की गणना करने में सक्षम होना चाहता हूं।glsl में gl_FragCoord की गणना कैसे करें
varying vec2 fake_frag_coord;
//in vertex shader:
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
fake_frag_coord=(gl_ModelViewProjectionMatrix * gl_Vertex).xy;
अब टुकड़ा शेडर में मैं उम्मीद:
इसी का परिणाम है कि मैं पहली बार दर्पण gl_FragCoord
में क्या समाप्त होता है मेरी शीर्ष शेडर में घटती-बढ़ती vec2 सेट का उपयोग करने के लिए कोशिश कर रहा हूँ है
gl_FragCoord.xy==fake_frag_coord
लेकिन ऐसा नहीं है। पाइपलाइन gl_Position
पर gl_FragCoord
में बदलने के लिए क्या ऑपरेशन करता है कि मैं fake_frag_coord
पर करने की उपेक्षा कर रहा हूं?
मैं गलत होने के बारे में गलत था, लेकिन gl_ModelViewProjectionMatrix * gl_Vertex संभावित रूप से गणना त्रुटियों का उपयोग करने के बारे में सही था। – karx11erx
नाइटपिक: जो वास्तव में आपको सामान्यीकृत डिवाइस निर्देशांक की बजाय क्लिप-स्पेस निर्देशांक देगा, क्योंकि आप परिप्रेक्ष्य विभाजन नहीं कर रहे हैं जो रास्टरराइज़ेशन प्रक्रिया (वर्टेक्स शेडर और खंड शेडर के बीच) के दौरान होता है। http://www.glprogramming.com/red/chapter03.html#name1 – Pike65
@ Pike65 यह सिर्फ एक नाइटपिक नहीं है, इसका परिणाम परिप्रेक्ष्य प्रक्षेपण के लिए पूरी तरह अलग मूल्यों में होना चाहिए। –