Использование REGL, я пытаюсь нарисовать треугольник с WebGL, где я могу определить цвет в какой-то точке отсчета внутри треугольника, и иметь цвет других пикселов функция от их расстояния до этой точки.
Пока что это работает только тогда, когда эта контрольная точка находится в одном из углов:
градиент от угла
Это было сделано с использованием следующих шейдеров Vert и Frag:
vert: `
precision mediump float;
uniform float scale;
attribute vec2 position;
attribute vec3 color;
varying vec3 fcolor;
void main () {
fcolor = color;
gl_Position = vec4(scale * position, 0, 1);
}
`,
frag: `
precision mediump float;
varying vec3 fcolor;
void main () {
gl_FragColor = vec4(sqrt(fcolor), 1);
}
`,
attributes: {
position: [
[1, 0],
[0, 1],
[-1, -1]
],
color: [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
]
},
uniforms: {
scale: regl.prop('scale')
}
Опорными точками здесь являются [1,0], [0,1] и [-1, -1]. С тем же треугольником, как я могу поставить другую контрольную точку в [0,0] с белым цветом, например? (это дало бы «остров» белого внутри треугольника)