此代码使 blob 对象沿 y 轴上升,并且当它到达屏幕中心时应该反转方向。
blob对象上升,但到达屏幕中心后消失
uniform float uTime;
varying vec2 vXY;
void main(void) {
vec2 uBlob = vec2(0.0, -5.0);
float direction = 1.;
float blobPos = uBlob.y + direction*(uTime/1000.);
if (blobPos > 0.0) {
direction *= -1.0; // Reverse direction
}
uBlob.y += (direction*(uTime/1000.));
vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
float dist2 = pow((vXY.x - uBlob.x), 2.0) + pow((vXY.y - uBlob.y), 2.0);
vec3 fImplicit = vec3(0.0, 0.0, 0.0);
fImplicit.r = (1.0 / dist2); //this creates the red blob
color = vec4(fImplicit.r, 0.0, 0.0, 1.0);
gl_FragColor = color;
}
红色圆圈一直向上,到达屏幕中心后消失。这是怎么回事,我该如何解决?