Forwarded from Deleted Account
خب حالا void disk را مینویسیم و بهش آرگومان های
r همون رزولیشن هست(resolution )
center مرکز دایره
radius شعاع دایره
color رنگ
pixel خروجی این تابع
را میدیم
و شرط میزاریم که اگر فاصله ی r از مرکز دایره کمتر از شعاع بود بیاد و پیکسل را مقدار بده.
r همون رزولیشن هست(resolution )
center مرکز دایره
radius شعاع دایره
color رنگ
pixel خروجی این تابع
را میدیم
و شرط میزاریم که اگر فاصله ی r از مرکز دایره کمتر از شعاع بود بیاد و پیکسل را مقدار بده.
Forwarded from Deleted Account
راستی سنتر را بعدا مقدار میدیم که ببینید هر دو جا میشه مقدار داد
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);
}
//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
تو کتاب The Book of shader یه جاش نوشته که بهتره از تابع های Built-in استفاده بشه تا اینکه از شرط ها استفاده کنیم
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);
}
//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);
}
Kamali
شیدر نویسی با طعم یونیتی.pdf
یکی از دوستان یک جمله رو از این مقاله اصلاح کردند
درمورد smoothstep
اگر x کوچک تر از low باشه 0 رو بر می گردونه و اگر از high بزرگ تر باشه 1 رو بر می گردونه
درمورد smoothstep
اگر x کوچک تر از low باشه 0 رو بر می گردونه و اگر از high بزرگ تر باشه 1 رو بر می گردونه