أساسيات الوحدة شادر الرسم البياني

صورة

تظليل هو برنامج صغير يحتوي على تعليمات GPU. يصف كيفية حساب لون الشاشة لمواد معينة.

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

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

قدمت Unity Shader Graph ، مما يجعل من السهل كتابة تظليلات بدون أي كود تقريبًا. أفضل ما في الأمر هو أن Shader Graph يتيح لك العمل مع واجهة تفاعلية مرئية.

في هذا البرنامج التعليمي ، ستقوم بإنشاء أول وحدة تظليل!

الحصول على العمل


يستخدم هذا البرنامج التعليمي إصدار الوحدة 2019.1 أو الأحدث. قم بتنزيل الإصدار الجديد من الوحدة هنا .

ملاحظة : على الرغم من أن هذا البرنامج التعليمي مخصص للمبتدئين في Shader Graph ، إلا أنه من المفترض أنك تعرف أساسيات التطوير في Unity وقد أتقنت واجهة المحرك. إذا كنت جديدًا على Unity ، فعليك الاطلاع على البرنامج التعليمي الممتاز Getting Started In Unity .

قم بتنزيل المواد التعليمية هنا . ثم قم بفك ضغط المحتويات وافتح مقدمة إلى Shader Graph Starter in Unity.

يتم تنظيم المجلد RW في إطار Project كما يلي:

  • الخطوط : الخطوط المستخدمة في المشهد.
  • المواد : مواد للمشهد.
  • النماذج : شبكات ثلاثية الأبعاد لأشكال اللعبة والخلفيات.
  • PostFX : تأثيرات ما بعد المعالجة لتقديم المشهد.
  • الجاهزة : مكونات مختلفة مسبقة الصنع.
  • مشاهد : مشهد اللعبة.
  • البرامج النصية : البرامج النصية مع منطق اللعبة.
  • تظليلات : رسومات تظليل تم إنشاؤها لهذا البرنامج التعليمي.
  • العفاريت : العفريت تستخدم كجزء من التعليمات.
  • القوام : خرائط نسيج لأشكال اللعبة والخلفيات.

الآن قم بتحميل مشهد TangramPuzzle من مجلد Scenes .


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

ابدأ تشغيل Play في المحرر واختبر الألعاب التجريبية.

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

هل يمكنك معرفة كيفية تحريك الأشكال السبعة لإنشاء مثل هذه الأنماط؟


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

ماذا لو استطعنا جعل الشكل يتوهج عندما يكون الماوس فوقه؟ سيؤدي ذلك إلى تحسين واجهة المستخدم.


وهذه فرصة رائعة لإظهار قدرات Shader Graph!

التحقق من معلمات خط أنابيب الرسم البياني لشادر


يعمل Shader Graph فقط مع خط أنابيب Scriptable Render الجديد نسبيًا ، أي مع خط أنابيب Render عالي الدقة أو مع خط أنابيب Lightweight Render .

عند إنشاء مشروع جديد للعمل مع Shader Graph ، حدد القالب الصحيح.


تم بالفعل تكوين المشروع عينة للعمل مع خط أنابيب خفيفة الوزن . أولاً ، تأكد في PackageManager أن لديك خفيفة الوزن RP و ShaderGraph مثبتة باختيار Window ► PackageManager .

ثم حدد أحد الإصدارات المتاحة ، وإذا لزم الأمر ، انقر فوق الزر " تحديث إلى" . عادة ما يكون الخيار الأفضل هو أحدث إصدار تم التحقق منه .


بعد تحديث الحزم ، تحقق بعناية من صحة معلمات خط الأنابيب في تحرير ► إعدادات المشروع .

في علامة التبويب " الرسومات" ، يجب تعيين المعلمة Scriptable Render Pipeline Settings على LWRP-HighQuality . بفضل هذا ، سيستخدم المشروع أعلى إعداد افتراضي لخط أنابيب Lightweight Render.

بعد التأكد من أنك تستخدم أحد أصول Scriptable Render Pipeline ، أغلق هذه النافذة.

إنشاء الرسم البياني PBR


عند عرض شبكة ثلاثية الأبعاد على الشاشة ، تعمل المواد والتظليل دائمًا معًا. لذلك ، قبل البدء في إنشاء تظليل ، نحتاج إلى مواد.

أولاً ، انقر فوق الزر " إنشاء" في إطار "المشروع" لإنشاء مادة جديدة في المجلد RW / Materials . حدد إنشاء ► مادة ، ثم أعد تسميته إلى Glow_Mat .

ثم ، في المجلد RW / Shaders ، قم بإنشاء PBR Graph باختيار Create ► Shader ► PBR Graph . هذا رسم بياني تظليل يدعم العرض الدقيق جسديًا ، أو PBR.

تسميته HighlightShaderGraph .


يستخدم مادة Glow_Mat حتى الآن تظليل قياسي لـ LightweightRenderPipeline يسمى LightweightRenderPipeline / Lit.


قم بتغييره إلى الرسم البياني لتظليل جديد تم إنشاؤه حديثًا. بعد تحديد Glow_Mat ، انقر فوق القائمة المنسدلة Shader في الجزء العلوي من المفتش وحدد Shader Graphs ► HighlightShaderGraph .

سوف تأخذ Glow_Mat ظلًا أفتح قليلاً من اللون الرمادي ، ولكنها تظل مملة إلى حدٍ ما. لا تقلق ، سوف نصلحها قريبًا.

الآن انقر نقرًا مزدوجًا فوق الأصل HighlightShaderGraph أو انقر فوق Open Shader Editor في المفتش. سيؤدي هذا إلى فتح نافذة Shader Graph .


تحقق من الأجزاء الرئيسية في هذه الواجهة:

  • مساحة العمل الرئيسية هي منطقة رمادية داكنة حيث سيتم تخزين عمليات الرسم البياني. يمكنك النقر بزر الماوس الأيمن على مساحة العمل لفتح قائمة السياق.
  • العقدة هي عنصر واحد من الرسم البياني. تحتوي كل عقدة على إدخال أو إخراج أو عملية ، اعتمادًا على منافذها. ترتبط العقد مع بعضها البعض باستخدام الحواف .
  • العقدة الرئيسية هي آخر مخرجات العقدة في الرسم البياني. في هذا المثال ، نستخدم خيار تجسيد دقيق ماديًا ، يُطلق عليه أيضًا عقدة PBR Master. قد تلاحظ بعض الخصائص فيه ، مثل Albedo و Normal و Emission و Metallic ، والتي تستخدم في Standard Shader.
  • يمكن لـ Blackboard توفير الوصول إلى أجزاء معينة من الرسم البياني في المفتش. هذا يتيح للمستخدم تكوين المعلمات دون تحرير الرسم البياني نفسه مباشرة.
  • تعرض المعاينة الرئيسية بشكل تفاعلي الإخراج الحالي للتظليل ككرة.

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

إنشاء عقدة اللون


أولاً ، دعنا نوفر للتظليل بعض الألوان الأساسية. للقيام بذلك ، قم بتوصيل عقدة اللون بمكون Albedo في عقدة PBR Master. انقر بزر الماوس الأيمن على مساحة العمل لإنشاء العقدة الأولى من قائمة السياق عن طريق اختيار " إنشاء عقدة" ► إدخال ► أساسي ► لون .


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

بعد ذلك ، اسحب العقدة فوق مساحة العمل ، مع الاستمرار في شريط العنوان الخاص بها. ثم اتركه في مكان ما على يسار عقدة PBR Master .

تتيح لك عقدة اللون تحديد لون واحد. انقر فوق حقل اللون وحدد تدرج أحمر جميل ، على سبيل المثال R: 128 ، G: 5 ، B: 5 .

لإخراج اللون إلى عقدة PBR Master ، اسحب منفذ Out إلى منفذ Albedo ، مما يشير إلى اللون الأساسي للتظليل.

من خلال ربط العقد من جانب إلى جنب ، يجب أن ترى كيف يتحول اللون الأحمر في المعاينة الرئيسية إلى اللون الأحمر.


! ممتاز في مجال كتابة التظليل ، يعد إنشاء تظليل أحادي اللون بمثابة تناظرية لـ Hello، world!

على الرغم من أنك قد لا تفهم هذا حتى الآن ، إلا أنك قمت بإنشاء تظليلك الأول!

العمل مع الواجهة


على الرغم من وجود بضع العقد فقط في الرسم البياني ، إلا أن هذا هو أفضل وقت للاستمتاع بواجهة Shader Graph.

حاول سحب العقد ولاحظ أن الحواف بين منفذ إخراج اللون ومنفذ إدخال PBR Master تظل متصلة.

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


قم بتوصيل منفذ Integer Out بمنفذ Alpha في عقدة PBR Master .

لا يزال الرسم البياني الخاص بنا صغيرًا جدًا ، ولكن لدينا بالفعل عددًا كافٍ من العقد للتحقق من عمل المفاتيح الساخنة. حدد زوجًا من العقد واضغط على المفاتيح التالية:

  • F : تأطير العقد المحددة.
  • a : تأطير الرسم البياني بأكمله.

يمكنك أيضًا استخدام الأزرار الموجودة في الجزء العلوي من النافذة للتبديل بين Main Preview و Blackboard . يساعد الزر إظهار في المشروع في العثور على الرسم البياني التظليل الحالي في إطار المشروع.

بعد تعاملنا مع إدارة الرسم البياني ، نقوم بتنظيفه. كل ما نحتاجه هو عقد Color و PBR Master .

انقر بزر الماوس الأيمن فوق الاتصال بين العقد صحيح و Master ، ومن ثم حدد حذف . هذا سيفصل العقدة عن الرسم البياني.


وبالمثل ، يمكنك حذف العقدة الصحيحة بالكامل. انقر بزر الماوس الأيمن على العقدة وحدد حذف .


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

عد الآن إلى النافذة وحدد مادة Glow_Mat .


عندما يمتد التظليل إلى المادة ، يجب أن يتحول اللون الأحمر في نافذة معاينة المفتش إلى اللون الأحمر.

الآن اسحب المادة Glow_Mat إلى أشكال tangram في نافذة Scene .


كما هو متوقع ، رسمت المادة ذات التظليل الشبكة بلون أحمر جميل وموحد.

إضافة تأثير توهج


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

الآن يتم نقل إخراج اللون إلى إدخال عقدة Albedo PBR Master .

يمكنك أيضًا سحب حافة أخرى من Out إلى Emission . الآن يتم استخدام نفس اللون مرتين: كل من اللون الأساسي ولون الإشعاع.


يمكن أن تحتوي منافذ الإخراج على حواف متعددة ، ويمكن أن تحتوي منافذ الإدخال على واحد فقط.

الآن قم بالتبديل القائمة المنسدلة وضع من عقدة اللون إلى وضع HDR . لذلك سوف نقوم بتضمين النطاق الديناميكي الممتد للألوان.


الآن قم بتغيير حقل اللون. في وضع HDR ، ظهر خيار كثافة إضافي. انقر على +1 عدة مرات في اللوحة السفلية أو اسحب شريط التمرير حوالي 2.5 . الآن حفظ التغييرات والعودة إلى المحرر.


في المحرر ، سيتوهج الشكل باللون البرتقالي اللامع. مرحلة ما بعد المعالجة في المشهد قيد التشغيل بالفعل وتعمل على تحسين لون النطاق الديناميكي الممتد.

الآن حدد كائن اللعبة PostProcessing في التسلسل الهرمي. التوهج يرجع إلى تأثير بلوم .

افتح خيارات Bloom وقم بتعيين Intensity (قوة اللمعان) و Threshold (عتبة بداية التوهج). يوضح المثال القيمتين 3 و 2 .


واو ، هذا اللمعان!


إنشاء برنامج نصي مميز


لا نريد أن يتوهج الشكل باستمرار. نحن بحاجة إلى التوهج لتشغيل فقط اعتمادا على موقف الماوس.

عندما يكون مؤشر الماوس فوق الشكل ، يجب تمكين مادة Glow_Mat. في حالات أخرى ، يجب أن يتم عرض الرقم مع المواد القياسية Wood_Mat.

أولاً ، قم بإنشاء برنامج نصي C # جديد في RW / Scripts وقم بتسميته Highlighter . سوف يساعدنا في التبديل بين المادتين أثناء تنفيذ البرنامج. يستعاض عن جميع الأسطر في البرنامج النصي بالكود التالي:

using UnityEngine; // 1 [RequireComponent(typeof(MeshRenderer))] [RequireComponent(typeof(Collider))] public class Highlighter : MonoBehaviour { // 2 // reference to MeshRenderer component private MeshRenderer meshRenderer; [SerializeField] private Material originalMaterial; [SerializeField] private Material highlightedMaterial; void Start() { // 3 // cache a reference to the MeshRenderer meshRenderer = GetComponent<MeshRenderer>(); // 4 // use non-highlighted material by default EnableHighlight(false); } // toggle betweeen the original and highlighted materials public void EnableHighlight(bool onOff) { // 5 if (meshRenderer != null && originalMaterial != null && highlightedMaterial != null) { // 6 meshRenderer.material = onOff ? highlightedMaterial : originalMaterial; } } } 

دعونا تحليل هذا السيناريو:

  1. لا يمكن تطبيق البرنامج النصي إلا على كائن يحتوي على مكونات MeshRenderer و Collider . يتم التحكم في ذلك عن طريق إضافة سمات [RequireComponent] إلى الجزء العلوي من البرنامج النصي.
  2. هذه هي روابط ل MeshRenderer ، originalMaterial و highlightedMaterial . يتم تمييز المواد بالسمة [SerializeField] ، والتي تسمح لك بتعيينها من المفتش.
  3. في طريقة Start ، نقوم تلقائيًا بتعبئة MeshRenderer باستخدام GetComponent .
  4. يسمى EnableHighlight(false) . هذا يضمن أنه ، بشكل افتراضي ، يتم عرض المحتوى غير المميز. يوجد أدناه طريقة EnableHighlight العامة ، والتي تقوم بتبديل مادة العارض. يتلقى المعلمة المنطقية onOff ، والذي يحدد حالة الإضاءة الخلفية.
  5. منع جميع أخطاء NullReference
  6. لتوفير المساحة ، نستخدم المشغل الثلاثي.

إضافة أحداث الماوس


نظرًا لأن هذا البرنامج النصي ينطبق على الأشكال التي تحتوي على MeshCollider ، فيمكننا استخدام الأساليب المضمنة OnMouseOver و OnMouseOver . أضف التعليمات البرمجية التالية بعد أسلوب EnableHighlight :

  private void OnMouseOver() { EnableHighlight(true); } private void OnMouseExit() { EnableHighlight(false); } 

عندما يكون الماوس فوق الشكل ، سيتم استدعاء EnableHighlight(true) . وبالمثل ، عندما يغادر الماوس Collider ، فإنه سيتم استدعاء EnableHighlight(false) .

هذا كل شئ! احفظ البرنامج النصي.

تسليط الضوء على الشكل


إذا قمت في الأقسام السابقة من البرنامج التعليمي بتطبيق Glow_Mat على أي من الأشكال ، فأنت في المحرر تحتاج إلى إعادة مادة Wood_Mat إلى جميع أشكال اللعبة. الآن ، لتشغيل التوهج ، سوف نستخدم Highlighter أثناء تشغيل البرنامج.

أولاً ، سنختار سبعة كائنات داخل Tangram المحولة ، وهي أشكال منفصلة. ثم نضيف إليهم كل النص Highlighter في نفس الوقت.


ثم اسحب Wood_Mat إلى حقل المواد الأصلية و Glow_Mat في حقل المواد المميزة . الآن قم بتشغيل وضع التشغيل وتحقق من نتائج عملنا.

ليس سيئا! عندما تحوم فوق شكل tangram ، يبدأ التوهج باللون الأحمر الفاتح. إذا قمت بإزالة المؤشر منه ، فسيعود إلى حالته الأصلية.


في اللعبة نفسها ، لم يتغير شيء ، لكن تأثير التمييز أضاف الاهتمام المرئي ويسمح للاعب بالتركيز.

باستخدام العقد الملمس


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

أولاً ، قم بتغيير HighlightShaderGraph من خلال النقر المزدوج فوقه أو الاختيار
في محرر Shader المفتوح .

احذف عقدة اللون بالنقر بزر الماوس الأيمن عليها واختيار حذف . سوف نخلق كل شيء من الصفر.

بدلاً من لون واحد ، نقوم باستبدال النسيج باستخدام عقدة Sample Texture 2D .

قم بإنشاء عقدة ، إما من قائمة السياق ، عن طريق النقر بزر الماوس الأيمن واختيار " إنشاء عقدة" ، أو باستخدام مفتاح سريع (مسافة). حدد الإدخال ► الملمس ► نموذج الملمس 2D .

تقرأ العقدة Sample Texture 2D معلومات اللون من مادة العرض وتخرج قيم RGB الخاصة بها.

حدد مادة من منفذ إدخال مادة . انقر فوق النقطة الموجودة بجانب الحقل الفارغ لفتح متصفح الملفات.

حدد أصل مادة WoodAlbedo.


قم بتوصيل منفذ إخراج RGBA للعقدة Sample Texture 2D بمنفذ PBR Master Albedo .

فويلا! الآن يتم عرض نسيج الشجرة على سطح مجال المعاينة.


إذا قمت بإضافة خريطة طبيعية ، يمكنك إنشاء أجزاء على السطح. أولاً ، قم بإنشاء عقدة Sample Texture 2D أخرى باختيار Create Node ► Input ► Texture ► Sample Texture 2D .

حدد مادة WoodNormal في منفذ الإدخال Texture.


تغيير القائمة المنسدلة النوع من الافتراضي إلى عادي .

إخراج قيم RGBA إلى المنفذ العادي للعقدة PBR Master .


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

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

مضيفا تأثير فريسنل


الآن بعد أن تغير اللون الأحمر الصلب إلى النسيج الأساسي والخريطة العادية ، دعنا نضيف تأثير التمييز باستخدام طريقة أخرى.

بدلاً من توهج منتظم للكائن بأكمله ، سنحصر التوهج على حوافه فقط. يمكن تحقيق ذلك باستخدام تأثير Fresnel .

قم بإنشاء عقدة جديدة عن طريق النقر بزر الماوس الأيمن أو مفتاح المسافة ، ثم حدد إنشاء عقدة - رياضيات - متجه - تأثير فريسنل .

تُظهر هذه العقدة الجديدة كرة ذات حلقة بيضاء مشعة في القطر. يمكنك ضبط عرض هذا الهالة باستخدام منفذ إدخال الطاقة . انقر واسحب علامة X على يسار الحقل أو أدخل الأرقام التي تريدها.

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


لنقل هذه الهالة إلى المواد ، سنقوم بتوصيل إخراج Fresnel Effect بإدخال الانبعاثات لعقدة PBR Master .


الآن ، يعرض MainPreview كرة خشبية بهالة بيضاء مشرقة ، تم الحصول عليها بفضل تأثير Fresnel .

ملاحظة : تم تسمية تأثير Fresnel على اسم الفيزيائي الفرنسي Augustin Jean Fresnel. لاحظ أن الضوء يجعل الأسطح مشرقة جدًا وتبدو وكأنها مرآة عندما يقترب أحد المراقبين من زاوية الانزلاق .


يمكنك تجربة مع طاولة المطبخ. نحن نستخدم نسخة الوحدة من هذه الظاهرة لإعطاء الهندسة إشراقة.

الضرب حسب اللون


يمكنك إضافة ألوان إلى المحيط المضيء باستخدام حسابات ألوان بسيطة.

قم بإنشاء عقدة ألوان جديدة تشير إلى لون الحلقة المضيئة. انقر بزر الماوس الأيمن أو مفتاح المسافة لفتح قائمة السياق ، ثم حدد إنشاء عقدة ► إدخال ► أساسي ► لون . تبديل وضع اللون إلى HDR .

حدد لونًا سيشير إلى لون الإضاءة الخلفية. على سبيل المثال ، اختر اللون الأخضر اللامع الجميل: R: 5 ، G: 255 ، B: 5 .

زيادة الكثافة إلى 3.5 .


لا يمكننا دمج اللون الجديد مع تأثير Fresnel. لأنه لا يوجد لديه مدخلات للون. لذلك ، سوف نحتاج إلى دمج إخراج التأثير مع إخراج عقدة اللون. يمكن القيام بذلك باستخدام عقدة Multiply .

قم بإنشاء عقدة Multiply عن طريق النقر بزر الماوس الأيمن ، ثم حدد Create node ► Math ► Basic ► Multiply .

احذف الحافة بين تأثير Fresnel و PBR Master . قم بتوصيل إخراج Fresnel Effect بإدخال A من عقدة Multiply .

قم بتوصيل العقدة Out لعقدة اللون بالإدخال B من عقدة Multiply .


ثم قم بتوصيل خارج العقدة المضاعفة بمنفذ الانبعاثات في العقدة الرئيسية PBR . فويلا! الآن نرى كيف يحيط لون HDR الأخضر اللامع بمجال المعاينة الرئيسية .


تذكر أنه يمكنك استخدام Fresnel Effect Power لزيادة أو تقليل الهالة. إذا قمت بتقليل القيمة إلى 1.5 ، فستحصل على توهج أخضر عريض.

بالنسبة إلى مثال لعبتنا ، تعد القيمة من 4 إلى 5 جيدة ، ولكن يمكنك تجربة قيمك.


حفظ الرسم البياني تظليل والعودة إلى المحرر. سترى على الفور HighlightShaderGraph في العمل.

تشغيل وضع التشغيل.

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


إضافة خصائص السبورة


إذا كنت تريد تغيير مظهر تأثير التوهج ، فستحتاج إلى العودة إلى نافذة محرر Shader Graph وإجراء هذه التغييرات. على سبيل المثال ، باستخدام Fresnel Effect Power ، قم بتوسيع نطاق الهالة أو تضييقه.

هذا ليس ملائمًا للغاية إذا كنا نريد اختبار التغييرات المختلفة. لحسن الحظ ، Shader Graph لديه مفهوم للخصائص.

يمكنك جعل جزء من الرسم البياني مرئيًا بشكل عام في المفتش ، والذي يسمح لك بإجراء تغييرات صغيرة بشكل تفاعلي. يتم ذلك باستخدام واجهة Blackboard .

ارجع إلى الرسم البياني لشادر وقم بتشغيل شاشة Blackboard . إذا كانت مخفية ، فانقر فوق الزر Blackboard في الزاوية اليمنى العليا.

إضافة الملمس الأساسي وخصائص الخريطة العادية


سنقوم الآن بفتح كل من الملمس الأساسي والخريطة العادية بحيث يمكن الوصول إليها من خلال المفتش.

انقر على أيقونة + في الركن الأيمن العلوي من Blackboard . حدد Texture 2D من القائمة المنسدلة. يجب أن يظهر العنصر على Blackboard . تسميته إلى BaseTexture .


تأكد من تحديد مربع الاختيار المكشوف . إذا قمت بفتح عقار ، فسيصبح عامًا ويمكن الوصول إليه في المفتش.


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

قم بتوصيل منفذ BaseTexture بمنفذ إدخال Texture لعقدة SampleTexture 2D المتصلة بـ Albedo. هذا سوف يحل محل setpoint السابق.

كرر نفس العملية للخريطة العادية . انقر على أيقونة + وإنشاء نسيج جديد ثنائي الأبعاد . تسميته إلى الخريطة العادية .

اسحب الخاصية إلى مساحة العمل وإرفاقها في Sample Texture 2D للخريطة العادية.


انقر فوق حفظ الأصول والعودة إلى نافذة المحرر الرئيسية.

حدد مادة Glow_Mat ولاحظ حقلين جديدين في المفتش: Base Texture and Normal Map .

نظرًا لعدم تعيين أي نسيج لهم حتى الآن ، يتم عرض تمييز أخضر على الكرة الرمادية في نافذة المعاينة.


حدد WoodAlbedo و WoodNormal لـ BaseTexture و NormalMap .

الآن ، تحت الحواف المضيئة ، سيتم عرض نسيج الشجرة بشكل صحيح.


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

إضافة خصائص توهج الحجم ولون الوهج


الآن سنكشف عن أنواع أخرى من العقارات في Blackboard. على سبيل المثال ، سيكون من المفيد السماح بتغيير قيمة Fresnel Effect Power.

انقر على أيقونة + على Blackboard وقم بإنشاء خاصية Vector1 . يشير إلى معلمة واحدة من نوع تعويم.

تسميته إلى GlowSize .

يمكنك تحديد نطاق القيم التي تم إدخالها لهذه الخاصية عن طريق تحويلها إلى شريط تمرير . قم بالتبديل إلى Slider ، ثم قم بتعيين Min إلى 0.05 و Max إلى 6 لتحديد نطاق. اضبط القيمة الافتراضية على 5 .


اسحب خاصية GlowSize إلى مساحة العمل. قم بتوصيل منفذ الإخراج بإدخال الطاقة فريسنل .

الآن ، دع المستخدم يضبط لون التوهج. بدلاً من إنشاء خاصية في Blackboard ، نقوم بتحويل العقدة الحالية في الرسم البياني.


حدد عقدة اللون ، ثم انقر بزر الماوس الأيمن وحدد تحويل إلى خاصية .

يتم تحويل عقدة اللون إلى خاصية لون في Blackboard ، والتي لم يعد بالإمكان تغييرها مباشرة في الرسم البياني. إعادة تسمية الخاصية إلى GlowColor .


انقر فوق حفظ الأصول والعودة إلى نافذة المحرر الرئيسية.


حدد مادة Glow_Mat في نافذة المشروع. يجب أن ترى أن شريط التمرير GlowSize وحقل GlowColor متاحان الآن في المفتش.


تغيير القيم المادية لذوقك. قم بتشغيل وضع التشغيل لاختبار عملك.


الآن لديك الخلفية القابلة للتخصيص التي يمكن تغييرها كما يحلو لك!

إلى أين أذهب بعد ذلك


تهانينا! يمكنك الآن إنشاء تظليل خاص بك باستخدام Shader Graph!

باستخدام قدراتك الإبداعية الخاصة ، ستفاجأ بنفسك أنك ستنجح. هل ترغب في إنشاء حزمة ليزر رائعة أو مجال قوة رائع؟ تكييف نتيجة عملنا لتظليل تحتاجه.

على الرغم من وجود مئات العقد حرفيًا ، إلا أنه كان ينبغي أن يساعدك هذا البرنامج التعليمي في تعلم Shader Graph.

Source: https://habr.com/ru/post/ar479302/


All Articles