Задать вопрос
@N_eFFe_X

Почему не работает шейдер glsl?

Я написал простенький шейдер который должен был отобразить круг в прямоугольной обрасти(по логике на краях прямоугольника часть круга обрезается) но что-то не так и картинки нет в чём может быть проблема? Хотелось реализовать что-то на подобие зеркала в 2д графике.
#version 130
out vec4 fragColor;

uniform vec2 u_resolution;
uniform vec2 u_circle;
uniform float u_radius;
uniform vec2 u_mirror;
uniform vec2 u_mirror_size;
uniform float u_alpha;

bool circle(vec2 uv)
{
float f = (uv.x - u_circle.x) * (uv.x - u_circle.x) + (uv.y - u_circle.y) * (uv.y - u_circle.y);

	if (f < u_radius)
		return true;
	
return false;
}

bool squre(vec2 uv)
{
	if(uv.x > u_mirror.x && uv.y > u_mirror.y && uv.x < u_mirror.x + u_mirror_size.x && uv.y < u_mirror.y + u_mirror_size.y)
		return true;
	
return false;
}

void main() 
{
	vec2 uv = gl_FragCoord.xy;
    vec4 col = vec4(gl_Color.xyz, 0);	

	if(circle(uv) && squre(uv))
		col.w = u_alpha;
	
    fragColor = col;
}
  • Вопрос задан
  • 103 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы