功能描述:
实现纹理连续循环滚动的效果
效果:
参数:
// 主材质(默认)
mainTexture: { value: white }
// 主颜色(默认)
mainColor: { value: [1, 1, 1, 1], editor: { type: color } }
// 速度方向的无级调节(水平,垂直) 可正向,反向;
speed: { value: [1,0], editor: { slide : true, range : [-10.0,10.0], step: 0.01 } }
核心思路:
根据时间值,对vu值进行平移。
vec4 frag () {
// 根据时间修改贴图偏移
vec2 uv_offset = v_uv;
uv_offset -= cc_time.x * speed;
// 判断超出范围
uv_offset.x = uv_offset.x > 1.0 ? uv_offset.x - 1.0 : uv_offset.x;
uv_offset.y = uv_offset.y > 1.0 ? uv_offset.y - 1.0 : uv_offset.y;
vec4 col = mainColor * texture(mainTexture, uv_offset);
return CCFragOutput(col);
}
扩展:可以应用于场景内路标指示,广告牌滚动等的效果。

