2008-08-09 36 views
18

मैं माइक्रोसॉफ्ट के एक्सएनए का उपयोग करके कुछ गेम डेवलपमेंट करना शुरू करना चाहता हूं। इसका हिस्सा शेडर विकास है, लेकिन मुझे नहीं पता कि कैसे शुरू किया जाए। मुझे पता है कि nVidia's FX Composer शेडर्स विकसित करने के लिए एक शानदार टूल है, लेकिन मुझे वास्तव में शुरू करने के तरीके पर बहुत उपयोगी और अद्यतन सामग्री नहीं मिली।शेडर विकास शुरू करना

आप किस ट्यूटोरियल की सिफारिश करेंगे?

उत्तर

31

एक्सएनए (जो स्पष्ट रूप से डायरेक्टएक्स का उपयोग करता है) में शेडरों का विकास HLSL या शेडर असेंबली के ज्ञान की आवश्यकता है। मैं बाद में डाइविंग से पहले पूर्व से परिचित होने की सलाह दूंगा।

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

अगला अपना खुद का एचएलएसएल लिखने का प्रयास करें जो Fixed T&L पाइपलाइन करता है जो आपको हाथों को गंदे करने के लिए करता है। यह कशेरुक/पिक्सेल शेडर दुनिया में "हैलो वर्ल्ड" कार्यक्रम के बराबर है। जब आप ऐसा करने में सक्षम होते हैं और आप समझते हैं कि आपने जो लिखा है, तो आप अधिक मजेदार सामान पर जाने के लिए तैयार हैं।

अगले चरण के रूप में आप एक ही प्रकाश स्रोत से अपने शेडरों में से एक में मूल sepcular lighting अनुकरण करना चाहेंगे। फिर आप कई रोशनी का उपयोग करने के लिए इसे ट्रैक के नीचे अनुकूलित कर सकते हैं। रंगों, और रोशनी के आंदोलन के साथ खेलो। यह शेडर स्थिरांक के उपयोग से परिचित होने में भी मदद करेगा।

जब आपके पास दो बुनियादी शेडर्स एक साथ होते हैं, तो आपको इसे बनाने का प्रयास करना चाहिए ताकि आपका गेम/इंजन अलग-अलग ऑब्जेक्ट्स पर एकाधिक/अलग शेडर्स का उपयोग कर सके। मूल bump या normal maps जैसे कुछ अन्य बिट्स जोड़ने शुरू करें।

जब आप इस चरण में जाते हैं, तो दुनिया आपका ऑयस्टर है। आप कुछ फंकी प्रभावों में डाइविंग शुरू कर सकते हैं, और मूल रूप से इरादे से more के लिए GPU का उपयोग करने पर भी विचार कर सकते हैं।

जो कुछ और अधिक उन्नत हैं, उनके लिए कुछ अच्छी किताबें उपलब्ध हैं जो मुफ्त ऑनलाइन उपलब्ध हैं जिनके पास एनवीडिया here और here से कुछ अच्छी जानकारी है।

यह मत भूलना कि शेडरएक्स नामक किताबों की एक उत्कृष्ट श्रृंखला है जिसमें कुछ भयानक शेडर सामग्री शामिल हैं। 1, 2, 3, 4, 5 और 6 पहले ही प्रिंट में हैं, और 7 जल्द ही आ रहा है।

शुभकामनाएं। अगर आपको कुछ शेडर्स मिलते हैं, तो मुझे उन्हें देखना अच्छा लगेगा :)

+0

विस्तृत उत्तर के लिए धन्यवाद। सुनिश्चित करें, जैसे ही मैं कुछ प्राप्त करता हूं और दौड़ता हूं, मैं एक लिंक जोड़ूंगा :) हालांकि कुछ और महीने लग सकते हैं। –

1

चाड कार्टर द्वारा एसएएनएस XNA Unleashed एक्सएनए के लिए एक महान प्रारंभिक बिंदु है और शुरू करने से पहले गेम डेवलपमेंट प्रथाओं या हार्ड गणित के बारे में थोड़ा ज्ञान नहीं लेता है। इसमें बुनियादी और उन्नत शेडर्स पर दो अध्याय हैं।

एक साइडेनोट के रूप में, डब्ल्यूपीएफ शेडर ट्यूटोरियल्स के लिए Google पर नजर रखें, अब यह उसी तकनीक का उपयोग करता है जो डब्ल्यूपीएफ अनुप्रयोगों और ट्यूटोरियल्स में ग्राहक शेडर्स को अनुमति देता है क्योंकि मेरा मानना ​​है कि एक्सएनए के साथ काफी हद तक संगत है।

5

मैं बस दोहराना चाहूंगा कि जीपीयू जेम्स किताबें कितनी महान हैं - किसी भी गंभीर ग्राफिक्स विकास के लिए वास्तव में शानदार संसाधन।

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

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

प्रारंभ में एफएक्स संगीतकार जैसे उपकरणों के साथ छेड़छाड़ न करने का प्रयास करें, वे प्रोटोटाइप के लिए उपयोगी हैं, लेकिन मूलभूत आधार में ठोस नींव लंबे समय तक अधिक सार्थक है।

1

मैंने एक्सएनए या डायरेक्टएक्स का उपयोग नहीं किया है। लेकिन, सीजी के साथ शेडर प्रोग्रामिंग की मूल बातें जानने के लिए, Cg Tutorial मुझे मिली सबसे अच्छी किताब है।

1

आपको रेंडरमोन्की को भी देखना चाहिए। यह एक अच्छा उपकरण है। जहां तक ​​किताबें जाती हैं, Riemer Grootjans से महान XNA 2.0 गेम प्रोग्रामिंग व्यंजनों की जांच करें ... महान पुस्तक।

2

मैं ओजे को दी गई प्रशंसा में शामिल होगा - वास्तव में एक अच्छा जवाब। फिर भी, एक बार आप बुनियादी समझ आप निम्नलिखित दो महान उपकरणों में से एक डाउनलोड करके एक बहुत और तेजी से सीख सकते हैं की क्या ज़रूरत है:

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

मज़ा

2

जबकि अच्छी सलाह का एक बहुत पहले से ही दिया गया है है, तो आप एक कठिन काम अपने मन के आसपास चरणों शामिल हो रही कर रहे हैं, Mental Mill Shaders के निर्माण की एक दृश्य तरीका प्रदान करता है (कलाकार संस्करण है एफएक्स संगीतकार के साथ मुक्त बंडल - खुद भी मुफ़्त!)।

जबकि आप सीधे एचएलएसएल कोड सीखने के लिए लंबी अवधि से बेहतर होंगे, मानसिक मिल आपके लिए इन Fx फ़ाइलों को उत्पन्न कर सकती है (ताकि आप परिवर्तनों पर देख सकें)। नोट, सभी कोड जेनरेटर की तरह, एचएलएसएल को समझने के बाद आप ऐसा करने की संभावना से थोड़ा अधिक वर्बोज़ हैं!

एक विधि से दूसरे तरीके से प्रभाव की दृश्य प्रगति बहुत प्रभावशाली है!

1

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

निष्पादन के प्रवाह का पालन करने, शेडर को डिबग करने या परीक्षण मामलों को तेज़ करने में सक्षम होने जैसी चीजें हैं जो आपको एक अंतर्दृष्टि प्रदान करती हैं जो दृश्य उपकरण के माध्यम से प्राप्त करना बहुत असंभव है।

मैंने दृश्य शेडर बिल्डर्स का उपयोग स्वयं किया है, और मुझे उन्हें पसंद है, और एक दिन, जब छायांकन आज के रूप में प्रदर्शन-महत्वपूर्ण नहीं है, तो वे नौकरी के लिए सही उपकरण हो सकते हैं।

मेरा अनुमान ..though है कि हम आस्थगित प्रकाश व्यवस्था और शायद पूर्ण सॉफ्टवेयर प्रतिपादन से पहले उस दिन आता दिखाई देगी;)

3

बेहतरीन तरीके shaders के साथ शुरू करने से एक 3 डी खेल प्रोग्रामिंग का परिचय पढ़ने के लिए है फ्रैंक लुना द्वारा डायरेक्टएक्स 9.0ca शेडर दृष्टिकोण के साथ। लेखक पहले डायरेक्टएक्स और एचएलएसएल पेश करते हैं और फिर धीरे-धीरे शेडर की शक्ति का खुलासा करते हैं। वह बहुत ही सरल शेडर्स से शुरू होता है लेकिन पुस्तक के अंत तक आप जानते हैं कि प्रकाश, छाया, कण प्रणाली आदि कैसे बनाएं, ग्रेट बुक।

ओजे ने सुझाव दिया कि आप शेडरएक्स श्रृंखला पढ़ लें, लेकिन सामान शुरुआती लोगों के लिए नहीं है, इसलिए जब आप अपना पहला कदम उठाएंगे तो इससे आपको बहुत मदद नहीं मिलेगी।

मैंने गेम डेवलपमेंट के साथ शुरू की जाने वाली सर्वोत्तम पुस्तकों के बारे में एक लेख here भी पोस्ट किया है।

+0

यह वास्तव में एक दिलचस्प किताब की तरह दिखता है। हाँ, मैंने शेडरएक्स और अनुशंसित जीपीयू रत्न दोनों को देखा, लेकिन वे वास्तव में कट्टर प्रतीत होते हैं। क्रिस्टोग्राफी के बारे में कुछ भी नहीं जानते जब किंडा ब्रूस शनीयर पढ़ना पसंद करते हैं। मुझे लगता है कि मैं लुना की किताब का आदेश दूंगा। –

+0

मैंने वास्तव में आपके द्वारा उल्लिखित पुस्तक संपादित की है! :) –

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