分享·展现横截面的物体分割

感觉很有趣...

想法

在游戏中实现任意切割食材,切割后展现食材横截面的效果。

引擎依然用的是Unity。起初的想法是写Shader把局部顶点discard然后显示横截面,再给横截面添加截面贴图。

比起在单一模型上discard,通过mesh编程把模型分成两部分好像更酷呢……刚好横截面的uv也要重新算。

目前找到最接近效果的资源是这个,包含单面的切面贴图,但是切开很容易产生碎片。不含切面贴图的mesh分割还有这个,但好像不支持复杂点的模型。

Unity Assets还有个用到discard的单模型界面shader,作者还有篇进一步的文章

关于横截面的贴图,烹饪模拟器中有类似mesh分割应用,可以看出这个方向的截面贴图只有一张,不过游戏里可以随意切割,猜测三张贴图可以搞定(比如xyz轴这样?):

推上有人实现了更精细的效果,根据camera远景使用不同横截面贴图,有点定格动画的意思…当然也没打算做到这么复杂啦…

从我想要的结果来说——mesh分割+尽可能少的截图(xyz三方向)即可。

TODO:

进行中

主要参考这篇文章,作者提供可运行了demo

…mesh计算好废啊…稍微复杂点的集合体就切不动切不动…

1切不动的原因找到了xswl随便找的库存模型,大概是疯狂subdivide了233333333333333333333

定位差不多了,但是应该至少得俩贴图…支持横竖向?

现在的问题是——scale=1可以极大程度减少碎片的出现(目前切10次出现那么一两次),对应Blender得把模型scale调成0.01。scale对模型的mesh或者渲染的影响暂不明。

而且第一刀的贴图已经很准了,但是之后的就迷惑了,之后的分离物体贴图应该和最初物体关联,贴图就不会错位?

另外toon outline的shader有问题,被切的那一面整面都会被outline…完全遮掉了贴图…原因暂不明。

感觉应该针对对称物体写个uvmap规则。

update~迫真蛋糕店模拟经营~~~

TODO更新:


0721备注 tex2Dlod