我想在SceneKit中显示一条曲线,该曲线从起点到终点连续显示。我为此创建了一个着色器,但是由于某种原因,我的曲线保持透明。
我的想法是,将曲线的起点和终点传递给着色器,并传递一个动画进度参数,该参数从0变为1。然后在着色器中,检查当前曲面点和由该点确定的点的距离。进度,如果低于此值则应该显示(表示表面为1.0,否则为0)。这是我的着色器程序:
uniform float progress;
uniform vec3 start;
uniform vec3 end;
#pragma transparent
float ox = end.x-start.x;
float oz = end.z-start.z;
float length = sqrt(ox*ox+oz*oz);
float currentPosition = length * progress;
vec4 mPos = u_inverseModelViewTransform * vec4(_surface.position, 1.0);
float x = end.x-mPos.x;
float z = end.z-mPos.z;
float currentLength = sqrt(x*x+z*z);
if (currentPosition < currentLength)
_surface.transparent.a = 0.0;
else
_surface.transparent.a = 1.0;
任何想法是什么问题,或者我怎样才能获得上述结果?