मैंने अपने (पूर्व) नियोक्ता के लिए 3 डी गेम प्रोग्रामिंग का अपना उचित हिस्सा किया है, और अपने स्वयं के इंडी गेम्स के लिए अपने स्वयं के कस्टम इंजनों में भी।
प्रारंभ में, मैंने डायरेक्ट 3 डी 9, और डी 3 डीएक्स 9 के साथ शुरुआत की, जिसने मेरे लिए बहुत कुछ किया, और मुझे छाया के संदर्भ में सोचने की आवश्यकता नहीं थी।
उसके बाद, मैंने अपना पहला Direct3D 9 शेड्स लिखा, लेकिन ज्यादातर मैंने जो कुछ भी किया उसके लिए एक बहुत ही साधारण शेडर का उपयोग किया।
मेरे गेम इंजन के सबसे हाल के पुनरावृत्ति में, मैं डायरेक्ट 3 डी 11 में चला गया, और इसके साथ ही मैंने बहुत सारे शेड बनाए। मैंने GPU स्किनिंग, GPU कैलकुलेटेड कण, बहुत सारी लाइटिंग और पोस्ट प्रोसेसिंग इफेक्ट्स, सभी GPU में किए। वास्तव में अच्छा सामान।
अब तक मैंने केवल वर्टेक्स और पिक्सेल / टुकड़े टुकड़े का उपयोग किया है। हालांकि अभी भी बहुत सारी चीजें हैं जो मैंने अभी भी नहीं की हैं, मेरा मानना है कि मुझे इस बात का ठोस ज्ञान है कि वर्टेक्स और पिक्सेल / टुकड़े टुकड़े क्या करते हैं, और यह कि सभी पूरी 3 डी पाइपलाइन में कैसे फिट होते हैं।
अधिक हाल के घटनाक्रमों के साथ पकड़ने पर, मुझे नए शेडर चरणों के साथ बहुत दिलचस्पी हो गई है। यही है, ज्यामिति शेडर, और यहां तक कि नया, हल और डोमेन शेड्स।
मैंने कभी भी इन चरणों का उपयोग नहीं किया है, लेकिन जो मुझे पता है, उससे ज्यामिति शेडर, यदि सक्षम है, तो वर्टिकल शेडर के बाद चलाया जाता है, एक बार प्रत्येक परिवर्तित वर्टेक्स (या एक बार आदिम?) के लिए और आपको वर्टिस (और प्राइमेटिव्स) को छोड़ने की अनुमति देता है। , और नए बनाए (जो मुझे लगता है कि पाइप लाइन की शुरुआत में वापस जाते हैं?)।
मेरा अनुमान है कि ज्यामिति shader का मुख्य उपयोग GPU में ज्यामिति को प्रोग्राम करने के लिए होगा। एक सामान्य उपयोग एक एकल शीर्ष के आधार पर बिलबोर्ड क्वैड बनाने के लिए होगा, लेकिन मैं वास्तव में कई अन्य सामान्य परिदृश्यों के अलावा भग्न और अन्य सामान उत्पन्न करने की कल्पना नहीं करता हूं जो आप प्रोग्रामेटिक रूप से 100% उत्पन्न कर सकते हैं।
हल और डोमेन शेड के लिए, ऐसा लगता है जैसे वे टेसलेशन से संबंधित हैं (किसी न किसी सतह से चिकनी सतह बनाना?), और एक साथ या बिल्कुल भी उपयोग नहीं किया जाना चाहिए। "पैच" शब्द भी यहाँ आम लगता है।
किसी को भी मुझे समझाने की परवाह है, व्यावहारिक रूप में, ये नए-नए shader चरणों क्या हैं, वे 3D पाइपलाइन में कैसे फिट होते हैं, और किन मामलों में मुझे उनका उपयोग करने पर विचार करना चाहिए?