Shader Laboratory
843 subscribers
265 photos
15 videos
59 files
404 links
Shader Laboratory
a channel about shaders in telegram

ID : @smkgames

MyStack : goo.gl/smMuqe 😎👌
Download Telegram
Forwarded from Deleted Account
Forwarded from Deleted Account
Forwarded from Gameology | گیمولوژی
🔺 مقدمات شِیدر نویسی در #یونیتی
🖊 نویسنده: #سیدمرتضی_کمالی

📄 http://gameology.ir/?pid=read&id=184

🆔 @Gameology
Forwarded from Gameology | گیمولوژی
🔺 شیدرنویسی در #یونیتی (بخش اول)
🖊 نویسنده: #سیدمرتضی_کمالی

📄 http://gameology.ir/?pid=read&id=202

🆔 @Gameology
Forwarded from z
سلام من شیدر نویسی زیاد انجام ندادم .
۱-برای نوشتن شیدر دو بعدی باید چه کرد؟
۲-آموزش دارین من گوگل رو زیر و رو کردم کلا یه اموزش داشت که اونم جالب نبود اموزش های آقا مرتضی رو هم دیدم اما من می خوام شیدر دوبعدی بزنم . اگه اموزشی هست ممنون می شم بگین
#جواب_سوال_1
سلام برای شروع شیدر نویسی بهتره اول با بخش های مختلف یک کد شیدر آشنایی داشته باشید
بعد باید بدونید دقیقاً چه شیدری می خواید بنویسید و باید یک رفرنس داشته باشید
بعد باید الگوریتمشو بنویسید و در نهایت تستش کنید
Shader "MyShader" اسم و آدرس شیدر
{
Properties
{
// پراپرتی های شیدر
// تکسچر ها
// رنگ ها
// و پارامتر های دیگر....
}

SubShader
{
// کد های شیدرتون که میتونه vertex and fragment shader یا surface باشه
}
}
تعریف پراپرتی ها:

Properties
{
_MyTexture ("My texture", 2D) = "white" {}
_MyNormalMap ("My normal map", 2D) = "bump" {} // Grey

_MyInt ("My integer", Int) = 2
_MyFloat ("My float", Float) = 1.5
_MyRange ("My range", Range(0.0, 1.0)) = 0.5

_MyColor ("My colour", Color) = (1, 0, 0, 1) // (R, G, B, A)
_MyVector ("My Vector4", Vector) = (0, 0, 0, 0) // (x, y, z, w)
}
SubShader
{
//کد شیدر
//در این قسمت باید متغییر های متناظر با پراپرتی هاتون که تعریف کردید رو تعریف کنید
//قسمت پراپرتی برای نمایش دادن به صورت public در اینسپکتوره و صرفاً جهت نمایش متغییر های تعریف شده در این قسمته ، پس باید حتماً متغییر متناظرشو اینجا تعریف کنید.
// ...
sampler2D _MyTexture;
sampler2D _MyNormalMap;

int _MyInt;
float _MyFloat;
float _MyRange;

half4 _MyColor;
float4 _MyVector;

// Code of the shader
// ...
}
قسمت بعدی برای نوشتن کد های شیدره
SubShader
{
Tags تگ ها
{
"Queue" = "Geometry" صف
"RenderType" = "Opaque" نوع رندر
}
اینا صرفاً تگ هستند
مثل تگی که شما به آبجکت میدی این تگ ها هم به شیدر میدید
حالا کاربردش چیه؟
مثلاً برچسب RenderType برای Replacement shaders استفاده می شود. شیدر جایگزین این برچسب ها رو می خونه و از یک شیدر مناسب استفاده می کنه.
حتی اگر از شیدر های جایگزین استفاده نکنید بهتره که شیدرهای خودتونو برای استفاده در آینده تگ دار کنید.
CGPROGRAM آغاز
// Cg / HLSL در این قسمت کد رو بنویسید
// ...
ENDCG پایان
}
Forwarded from Kamali
Kamali
Photo
یک رفرنس جامع برای یاد گیری شیدر به نظرم همینه
من خودم قبلاً این شیدر هارو تجزیه و تحلیل کردم و خیلی چیزا ازش یادگرفتم
Forwarded from Deleted Account
بلوک

Pass
{

}

تو شیدر چیکار میکنه و چه کاربردی داره؟
#جواب_سوال_2
در شیدر شما می تونید یک جلوه ی پیچیده رو در پاس های مختلف دسته بندی کنید به عنوان مثال:
پاس اول: نورپردازی و سایه زنی
پاس دوم:افکت اول
پاس سوم:افکت دوم
پاس چهارم:افکت سوم
بعد می تونید با قابلیت هایی که داره افکت هایی که لازم ندارید رو غیر فعال کنید
Shader Laboratory
یکی از اعضای گروه سوالی در رابطه با صف رندر یا Render Queue پرسید که سوال متداولی هم هست که پاسخ آن را می توانید در زیر مشاهده کنید
#اصلاح
(خط بعدی مشکلی داشت که برطرف شد...)
به طور خلاصه:
برای رندر شدن متریال آبجکت ها یک استانداردی تعریف کردند که هر کدوم یک عددی داره
"Queue" = "BackGround"
"Queue" = "Geometry"


مثلاً اول شیدر های پس زمینه رندر میشه و بعد شیدر هندسه
Forwarded from Deleted Account
سلام اونا که زیرش خط کشیدم در یونیتی ۵ دقیقا چین؟
باید قسمت تگ cg این اسم هارا بنویسیم؟یا از کامپوننت متریال وقتی میخواییم شیدر انتخاب کنیم باید دنبال این اسم ها باشیم؟