Shader Laboratory
844 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
چهار صف رندر از قبل تعریف شده وجود دارد:
اما بین آنها از پیش تعریف شده می تواند صف های بیشتری باشد. صفهای از پیش تعیین شده عبارتند از:
پس زمینه - این رندر صف قبل از هر چیز دیگر ارائه شده است. این برای skyboxes و مانند آن استفاده می شود.
هندسه یا Geometry (به طور پیش فرض) - این برای اکثر اشیاء استفاده می شود. جیامتری کدر( Opaque geometry ) از این صف استفاده می کند.

هندسه آزمایش شده با آلفا یا AlphaTest - alpha tested geometry از این صف استفاده می کند. این یک صف جداگانه از هندسه است؛ از آنجایی که کارآمدتر کردن اشیاء آزمایش شده با آلفا پس از آنکه تمام کدهای جامد کشیده شده، کارآمد تر است.
شفاف - این رندر صف پس از هندسه و AlphaTest، در جهت عقب به جلو ارائه شده است. هر آلفا مخلوط شده (به عنوان مثال شیدر هایی که روی بافر عمق ننویسند) باید به اینجا بروند (اثرات شیشه، ذرات).
این رندر صف برای اثرات پوشش یا overlay است. هر چیزی که آخرین ارائه شده باشد باید اینجا باشد (به عنوان مثال عنصر لنز).
Shader "Transparent Queue Example" {
SubShader {
Tags {"Queue" = "Transparent" }
Pass {
// rest of the shader body...
}
}
}
یک مثال نشان دادن چگونگی ارائه چیزی در صف شفاف است

هندسه رندر صف، ترتیب اشیاء را برای بهترین عملکرد بهینه می کند. تمام دیگر ردیف صف ها اشیا را با فاصله مرتب می کنند، شروع به رندر کردن از دورترین ها و پایان دادن به نزدیکترین آنها.

برای استفاده خاص در بین صف می توان استفاده کرد. در داخل هر صف با عدد صحیح نشان داده شده است:
پس زمینه 1000 🏔
هندسه 2000 🔶
آلفا تست 2450
شفاف 3000 💎
پوشش 4000🔋
است. اگر یک شیدر از یک صف مانند این استفاده می کند:
Tags { "Queue" = "Geometry+1" }

این شیء را پس از تمام اشیاء کدر ارائه می دهد، اما قبل از اینکه اشیای شفاف، به عنوان رندر صف 2001 (هندسه به علاوه یک) باشد. این در شرایطی است که شما می خواهید برخی از اشیا همیشه بین دو مجموعه دیگر از اشیاء کشیده شده مفید باشد. به عنوان مثال، در اکثر موارد، آب شفاف باید پس از اشیای کدر، اما قبل از اشیای شفاف باشد.
حال بیایید تگ های مختلف را بررسی کنیم:

⭐️برچسب RenderType

تگ RenderType شیدرها را به چند گروه از پیش تعریف شده طبقه بندی می کند، به عنوان مثال این یک شیدر کدر و یا یک شیدر تست شده با آلفا و غیره است که توسط Shader Replacement و در بعضی موارد برای ساخت بافت عمقی دوربین استفاده می شود.

⭐️برچسب ForceNoShadowCasting

اگر تگ ForceNoShadowCasting داده شده باشد و دارای مقدار "True" باشد، پس از آن یک شی که با استفاده از این زیرشاخه ارائه می شود، سایه ها را هرگز تولید نخواهد کرد. این بیشتر مفید است هنگامی که شما با استفاده از جایگزین شیدر در اشیاء شفاف استفاده می کنید و شما نمی خواهید به ارث بردن یک سایه عبور از subshader دیگر.


⭐️برچسب IgnoreProjector

اگر تگ IgnoreProjector داده شده است و دارای مقدار "True" باشد، پس از آن شیء ای که از این شیدر استفاده می کند، توسط پروژکتور ها تحت تاثیر قرار نمی گیرد. این عمدتا در اشیای نیمه شفاف مفید است، زیرا هیچ روش خوبی برای پروژکتورها برای تأثیرگذاری بر آنها وجود ندارد.
یکی از دوستان زحمت کشیدند و فراز هایی از کتاب The book of shader رو نوشتند تا در اختیار شما قرار بگیره...
Forwarded from Deleted Account
Forwarded from Deleted Account
Forwarded from Deleted Account
توضیحات مربوط به کتاب شیدر نویسی به زبان GLSL
قسمت
#Hello_world
Forwarded from Deleted Account
1506383686752.webm
30.7 KB
Forwarded from Deleted Account
#Uniforms
شیدر انیمیشنی تغییر رنگ
Forwarded from Deleted Account
Forwarded from Deleted Account
1506384228887.webm
151 KB
Forwarded from Deleted Account
#Uniforms
merge u_time & u_resolution
توضیحات مربوط به قسمت
#Uniforms
Forwarded from Kamali
sin(x)
Forwarded from Kamali
ما نمی خوایم قسمت های منفی موج تو کار باشه چون می خوایم رنگ بین صفر و یک نوسان کنه
بنابراین یک قدرمطلق میگیریم و قسمت های پایینی رو حذف می کنیم
Forwarded from Kamali
abs(sin(x))
#سوال کار gl_Fragcoord چیست؟