Forwarded from Kamali
Gdcvault
Technical Artist Bootcamp: Shaders 101: Foundational Shader Concepts for Tech Artists
This session will introduce new tech artists and students to the exciting world of shader creation and the art of creating beautiful pixels. No previous shader or programming experience is required. The session will start with basic concepts,...
Forwarded from Kamali
اینم برای دوستان آنریلی خیلی خوبه
در مورد مفاهیم پایه شیدر برای هنرمندان فنی
در مورد مفاهیم پایه شیدر برای هنرمندان فنی
Forwarded from Gameology | گیمولوژی
🔺 مقدمات شِیدر نویسی در #یونیتی
🖊 نویسنده: #سیدمرتضی_کمالی
📄 http://gameology.ir/?pid=read&id=184
—
🆔 @Gameology
🖊 نویسنده: #سیدمرتضی_کمالی
📄 http://gameology.ir/?pid=read&id=184
—
🆔 @Gameology
Forwarded from Gameology | گیمولوژی
🔺 شیدرنویسی در #یونیتی (بخش اول)
🖊 نویسنده: #سیدمرتضی_کمالی
📄 http://gameology.ir/?pid=read&id=202
—
🆔 @Gameology
🖊 نویسنده: #سیدمرتضی_کمالی
📄 http://gameology.ir/?pid=read&id=202
—
🆔 @Gameology
Forwarded from z
سلام من شیدر نویسی زیاد انجام ندادم .
۱-برای نوشتن شیدر دو بعدی باید چه کرد؟
۲-آموزش دارین من گوگل رو زیر و رو کردم کلا یه اموزش داشت که اونم جالب نبود اموزش های آقا مرتضی رو هم دیدم اما من می خوام شیدر دوبعدی بزنم . اگه اموزشی هست ممنون می شم بگین
۱-برای نوشتن شیدر دو بعدی باید چه کرد؟
۲-آموزش دارین من گوگل رو زیر و رو کردم کلا یه اموزش داشت که اونم جالب نبود اموزش های آقا مرتضی رو هم دیدم اما من می خوام شیدر دوبعدی بزنم . اگه اموزشی هست ممنون می شم بگین
#جواب_سوال_1
سلام برای شروع شیدر نویسی بهتره اول با بخش های مختلف یک کد شیدر آشنایی داشته باشید
بعد باید بدونید دقیقاً چه شیدری می خواید بنویسید و باید یک رفرنس داشته باشید
بعد باید الگوریتمشو بنویسید و در نهایت تستش کنید
سلام برای شروع شیدر نویسی بهتره اول با بخش های مختلف یک کد شیدر آشنایی داشته باشید
بعد باید بدونید دقیقاً چه شیدری می خواید بنویسید و باید یک رفرنس داشته باشید
بعد باید الگوریتمشو بنویسید و در نهایت تستش کنید
Shader "MyShader" اسم و آدرس شیدر
{
Properties
{
// پراپرتی های شیدر
// تکسچر ها
// رنگ ها
// و پارامتر های دیگر....
}
SubShader
{
// کد های شیدرتون که میتونه vertex and fragment shader یا surface باشه
}
}
{
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)
}
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
// ...
}
{
//کد شیدر
//در این قسمت باید متغییر های متناظر با پراپرتی هاتون که تعریف کردید رو تعریف کنید
//قسمت پراپرتی برای نمایش دادن به صورت 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 پایان
}
SubShader
{
Tags تگ ها
{
"Queue" = "Geometry" صف
"RenderType" = "Opaque" نوع رندر
}
اینا صرفاً تگ هستند
مثل تگی که شما به آبجکت میدی این تگ ها هم به شیدر میدید
حالا کاربردش چیه؟
مثلاً برچسب RenderType برای Replacement shaders استفاده می شود. شیدر جایگزین این برچسب ها رو می خونه و از یک شیدر مناسب استفاده می کنه.
حتی اگر از شیدر های جایگزین استفاده نکنید بهتره که شیدرهای خودتونو برای استفاده در آینده تگ دار کنید.
CGPROGRAM آغاز
// Cg / HLSL در این قسمت کد رو بنویسید
// ...
ENDCG پایان
}
Kamali
Photo
یک رفرنس جامع برای یاد گیری شیدر به نظرم همینه
من خودم قبلاً این شیدر هارو تجزیه و تحلیل کردم و خیلی چیزا ازش یادگرفتم
من خودم قبلاً این شیدر هارو تجزیه و تحلیل کردم و خیلی چیزا ازش یادگرفتم