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
Forwarded from Deleted Account
Forwarded from Deleted Account
خب حالا void disk را مینویسیم و بهش آرگومان های
r همون رزولیشن هست(resolution )
center مرکز دایره
radius شعاع دایره
color رنگ
pixel خروجی این تابع
را میدیم
و شرط میزاریم که اگر فاصله ی r از مرکز دایره کمتر از شعاع بود بیاد و پیکسل را مقدار بده.
Forwarded from Deleted Account
خب حالا متغییر هامونا مقدار میدیم
r را جوری مقدار میدیم که خروجیمون بیاد داخل فریم(قاب نمایشمون)
radius را یک مقدار دلخواه میدیم که شعاع دایره هست
همچنین color را مقدار میدیم از نوع vec3
pixel
Forwarded from Deleted Account
راستی سنتر را بعدا مقدار میدیم که ببینید هر دو جا میشه مقدار داد
Forwarded from Deleted Account
خط21 ازتابع دیسک که قبلا داشتیم استفاده میکنیم
فقط من اینجا
center
را درجا مقدار دادم
Forwarded from Deleted Account
و تمام
pixel
میاد داخل خروجیمون قسمت
fragColor
Forwarded from Kamali
#define PI 3.14
//create a 2-D disk on the screen
vec3 disk(vec2 resolution, vec2 center, float radius, vec3 color) {
if( length(resolution-center) < radius) {
return color;
}
}

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;

vec2 resolution = 2.0*vec2(fragCoord.xy - 0.5*iResolution.xy)/iResolution.y; //move coordinates to center of frame

float radius = 0.2;

vec3 color = vec3 (0.8,0.0,0.8);

vec2 movement = vec2(0.0,0.0);


vec3 result = disk(resolution,movement,radius,color);



fragColor = vec4(result, 1.0);

}
Forwarded from Kamali
فقط یک نکته ای مطرح کنم که شاید مفید باشه
Forwarded from Kamali
تو کتاب The Book of shader یه جاش نوشته که بهتره از تابع های Built-in استفاده بشه تا اینکه از شرط ها استفاده کنیم
Forwarded from Kamali
Forwarded from Kamali
#define PI 3.14
//create a 2-D disk on the screen
vec3 disk(vec2 resolution, vec2 center, float radius, vec3 color) {
float a = step( length(resolution-center) , radius);
return vec3(a,a,a) * color;

}

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;

vec2 resolution = 2.0*vec2(fragCoord.xy - 0.5*iResolution.xy)/iResolution.y; //move coordinates to center of frame

float radius = 0.2;

vec3 color = vec3 (0.8,0.0,0.8);

vec2 movement = vec2(0.0,0.0);


vec3 result = disk(resolution,movement,radius,color);



fragColor = vec4(result, 1.0);

}
Forwarded from Kamali
Forwarded from Kamali
Forwarded from Kamali
The Book of shader
Forwarded from Kamali
Forwarded from Kamali
Forwarded from Deleted Account
Forwarded from Deleted Account
Forwarded from Deleted Account
Kamali
شیدر نویسی با طعم یونیتی.pdf
یکی از دوستان یک جمله رو از این مقاله اصلاح کردند
درمورد smoothstep
اگر x کوچک تر از low باشه 0 رو بر می گردونه و اگر از high بزرگ تر باشه 1 رو بر می گردونه