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
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 این اسم هارا بنویسیم؟یا از کامپوننت متریال وقتی میخواییم شیدر انتخاب کنیم باید دنبال این اسم ها باشیم؟
Forwarded from Kamali
ببین این داره اسم شیدر ها تو نسخه های قبلی و نسخه ی 5 رو میگه
Forwarded from Kamali
ببین ما دو جور شیدر داریم یکی مبناشون بر specular هست که بهش میگن ( standard(Specular setup و یکی دیگه metallic که بهش میگن standard
Forwarded from Kamali
Forwarded from Kamali
Forwarded from Kamali
Forwarded from Kamali
Shader " Sprites/Default "
{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
_Color ("_Color", Color) = (1,1,1,1)
}

SubShader
{
Tags {"Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent"}
ZWrite Off Blend SrcAlpha OneMinusSrcAlpha Cull Off

Pass
{

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"

struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
};

struct v2f
{
half2 texcoord : TEXCOORD0;
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
};

sampler2D _MainTex;
fixed4 _Color;
float _Speed;


v2f vert(appdata_t IN)
{
v2f OUT;
OUT.vertex = UnityObjectToClipPos(IN.vertex);
OUT.texcoord = IN.texcoord;
OUT.color = IN.color;
return OUT;
}

float4 frag (v2f i) : COLOR
{

float2 uv = i.texcoord.xy;
float4 tex = tex2D(_MainTex, uv)*i.color;

return tex*_Color;
}
ENDCG
}
}
Fallback "Sprites/Default"

}