2011-04-10 13 views
7

मैं उन संसाधनों की तलाश में हूं जो मुझे बेहतर तरीके से समझ सकते हैं कि गेम में किस प्रकार की चीजें शेडर्स का उपयोग किया जाता है, वे क्या कर सकते हैं, और शायद और भी महत्वपूर्ण बात यह है कि क्या वे नहीं कर सकते। मैं समझता हूं कि ग्राफिक्स पाइपलाइन कैसे काम करती है और यह सब, और मैंने जीएलएसएल में कुछ बहुत ही बुनियादी शेडर्स बनाए हैं (ज्यादातर फिक्स्ड-फ़ंक्शन पाइपलाइन कार्यक्षमता को प्रतिस्थापित करने के लिए), लेकिन मैं अभी तक पूरी तरह से समझ नहीं पा रहा हूं कि कस्टम शेडर्स के साथ कौन सी चीजें संभव हैं , जो चीजें अधिक कुशलता से की जा सकती हैं, आदि। मैं कुछ तकनीकों के कुछ उदाहरण ढूंढने में सक्षम हूं, विशेष रूप से प्रकाश व्यवस्था, लेकिन मैं उनके उपयोग के बारे में अधिक उच्च स्तरीय अवलोकन की तलाश में हूं।खेलों के लिए शेडर तकनीकों/उपयोगों का अवलोकन/शोकेस

कुछ रोचक तकनीकों के लिंक और स्पष्टीकरण, एक सिंहावलोकन के विपरीत, भी सराहना की जाती है (लेकिन एक सिंहावलोकन से कम;)), जीएलएसएल या छद्म कोड में प्राथमिकता से।

+0

यह प्रश्न http://gamedev.stackexchange.com/ – Twelve47

+0

के लिए बेहतर अनुकूल हो सकता है, मुझे लगता है कि यह एक बहुत ही वैध प्रश्न है। मैं इसके बारे में भी सोच रहा हूं, यही कारण है कि मुझे आपका प्रश्न यहां मिला है। मैं पूरी तरह से प्रोग्राम करने योग्य पाइपलाइन होने के वादे से थोड़ा निराश हूं। पास के टुकड़ों का नमूना देने में सक्षम नहीं था एक आश्चर्य था। लेकिन मुझे लगता है कि जब बनावट संयोजन (निश्चित पाइपलाइन में एक दुःस्वप्न) की बात आती है तो बहुत सारी संभावनाएं होती हैं। मुझे लगता है कि जीएलएसएल शांत प्रभावों के लिए तत्काल नुस्खा नहीं है (जो कुछ इसे ध्वनि बनाते हैं), लेकिन निश्चित रूप से इसका उपयोग होगा। – zmippie

उत्तर

4

अच्छी तरह से यह मानते हुए कि डायरेक्टएक्स और ओपनजीएल दोनों एक शेडर-केवल (यानी कोई फिक्स्ड-फ़ंक्शन) सिस्टम की तरफ बढ़ गए हैं, आपके "जवाब केवल शेडर्स के साथ संभव हैं" का जवाब "सबकुछ" हो सकता है।

कुछ तकनीकों है कि मेरा मानना ​​है कि संभव/प्रोग्राम shaders के बिना संभव (या बहुत ही विशेष ब्लैक बॉक्स एपीआई का उपयोग करके) हालांकि नहीं थे, कर रहे हैं:

  1. प्रति पिक्सेल प्रकाश
  2. छाया मानचित्रण। एनिमेटेड मेष के लिए
  3. जीपीयू स्किनिंग (यानी मैट्रिक्स पैलेट स्किनिंग)।
  4. आज के सामान्य पोस्ट-प्रोसेस प्रभावों में से कोई भी: ब्लूम, एसएसएओ, क्षेत्र की गहराई, आदि
  5. डिफरर्ड छायांकन।
  6. मनमाना/"अन्य" प्रकाश Oren-नायर, कुक-Torrance, रिम-प्रकाश, आदि जैसे मॉडल को लागू करने

और सूची पर जा सकते हैं, और मुझे यकीन है कि कुछ लोगों को साथ असहमत होगा मेरी आकलन कि इन्हें फिक्स्ड-फ़ंक्शन कार्यक्षमता (हैक्स या विभिन्न फ़िक्स्ड-फ़ंक्शंस एक्सटेंशन के माध्यम से) के साथ हासिल नहीं किया जा सका।

प्रोग्राम करने योग्य शेडर्स से पहले, यह एक फोल्ड डाउन है, विक्रेता द्वारा हार्डवेयर/ड्राइवर में एक प्रभाव दिया जाना चाहिए और इसे ऐसा कुछ होना चाहिए जिसे एपीआई के माध्यम से उचित रूप से व्यक्त किया जा सके। अब आप प्रभावी रूप से किसी भी उपयोगकर्ता द्वारा परिभाषित कोड को निष्पादित कर सकते हैं (विभिन्न शेडर चरणों और हार्डवेयर की अन्य सीमाओं की बाधाओं के भीतर) ताकि आपके पास अपनी प्रतिपादन पाइपलाइन को कस्टमाइज़ करने और नई तकनीकों को आविष्कार करने के लिए लचीलापन हो।

प्रोग्राम करने योग्य हार्डवेयर उपलब्ध होने के बाद दिखाए जा रहे तकनीकों के प्रकारों के बारे में महसूस करने के लिए पहली कुछ जीपीयू जेम्स किताबें (जिन्हें एनवीडिया की वेबसाइट पर मुफ्त में पढ़ा जा सकता है) पर नज़र डालें।

+1

हालांकि मैं उत्तर से सहमत हूं, यहां एक छोटी टिप्पणी है: छाया मैपिंग निश्चित रूप से निश्चित/फ़ंक्शन जीएल (डी 3 डी के बारे में नहीं पता) के साथ संभव है और मैट्रिक्स पैलेट स्किनिंग के लिए भी एक एक्सटेंशन है (और मुझे यकीन है कि डी 3 डी में यह है, भी)। लेकिन ये निश्चित रूप से एक शेडर के रूप में लचीला नहीं हैं (और स्किनिंग एक्सटेंशन व्यापक रूप से समर्थित नहीं है)। –

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