OpenGL के संदर्भ में "सेंट" का क्या अर्थ है?


20

मैंने देखा है कि stअन्य OpenGL के टुकड़े शेड्स को देखते हुए यह शब्द कुछ समय बाद आया है। हालाँकि, मुझे नहीं पता कि यह किस लिए खड़ा है या इसका क्या उपयोग है। यहाँ एक उदाहरण है:

uniform vec2 u_resolution;

vec2 st = gl_FragCoord.xy/u_resolution;

मैं समझ सकता हूं कि यह पिक्सेल निर्देशांक को 640 x 480 के बजाय 0.0 - 1.0 के सामान्यीकृत निर्देशांक में परिवर्तित कर रहा है (उदाहरण के लिए)।

मैंने भी चीजों को देखा है position.st

इसका क्या मतलब है?

जवाबों:


25

बनावट निर्देशांक के घटकों के लिए सामान्य नाम यू और वी हैं। हालांकि, अगले अक्षर (3 डी बनावट के लिए) डब्ल्यू है, जो किसी स्थिति के घटकों के नाम के साथ संघर्ष का कारण बनता है : एक्स, वाई, जेड, और डब्ल्यू

इस तरह के संघर्षों से बचने के लिए, OpenGL का सम्मेलन है कि बनावट निर्देशांक के घटकों का नाम S, T और R है। इस प्रकार, आपके पास फ़ंक्शन कॉल इस तरह हैं:

glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);

जहां GL_TEXTURE_WRAP_Sबनावट के एस घटक में लपेटने को संदर्भित करता है।

दुर्भाग्य से, OpenGL ने GLSL से पहले S, T और R को उठाया और चारों ओर स्विज़ल मास्क आए। आर, निश्चित रूप से, आर , जी, बी, और ए के साथ संघर्ष करता है ऐसे संघर्षों से बचने के लिए, जीएलएसएल में, बनावट स्विज़ल मुखौटा का उपयोग करती है, एस, टी, पी और क्यू का समन्वय करती है ।

GLSL में, आप XYZW, STPQ या RGBA के साथ स्विज़ कर सकते हैं। वे सभी बिल्कुल एक ही बात का मतलब है। तो position.stबिल्कुल वैसा ही है position.xy। हालाँकि, आपको अलग-अलग सेट से स्विज़ल मास्क को संयोजित करने की अनुमति नहीं है। इसलिए position.xtअनुमति नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.