Distance Fields 距离场
- 距离场是一种特殊的碰撞基元,可以和Obi一起使用。
- 每当一个Obi粒子靠近一个collider时它必须计算出到collider表面的最短距离, 以确定它是否会与之相撞。对于某些形状,特别是对于Mesh Colliders来说,这种计算会花费很多时间。距离场会预先计算并存储其边界框内每一个点到碰撞器表面的最短距离。然后,粒子只需要在运行时查询这些距离值,避免了昂贵的计算。
- 距离场类似于 3D 纹理。距离场不是像素,而是由节点组成。与纹理不同,距离场是自适应的。这意味着它们在物体表面附近或在距离经常变化的地方有更高的分辨率(更小的节点)。这大大减少了它们的内存占用。


- 从女性雕像生成的距离场的正面和侧面剖视图。注意,靠近表面的区域分辨率较大。红色区域在网格内,灰色区域在网格外。这个距离场只占用636千字节,有效分辨率为512^3。
什么时候应该使用距离场?
- 将它们用于大型和复杂的对象:当使用 MeshColliders 太过昂贵,或者使用原始碰撞器(盒子、球体、胶囊)来近似对象是不切实际的。很好的例子是一个被布覆盖的大型雕像或一个特别复杂的液体容器。
- 效益 <

本文介绍了Unity中Obi插件如何使用Distance Fields进行高效碰撞检测,详细阐述了Distance Fields的原理、适用场景及优缺点。同时,文章还探讨了Particle attachments的静态与动态类型,以及如何进行粒子渲染,包括ObiParticleRenderer和ObiInstancedParticleRenderer的使用方法。
最低0.47元/天 解锁文章
5207

被折叠的 条评论
为什么被折叠?



