【分享】自定义渲染合批之自定义顶点格式(附 Demo 和引擎源码解读)

对的,官方直播里说了。

1赞

自己看源码的时候两眼一懵逼。给大佬点烟 :+1:

3赞

给大佬点烟

1赞

多谢大佬!

大佬牛逼,学习中

谢谢,正要用到

学习了,感谢分享

cc_time是系统自带吗

是系统自带。不过2.4之前引擎有bug,cc_time的值是不正确的。可以通过自己外部传入time绕过这个问题。

mak zhu xian

增加一个自定义顶点格式的应用案例

1赞

###mark

想问一下这个方法在真机和模拟器环境下有用吗?我这边自己写了一个demo在web上跑是好的,但是模拟器就不显示了

2.4的原生平台很多都重写了,跟非原生的不一致,烦死了
js层写的fillBuffer就没用,因为原生层组件有自己的fillBuffer,压根不会来调用你js层的fillBuffer

我的方法是兼容native的。
不要把逻辑写到fillBuffer里,native是通过renderData获取顶点数据。
另外getVfmt()、getBuffer()这几个方法和文中保持一致即可。

请教下,有没有办法在一个组件里生成使用多张纹理的顶点?一部分使用纹理A,一部分使用纹理B
非原生的我是在fillBuffer里按个flush,但原生平台不行啊

顶点格式里加一组uv就可以了。
可以参考我的另一篇文章,文中第二部分用的纹理遮罩方法。

多谢指点,我去看看

Native报错
Simulator: scripting\js-bindings\auto\jsb_renderer_auto.cpp: Line: 3772, Function: js_renderer_Assembler_setRenderDataList
Simulator: sembler_setRenderDataList : Invalid Native Object
这个有可能是new RenderData的时候导致的吗

你可以下我的Demo,基于Demo去调整。自己撸一遍要试错很多次。