滚动tiled背景shader

分享一下一个简单的滚动tiled背景shader实现:

新建一个和builtin-sprite一样的effect,将builtin-sprite里面的
o *= CCSampleWithAlphaSeparated(cc_spriteTexture, uv0);
换成
o *= CCSampleWithAlphaSeparated(cc_spriteTexture, vec2(fract(uv0.x - 0.5 * cc_time.x), fract(uv0.y - 0.5 * cc_time.x)));
就可以有很好滚动背景的效果了, 也不需要两张图循环移动

chrome-capture-2023-4-3 (1)

9赞

:grimacing:感谢分享。。。

为什么我直接白屏

和这个效果还是很接近的。

https://gitee.com/yeshao2069/cocos-creator-shader/tree/v3.7.x/demo/2dP1/Creator3.7.0_2D_MovingBackground

sprite是这样设置的吗? custom material用的是上面新建的effect

在effect替换了那一句后,报错ERROR: 0:60: ‘cc_time’ : undeclared identifier

cc_time 是引擎内置的参数,你使用的时候,需要 #include, cc-global 的路径要根据你使用的版本,相对应的修改一下
https://docs.cocos.com/creator/3.1/manual/zh/material-system/builtin-shader-uniforms.html#cc-globalchunk

学习,肯定用得上

mark 标记下

mark!!!

把你用的材质球设置一下
image|487x494