ساخت یک Shader ساده در UDK

Mahdi_Rashed

Well-Known Member
اینم یک آموزشه ساده هست که براتون درست کردم برای ساختن یک Shader ساده که شامل diffuse map , Specular map , Specular power , Normal map , detail normal map و Bump offset هست که خیلی راحتتر از هر نرم افزار دیگه ای در UDK میشه ساختش . برای شروع یک تکسچر مناسب که قابلیت Seamless هم داشته باشه رو آماده کنید . بهتره که سایزش 1024 در 1024 باشه . میتونید از کتابخانه ی دانلود تکسچر M - Rashed یکی دانلود کنید . فقط حتماً یادتون باشه که فرمتش رو TGA که سازگارترین فرمت با همه ی موتورهاست و با کیفیت 32 bit/pixel تبدیل کنید . فتوشاپ این توانایی رو داره .

من اینو انتخاب کردم .

خوب . حالا یک نرم افزار شبیه Crazy bump یا Shadermap رو اجرا کنید و از روی تکسچرتون , تکسچرهای specualr , normal , desplacement رو ایجاد کنید و با فرمت tga ذخیره کنید .
ینابراین باید 4 تا تکسچر مختلف شبیه عکس زیر داشته باشید .
screenshot_set4.jpg


حالا UDK رو باز کنید و توی یک پکیج جدید این 4 تا تکسچر رو Add یا import کنید .

screenshot_set5.jpg


حالا در یک جای خالی از Content Browser راست کلیک کنید و گزینه ی new material رو انتخاب کنید و برای متریالتون یک اسم درست کنید .

screenshot_set6.jpg
screenshot_set7.jpg


خوب . حالا 3 تا Texture Sample در صفحه وارد کنید و توی یکی Diffuse یکی Specular و یکی هم نرمال مپ رو قرار بدین . با انتخاب تکسچر در Content browser و زدن دکمه ی فلش سبز در properties بخش هر texture sample . شبیه عکس زیر .



برای تکسچر Diffuse که فقط Texture sample مخصوصش رو به بخش Diffuse لیست متریال اصلی وصل کنید .
برای Specular یک Constant رو وارد کنید و مقدارش رو 1 یا 0.8 قرار بدین . و texture sample مخصوص Specular رو با constant به وسیله ی Multiply به هم وصل کنید و multiply رو به بخش Specular از لیست متریال اصلی وصل کنید .
برای Specular power هم یک Constant با مقدار 20 ( اختیاری ) وارد کنید و به Specular Power وصل کنید . شبیه عکس زیر .



خوب برای نرمال مپ باید یک Texture جزییات هم داشته باشیم . یک تکسچر نرمال که جزییات زیر رو نشون بده . با کیفیت پایین که بهتره 256 در 256 و فرمت BMP باشه . من تکسچر زید رو انتخاب کردم .

screenshot_set10.jpg


این تکسچر بعد از حذف کانال آبی رنگ داخلش با تکسچر نرمال اصلی و با مقیاس خیلی کوچک ترکیب میشه و روی متریال اعمال میشه . برای این کار همه ی موارد زیر رو وارد کنید .

یک Texture sample برای تکسچر نرمال جزییات
یک texture coordinate برای تغییر مقیاس
یک mask component برای حذف کانال رنگ آبی
یک constant برای اضافه کردن رنگ آبی با مقدار صفر برای جلوگیری از خطا در رندر تکسچر
یک texture append برای ترکیب constant و mask component
یک add باری add کردن تکسچر نرمال اصلی با نرمال جزییات .



حالا برای تغییر مقیاس تکسچر جزییات مقادیر U و V رو در Texture coordinate به 4 در 4 یا 5 در 5 تغغیر بدید و به بخش UVs کانال Texture sample وصل کنید .
بعد mask component رو انتخاب کنید و در بخش تنظیماتش فقط R باری قرمز و G برای سبز رو تیک بزنید و کانال سیاه رنگ Texture sample رو بهش وصل کنید . طرف دیگه ی mask component رو هم به Append وصل کنید . constant که مقدار 0 داشت رو هم به Append وصل کنید و خروجی Append رو به همراه texture sample تکسچر نرمال اصلی به add وصل و خروجی add رو به بخش normal از لیست متریال اصلی وصل کنید .



حالا شما یک متریال یا نرمال خوب دارید .
برای ایجاد bump offset یک bump offset رو از لیست utility و همچنین یک Texture sample باری تکسچر Displacement رو وارد کنید . کانال Alpha از تکسچر Displacement رو به High map کانال Bump offset وصل کنید و خروجی Bump offset رو یکی به UVs تکسچر Diffuse و یکی به UVs تکسچر normal اصلی وصل کنید . حالا با تغییر تنظیمات bump offset برجستگی مناسبی رو درست کنید . این تنظیمات از تکسچر به تکسچر دیگه تفاوت دارن .



در آخر باید کار متریال شما شبیه زیر بشه .

screenshot_set6.jpg


امیدوارم که به درد بخور باشه این اموزش . موفق باشید همه :rose:

منبع : سایت M - Rashed
 

Mahdi_Rashed

Well-Known Member
یک چیزیهم که یادم رفت بگی اینه که در تکسچر جزییات کانال ابی رو حذف میکنیم . چون base و پایه ی یک نرمال مپ رنگ آبیه و وقتی که رنگ آبی تکسچر جزییات روی کانال آبی تکسچر نرمال اصلی میفته قدرت تکسچر اصلی کم میشه و خطا در نرمال مپ زیاد میشه و به همین دلیله که باید حذف بشه این کانال رنگ آبی .
 

جدیدترین ارسال ها

بالا