【包教包会】操控顶点的大师——CocosCreator Assembler保姆级教程

第一个顶点坐标50,100没问题啊

有些功能Assembler可以做,Shader不行,或者实现效率低。
毕竟Assembler是可以合批的

左边这个爱心用Assembler怎么弄?会有很多顶点吧 :rofl:

mark一下,看起来应该能用作3D旋转

受教了,谢谢

鸽鸽都变性了

别说挺漂亮的,哈哈

再深入点,自定义渲染管线

为什么我自己测试的时候
有些图的uv坐标是正常的 0-1
但是有部分图片uv坐标都是0.0xxxx这种值呢
image

是不是被合图了

动态合图导致的

对,你关掉动态合图试试

还行,100+1 :sunglasses:

怎么给sprite增加点

assembler,意为组装器,即组装顶点数据的意思。
sprite的各个模式各有一个组装器,比如simple sliced tiled
看源码,参照simple组装器改造即可。
除了在顶点数据里加个顶点外,还需要加入顶点索引
顶点索引是为了复用顶点数据而构造的序号数组,比如标准的simple模式下,一个sprite有4个顶点,顶点索引里的值则是1 2 3 1 3 4,表示两个三角形。
题主这里是用外部修改的方式去做的,我之前做过几个assembler的修改,是自己抄了源码中sprite和assembler过来魔改的,可以参见我帖子里的源码:
https://forum.cocos.org/t/topic/154029

自定义Assembler的Demo已更新,地址不变:https://gitee.com/szrpf/AssemblerDemo/blob/master/assets/Script/Helloworld.ts
image
这个Demo里我自定义了3个顶点的Assembler,结果画出来一个三角形
image
如果要6个顶点,需要做2件事:
1、把顶点数改成6,三角形数量改成4(一般是顶点数 - 2)
2、最下面那个函数里,把6个顶点的vData、uintVData和4个三角形的iData都填一下
image
一般实际应用场景,都是根据业务需求,用for循环给他们赋值的,这里只是演示
Assembler的实际应用,可以参考我以前发的一篇帖子:
【包教包会】对CocosCreator拖尾组件MotionStreak做了全面优化

1赞

好东西啊,收了收了 :laughing:

确实是这个问题

1赞

学习了,坤坤攻击image