मैं ग्राफिक्स प्रोग्रामिंग के लिए अपेक्षाकृत नया हूं, और मैं अभी कुछ किताबें पढ़ रहा हूं और ट्यूटोरियल्स के माध्यम से स्कैन कर रहा हूं, इसलिए अगर मुझे मूर्खतापूर्ण सवाल लगता है तो कृपया मुझे क्षमा करें।वास्तव में एक पिक्सेल शेडर क्या करता है?
मुझे डायरेक्टएक्स 11 की मूल बातें मिल रही हैं और चल रही हैं, और अब मैं कुछ मजा ले रहा हूं। तो स्वाभाविक रूप से मैं शेडर पाइपलाइन में भारी पढ़ रहा हूं, और मैं पहले से ही मोहक हूं। कोड का एक सरल, छोटा टुकड़ा लिखने का विचार जिसे संसाधनों को बर्बाद किए बिना एक सेकंड के हर 60 वें स्थान पर हजारों बार चलाने के लिए पर्याप्त कुशलता होनी चाहिए, मुझे जारी रखने से पहले अवधारणा को समझने में जल्दी और मुझे गड़बड़ करने से पहले की चीज़ों का। मुझे जो परेशानी हो रही है वह है कि पिक्सेल शेडर वास्तव में क्या कर रहा है।
वर्टेक्स shaders को समझने के लिए, आप एक समान डेटा संरचनाओं कि इसके बारे में जानकारी संबंधित हैं, स्थिति और बनावट निर्देशांक की तरह में एक वस्तु का कोने का आयोजन, और फिर शेडर में प्रत्येक शिखर पारित सरल 3 डी द्वारा 2D पर से परिवर्तित हो रहे हैं trasformation matrices का रास्ता। जब तक मैं इसे समझता हूं, मैं इसे कोड करने के तरीके के बारे में बता सकता हूं।
लेकिन मुझे पिक्सेल शेडर्स नहीं मिलते हैं। मुझे क्या मिलता है कि कशेरुक शेडर का उत्पादन पिक्सेल शेडर का इनपुट है। तो क्या यह सिर्फ पॉलीगॉन के शीर्षकों के 2 डी निर्देशांक पिक्सेल शेडर को सौंपना नहीं होगा? मुझे समझने के लिए क्या आया है कि पिक्सेल शेडर व्यक्तिगत पिक्सेल प्राप्त करता है और रंग और प्रकाश जैसी चीज़ों को निर्धारित करने के लिए उन पर गणना करता है। लेकिन अगर यह सच है, तो कौन से पिक्सेल? पूरी स्क्रीन या केवल पिक्सल जो परिवर्तित 2 डी बहुभुज के भीतर स्थित हैं?
या क्या मैंने पूरी तरह से कुछ गलत समझा है?
ठीक है, मुझे लगता है कि अब मैं समझता हूं। क्योंकि मैं एक दृश्य शिक्षार्थी हूं, हालांकि, मैंने जो वर्णन किया है उसका चित्र मैंने बनाया है, इसलिए कृपया मुझे बताएं कि मुझे कुछ याद आ रहा है या नहीं। http://postimage.org/image/9oy2nroqr/ – FatalCatharsis
एक गलती: पोस्ट-वर्टेक्सशेडर निर्देशांक ** ** पिक्सेल निर्देशांक नहीं हैं, लेकिन _normalized_। डायरेक्ट 3 डी के लिए इसका मतलब है कि वे 0.0 और 1.0 (ओपनजीएल में -1.0 और 1.0) के बीच हैं। यह पहली बार बहुत सहज नहीं है, क्योंकि स्क्रीन आमतौर पर वर्ग नहीं होती है, लेकिन यह "बस काम करती है" (कोई चिंता नहीं, आपके लिए कुछ खास नहीं है!) और हार्डवेयर में गणना करने के लिए यह अधिक कुशल है (उदाहरण के लिए क्लिपिंग) अंतरिक्ष। बाकी अच्छा दिखता है (geom shader, tesselation, और क्लिपिंग को "सामान जो बीच में होता है" के रूप में जाना जाता है)। – Damon
आह होचा, मैं वास्तव में सामान्यीकृत निर्देशांक पसंद करता हूं, क्योंकि सबकुछ एक ही पैमाने पर होगा, चाहे आपका चुने हुए स्क्रीन रिज़ॉल्यूशन चाहे, (ओपनग्ल थोड़ा अजीब लगता है, -1 से 1)। तो ज्यामिति शेडर और टेस्सेलेशन चरणों के बीच में होता है? मुझे लगता है कि वे पहले आते हैं क्योंकि नए शिखर को कशेरुक शेडर में खिलाया जा सकता है और स्क्रीन कॉर्ड में परिवर्तित किया जा सकता है। नए बनाए गए हैं जो स्वचालित रूप से बनाए गए हैं 2 डी? – FatalCatharsis