سؤال

أريد أن أبدأ في تطوير بعض الألعاب باستخدام XNA من Microsoft.جزء من ذلك هو تطوير Shader، لكن ليس لدي أي فكرة عن كيفية البدء.وأنا أعلم ذلك nVidia's FX Composer هي أداة رائعة لتطوير التظليل، لكنني لم أجد الكثير من المحتوى المفيد والمحدث حول كيفية البدء فعليًا.

ما هي الدروس التي توصي بها؟

هل كانت مفيدة؟

المحلول

يتطلب تطوير التظليل في XNA (الذي يستخدم DirectX بوضوح) معرفة HLSL أو تجميع التظليلأنصحك بالتعرف على الأول قبل الغوص في الأخير.

قبل كتابة أي تظليل، من الجيد أن تحصل على فهم جيد لخط أنابيب التظليل، وأن تحاول التفكير في ما هو ممكن عند استخدام التظليل القابل للبرمجة.عندما تكون على دراية بحياة البكسل (بدءًا من بيانات المصدر وصولاً إلى الشاشة)، يصبح فهم أمثلة التظليل أسهل كثيرًا.

بعد ذلك، حاول كتابة HLSL الخاص بك والذي يفعل ما ثابت T & L تستخدم خطوط الأنابيب للقيام بذلك، فقط لتجعل يديك متسختين.وهذا يعادل برنامج "hello World" في عالم vertex/pixel Shader.عندما تكون قادرًا على القيام بذلك وتفهم ما كتبته، تكون جاهزًا للانتقال إلى الأشياء الأكثر متعة.

كخطوة تالية قد ترغب في محاكاة الأساسية الإضاءة القبرية في أحد تظليلاتك من مصدر ضوء واحد.يمكنك بعد ذلك تعديل هذا المسار لاستخدام أضواء متعددة.اللعب بالألوان، وحركة الأضواء.سيساعد هذا في التعرف على استخدام ثوابت التظليل أيضًا.

عندما يكون لديك اثنين من التظليلات الأساسية معًا، يجب أن تحاول جعل اللعبة/المحرك الخاص بك يستخدم تظليلات متعددة/مختلفة على كائنات مختلفة.ابدأ بإضافة بعض الأجزاء الأخرى مثل basic صدم أو الخرائط العادية.

عندما تصل إلى هذه المرحلة، العالم هو محارتك.يمكنك البدء في الغوص في بعض التأثيرات غير التقليدية، وحتى التفكير في استخدام وحدة معالجة الرسومات أكثر عما كان مقصوداً في الأصل.

بالنسبة لأولئك الأكثر تقدمًا، هناك بعض الكتب الجيدة المتاحة مجانًا عبر الإنترنت والتي تحتوي على بعض المعلومات الرائعة من Nvidia هنا و هنا.

لا تنس أن هناك سلسلة ممتازة من الكتب تسمى ShaderX والتي تغطي بعض عناصر التظليل الرائعة.هناك 1, 2, 3, 4, 5 و 6 بالفعل في الطباعة، و 7 قريبا.

حظ سعيد.إذا حصلت على بعض التظليل، فأنا أحب رؤيتهم :)

نصائح أخرى

أود فقط أن أكرر مدى روعة كتب GPU Gems - فهي مورد رائع حقًا لأي تطوير جدي للرسومات.

لقد لخص OJ بشكل أساسي عملية تعليمية جيدة حقًا، وأود فقط أن أضيف أن وجود أساس جيد في الرياضيات الهندسية (المتجهات/المصفوفات كحد أدنى) لا يمكن الاستهانة به - ولكنه ليس بالصعوبة التي يتصورها الناس أحيانًا.إن تعلم ماهية الضرب النقطي والضرب الاتجاهي والمتجه العادي والمصفوفة هي خطوة أولى جيدة :).حاول أن تفهم بالضبط ما يحدث بين مساحة العالم/العرض/مقطع العرض/الشاشة، وما هو تقسيم المنظور، وما إلى ذلك.

عندما بدأت التعلم، كان التمرين الجيد هو تنفيذ مسار T&L بالكامل في البرنامج، مع استكمال القطع/التصفية وما إلى ذلك.هذه عملية طويلة وقد لا تبدو جديرة بالاهتمام لأنني متأكد من أنك تريد الغوص في الأشياء الممتعة فقط، ولكن الحصول على فهم مناسب لما يحدث هو أمر مفيد حقًا وسيثبت أنه جدير بالاهتمام عندما تواجه دائمًا المزيد من الأمور الصعبة والماكرة. لتشخيص الأخطاء.

حاول ألا يتم تهميشك باستخدام أدوات مثل FX Composer في البداية، فهي مفيدة للنماذج الأولية، ولكن الحصول على أساس متين في الأساسيات هو أمر أكثر أهمية على المدى الطويل.

إحدى أفضل الطرق للبدء في استخدام أدوات التظليل هي قراءة مقدمة لبرمجة الألعاب ثلاثية الأبعاد باستخدام DirectX 9.0c، وهي طريقة Shader Approach بقلم Frank Luna.يقدم المؤلف أولاً DirectX وHLSL ثم يكشف تدريجيًا عن قوة التظليل.يبدأ بتظليلات بسيطة جدًا ولكن في نهاية الكتاب تعرف كيفية إنشاء الإضاءة والظلال وأنظمة الجسيمات وما إلى ذلك.الكتاب العظيم.

اقترحت OJ أن تقرأ سلسلة ShaderX، لكن الأشياء الموجودة فيها ليست للمبتدئين، لذا فهي لن تساعدك كثيرًا عندما تخطو خطواتك الأولى.

لقد نشرت أيضا مقالا هنا حول أفضل الكتب التي ستساعدك على البدء في تطوير الألعاب.

سأنضم إلى الثناء الممنوح لـ OJ - إنها حقًا إجابة جيدة.ومع ذلك، بمجرد حصولك على الفهم الأساسي، يمكنك تعلم الكثير وبسرعة عن طريق تنزيل إحدى الأداتين الرائعتين التاليتين:

بمجرد القيام بذلك، انتقل إلى مكتبات مشاريعهم وابدأ في تصفح الأمثلة، بدءًا من التظليل الأساسي والانتقال إلى الظلال والخرائط العادية والمواد والتأثيرات وكل ما تجده مثيرًا للاهتمام.خذ مشروعًا، وابدأ في تغيير الخوارزميات وفقًا لبعض الأهداف التي حددتها واعرف كيفية تحقيقها.ستجد أن العديد من الأمثلة متقدمة بالفعل وأنها ستفتح آفاقك.

استمتع

على الرغم من أنه تم بالفعل تقديم الكثير من النصائح الجيدة، إذا كنت تواجه صعوبة في التفكير في الخطوات المتضمنة، المطحنة العقلية يوفر طريقة مرئية لإنشاء Shaders (يتم تضمين إصدار Artist مجانًا مع Fx Composer - وهو أيضًا مجاني أيضًا!).

في حين أنه من الأفضل لك أن تتعلم كود HLSL مباشرة على المدى الطويل، إلا أن Mental Mill يمكنها إنشاء ملفات Fx هذه لك (حتى تتمكن من إلقاء نظرة خاطفة على التغييرات).لاحظ، كما هو الحال مع جميع منشئي الأكواد البرمجية، فهو أكثر تفصيلاً قليلاً مما قد تفعله بمجرد فهم HLSL!

إن التقدم البصري للمؤثرات، من طريقة إلى أخرى، مثير للإعجاب للغاية!

سامز إطلاق العنان لـXNA بواسطة تشاد كارتر هي نقطة بداية رائعة لـ XNA وتفترض معرفة قليلة بممارسات تطوير اللعبة أو الرياضيات الصعبة قبل البدء.يحتوي على فصلين عن التظليل الأساسي والمتقدم.

كملاحظة جانبية، راقب Google للحصول على دروس WPF Shader التعليمية، فهو يستخدم الآن نفس التقنية للسماح بتظليل العملاء في تطبيقات WPF والبرامج التعليمية التي أعتقد أنها متوافقة إلى حد كبير مع XNA.

لم أستخدم XNA أو DirectX.ولكن للتعرف على أساسيات برمجة التظليل باستخدام Cg، فإن البرنامج التعليمي الفريق الاستشاري هو أفضل كتاب وجدته.

يجب عليك أيضًا إلقاء نظرة على RenderMonkey.إنها أداة جيدة.فيما يتعلق بالكتب، راجع وصفات برمجة ألعاب XNA 2.0 من Riemer Grootjans...الكتاب العظيم.

فكرة سريعة عن محرري التظليل المرئي.يعد هذا النوع من المحررين أمرًا ممتعًا جدًا للعب معه، لكنني أوصي حقًا بالاستمرار في العمل باستخدام HLSL المستند إلى النص (حيث يقوم كل من RM و FXC بالمهمة).أنا أعمل كمطور ألعاب وقمت ببناء عدد قليل من أنظمة التظليل (النظام الموجود في Battlefield 2 وFarcry 2، على سبيل المثال)، وبصراحة، وجدت أن HLSL أكثر قيمة من أي شبكة تظليل رسومية حتى الآن.

هناك أشياء مثل متابعة تدفق التنفيذ، أو تصحيح أخطاء التظليل، أو القدرة على تكرار حالات الاختبار بسرعة والتي تمنحك رؤية من المستحيل إلى حد كبير الحصول عليها من خلال أداة مرئية.

لقد استخدمت منشئي التظليل المرئي بنفسي، وأنا أحبهم، وفي يوم من الأيام، عندما لا يكون التظليل مهمًا للأداء كما هو الحال اليوم، قد يكونون الأداة المناسبة للمهمة.

..رغم أن تخميني هو أننا سنرى إضاءة مؤجلة وربما عرضًا كاملاً للبرامج قبل أن يأتي ذلك اليوم ;)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top