我正在尝试在多边形内绘制径向渐变。我的舞台是600x320
. 我能够绘制渐变,但它“扭曲/拉伸”。目标是像灯光一样产生渐变。
u_lightPosition
作为相对值传递:{0.5, 0.5}
。
当前未使用的作为绝对值lightPositionAbsolute
传入。 {300.0, 160.0}
我的片段着色器目前看起来像这样:
#ifdef GL_ES
precision lowp float;
#endif
varying vec4 v_fragmentColor;
uniform vec2 u_lightPosition;
uniform vec2 u_lightPositionAbsolute;
uniform vec4 u_outerColor;
uniform vec4 u_innerColor;
uniform float u_radius;
void main()
{
vec2 resolution = vec2(600,320);
vec2 position = ( gl_FragCoord.xy / resolution.xy );
float distanceFromLight = length(position - u_lightPosition);
gl_FragColor = mix(u_outerColor, u_innerColor, distanceFromLight);
}
使用圆形多边形,这将导致: