如何在cocos中实现模型的体素化拆分

在B站上看到一个UP主用unity实现的一个工具,将一个模型拆分成不同大小的体素方块儿。不知道cocos中该怎么实现?或者有没有类似的现成工具呢?

1赞

感觉这个有意思,做出来应该很好玩

你都説别人是用unity 实现的工具, 不是unity 官方自带, 那cocos更不可能会自带功能啦 :rofl:。可以连络作者, 问问是用甚麽算法实现的。但如果只是单纯要做素体模型, 可以使用 MagicaVoxel, 不过Unity有一个第三方工具可以把MagicaVoxel的模型导入后优化面数

我当然知道cocos官方不可能自带啦……毕竟官方规模有限,好多东西等着都没弄的,也理解。只是想到论坛上大佬多,说不定谁就顺手做了个呢

以前在unity做过…cocos也可以试试…

找了一篇unity 的文章看了看可以一试

大佬做一个哇~

我手头活干完,我搞一个demo试试

用正交相机给模型做个X光,然后就有体素信息了,再生成一下mesh就好了,自定义一下颗粒网格的话,也可以做成乐高样式:
1
2

试玩链接:https://chengxu1973.github.io/cocos-voxel/

源码链接:https://github.com/ChengXu1973/cocos-voxel

7赞

第一个star

谢谢你,starboy :yum:

大佬牛B啊,你这弄得这么快,我还想看看上面的 @wslx@312474156 大佬的,怕他们不发了哦。

牛哇
帖子至少要五个字。

DC 很高,大佬。

你可以试着把代码里 MAX_INDICE_PER_MODEL 的值改大一点,我现在设置的 2048,体素分的比较小的情况下面数很高,所以dc很高;或者你可以尝试用instancing

大佬73年的?,牛

嗯,1873年

牛而逼之!!!

我有点好奇, 如果原模型是可以动的, 那是不是只能每帧重构颗粒mesh?

感觉动画很难做,一是骨骼信息都没了,二是你重构为体素之后,动画的形态有所变化。

比如说,假如原来的动画是一个人的手臂慢慢抬起,那么手臂上的每一个面都可能会有不均匀旋转+位移+缩放,而重构为体素以后,理想的动画形态是,每一颗体素作为一个整体有位移,旋转的话看产品需求,但是都没有缩放

我现在有个初步的思路,制作模型时骨骼少一点,然后重构模型时,把骨骼权重也储存到体素信息里面(现在只有位置和颜色),重构完以后,以体素为单位按照骨骼进行位移,感觉调试起来不简单