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 Kamali
🔑جواب سوال 3:

من چنین چیزی رو ندیدم که برای یک پاس دوتا Queue تعریف بشه
بهتره برای درک بهتر این سوالو بپرسیم که تعریف صف چه لزومی داره؟
صف رو تعریف کردند تا یک ترتیبی باشه پس باید یکی باشه نه چندتا!
حالا چرا خطا نگرفته؟! کد زیر رو بررسی می کنیم
a = 0;
a = 1;
الان بعد از اعمال عدد به a مقدارش چنده؟
برابر یکه چون بعد از اعمال مقدارش فرق کرده
من تست نکردم ولی به نظرم اول مقدار Transparent به queue داده شده
بعدش مقدار جایگزین یعنی Overlay
Forwarded from Kamali
🔑جواب سوال 4:

همون طور که از اسم صف پیداست محدود به اسم نیست
ما اصلاً از اسمشون استفاده نمی کنیم بلکه از عددشون استفاده می کنیم
5 تا صف معروف هست که ازشون استفاده میشه حالا شما خواستی میتونی یک صف جدید بسازی
Forwarded from Shader Laboratory
Tags { "Queue" = "Geometry+1" }

این شیء را پس از تمام اشیاء کدر ارائه می دهد، اما قبل از اینکه اشیای شفاف، به عنوان رندر صف 2001 (هندسه به علاوه یک) باشد. این در شرایطی است که شما می خواهید برخی از اشیا همیشه بین دو مجموعه دیگر از اشیاء کشیده شده مفید باشد. به عنوان مثال، در اکثر موارد، آب شفاف باید پس از اشیای کدر، اما قبل از اشیای شفاف باشد.
Forwarded from Kamali
🔑 جواب سوال 5:
گذاشتن تگ در حالت عادی لازم نیست!
یعنی نذاری خودش به صورت دیفالت....
"Queue" = "Geometry" صف
"RenderType" = "Opaque" نوع رندر
......در نظر میگیره
ولی خب بهتره تگ هارو مشخص کنید تا در عملیات رندر به مشکل نخورید و ترتیب صف ها رعایت بشه
اینا صرفاً تگ هستند
مثل تگی که شما به آبجکت میدی این تگ ها هم به شیدر میدید
Forwarded from Shader Laboratory
قسمت بعدی برای نوشتن کد های شیدره
SubShader
{
Tags تگ ها
{
"Queue" = "Geometry" صف
"RenderType" = "Opaque" نوع رندر
}
اینا صرفاً تگ هستند
مثل تگی که شما به آبجکت میدی این تگ ها هم به شیدر میدید
حالا کاربردش چیه؟
مثلاً برچسب RenderType برای Replacement shaders استفاده می شود. شیدر جایگزین این برچسب ها رو می خونه و از یک شیدر مناسب استفاده می کنه.
حتی اگر از شیدر های جایگزین استفاده نکنید بهتره که شیدرهای خودتونو برای استفاده در آینده تگ دار کنید.
CGPROGRAM آغاز
// Cg / HLSL در این قسمت کد رو بنویسید
// ...
ENDCG پایان
}
Forwarded from Kamali
بزار با مثال برات توضیح بدم شاید بهتر باشه (البته نظر خودمه)
توضیح درمورد صف:
تو نونوایی بدون اینکه صفی در کار باشه میشه نون گرفت
ولی فرض کن وقتی صف نباشه چه اتفاقی میوفته!
باعث اختلال میشه!
تو رندر کردن هم همینطوره اگر صف نباشه در رندر اختلال پیدا می کنه

توضیح درمورد تگ:
فرض کن هزارتا کارتن توی یک اتاقه
چطور ما اونا رو مرتب و دسته بندی کنیم؟
برای مرتب کردنشون بهشون برچسب می زنیم
مثلاً می خوایم ترتیب اهمیتشون یا اینکه کدوم شکستنیه و .....رو مشخص کنیم
آیا برچسب زدن فایده ای هم داره؟
بله موقع اسباب کشی ، کسی که کارتن ها رو جابه جا می کنه یک درکی از کارتن ها پیدا می کنه
Forwarded from Deleted Account
یه سوال برام پیش اومد که چند نوع تگ داریم؟
یکیش که Queue بود که حسابی در بارش فرمودید
یکی دیگش مثل این که RenderType
به جز این دو تا بازم هست؟
الان میخوام RenderType را برم بخونم میخوام ببینم دیگ چیا را باید بخونم تا مبحث تگ تموم بشه
Forwarded from Deleted Account
اولیشا ک در مقاله گیمولوزیم گفتید چیزی نفهمیدم🙈
دومیش که میگ سایه را حذف میکنه
سومیش میگه اثر هر نوری را حذف میکنه؟
Forwarded from Kamali
آره خب اون یک مقاله بود خیلی چیز ها بهتره تو کتاب گفته بشه تا مقاله
شما باید به Shader Replacement مراجعه کنید تا بهتر متوجه بشید
Diagonal Pattern is easy
just mod(uv.x+uv.y,number)
fraction is possible