Creator2.4 CCMesh的setPrimitiveType设置绘制的图元原生平台不起效

如题本想用mesh来绘制多个点图元,使用setPrimitiveType方式设置的点的,网页端正常
但是原生端不正常,还是渲染的三角形,查了一下这个方法
2.4版本的mesh可以通过这个方法修改mesh的绘制图元,但是由于原生端mesh初始化方法
不走这一块,导致subMesh是空的,然后这个方法就不起作用了,可以看看图
image

然后按照官方文档在effect文件中pass中设置了也没用。


想问问,还有其他方法设置这个绘制图元吗?

答主解决问题了吗?我也发现了这个问题

是因为原生渲染mesh写死了用三角形图元渲染的,我是通过自定义引擎弄的,setPrimitiveType设置了保存图元,然后渲染的时候传过去原生那设置的

大佬有样例代码吗?或者具体是怎么设置保存图元的呢?如何把数据传去原生那边呢?

可以方法比较拙劣,仅供参考
1.在CCMesh里面setPrimitiveType中保存绘制类型
image
2.修改jsb-engine.js,(这个因为每次都会重新编译,所以我把这个修改的放在项目build-template,方便覆盖jsb-default工程里面的)
找到里面cc.MeshRenderer装配器相关扩展,修改updateMeshData方法,判断有存这个_PrimitiveType就传过去


3.修改C++层代码 MeshAssembler.hpp MeshAssembler.cpp,增加一个参数



最后一步就是通过jsb绑定
重新把刚刚修改的c++代码绑定到js,文件就是那个jsb_renderer_auto.cpp

1赞

或者你直接用三角形的来渲染方块,就不用改了,就是顶点多了

谢谢!!!不过我用Graphics绕过了这个问题…改了一天改不动

请问现在Cocos修了这个问题没有?2.4.8

应该没有吧,没留意

我想搞个MiniMap,画点 GL_POINTS
搞了才发现有这个Bug,真是蛋碎哦

可以用graphics组件来画试试,不用mesh

那个性能不是很低嘛

我原来打算一个怪物一个点,现在只能改成一个怪物一个三角形了

还好吧,一个点是有4个顶点那样子