Проблема в строке
vec3 backgroundColor = vec3(1.0,0,0,0);
Вы передали 4 аргумента конструктору vec3
. A Конструктор вектора принимает число значений, хранящихся в векторе.
Передача 3 отдельных значений с плавающей запятой для решения проблемы:
vec3 backgroundColor = vec3(1.0, 0.0, 0.0);
Альфа-канал является 4-й компонент. Если вы хотите добавить альфа-канал, вы должны использовать vec4
вместо vec3
:
void main()
{
vec2 r = vUV.st;
vec4 backgroundColor = vec4(1.0, 0.0, 0.0, 0.0); // red: 1, green: 0, blue: 0, alpha: 0
vec4 axesColor = vec3(0.0, 0.0, 1.0, 1.0); // red: 0, green: 0, blue: 1, alpha: 1
vec4 gridColor = vec3(0.5, 0.0, 0.0, 1.0); // red: 0.5, green: 0, blue: 0, alpha: 1
// start by setting the background color. If pixel's value
// is not overwritten later, this color will be displayed.
vec4 pixel = backgroundColor;
// Draw the grid lines
// we used "const" because loop variables can only be manipulated
// by constant expressions.
const float tickWidth = 0.1;
for(float i=0.0; i<1.0; i+=tickWidth) {
// "i" is the line coordinate.
if (abs(r.x - i) < 0.002 || abs(r.y - i) < 0.002)
pixel = gridColor;
}
// Draw the axes
if (abs(r.x) < 0.005 || abs(r.y) < 0.006)
pixel = axesColor;
fragColor = TDOutputSwizzle(pixel);
}