UDK或Unitydynamic运行时网格布尔减法(或可选)

我是3D游戏开发新手,想知道是否有人可以帮助我。

我打算使用UDK,并希望在世界上有可变形的项目。

因此,射弹击中目标,并造成凹痕或孔。

起初,我认为可能有一种方法来在冲击点加载网格,然后从目标网格中“减去”网格。 这可能吗? 这样可以让我有不同的“冲击效应” – 如薄而深,或宽而浅。 (与此类似,但不需要DX11 )

我已经search了这个,但不知道该怎么称呼它(变形网格,布尔网格操作等),但如果它已经有了答案,那就太好了。

如果我的方法是错误的,你能指出我的select吗? 真的不想走大块路线。

或者,如果Unity等支持的话,那么现在换发动机还不算太迟。

非常感谢,马丁

你可以考虑这里概述的方法:

http://answers.unity3d.com/questions/316064/can-i-obscure-an-object-using-an-invisible-object.html

(答案是按照统一编写的,但是同样的共享基础同样适用于虚幻。)

基本上你可以在你的游戏中添加只写入到Z缓冲区的几何graphics,然后画出需要打洞的对象。 这是非常快速的,因为它可以在不修改网格的情况下以两个额外的绘图调用为代价来完成。

最大的问题是,如果两个弹孔接收物体背靠背,一个弹孔将穿过所有这些物体,直到达到防弹物体。 (这在某些情况下实际上可能是需要的)。 但是如果你的游戏中只有像木门那样的某些几何体可以接受到弹孔,效果会非常令人信服。

通常你要求的是不平凡的。 这个function有一些昂贵的中间件软件包,但不是很多免费软件。

一个简单的(但仍然是非平凡的)方法是生成几何的预破碎版本,然后切换到那些。 这需要更多的艺术投资,当然也有一些限制。 良好的工具投资可以改善工作stream程,但需要一些时间才能启动和运行。

这一般的困难在于那些对象是3D(内部具有多个“材料”)。 如果你炸了一座小山,你不只是想把它压在草地上。 你想要生成污垢,石块和附近降落的草皮块。 要在墙上放一个洞,你需要知道墙的内部是什么样的(墙在现实生活中并不是无限薄的平面)。 在风景中穿过整个建筑物的洞更难。 恰当地处理物理(例如,如果你移除它的支撑,确保结构崩溃)更加困难,因为你需要在视觉和物理上复杂地建模结构。

你可以用一些基本的假设和技巧来解决这个问题。 墙可以有一个“贴花”的物体,放置在一个洞周围,使其看起来更粗糙,隐藏/覆盖在墙内外的空间。 尽管如此,实时生成洞仍然是一个窍门。 AAA解决scheme预先计算这些漏洞,通常采用高性能algorithm和非常广泛和复杂的工具集成。

正确处理可变形地形的难点在于,为什么几乎从来没有在一些预先计算的案例和像Scorched Earth(全是2D)的游戏之外看到它。 对于复杂的地形和结构来说,这是可能的,但并不容易,也是不可行的。

请注意,UDK和Unity都使用NVIDIA的PhysX,这是一种具有“破坏”function的中间件。 UDK在虚幻编辑器中包含一个“断裂”工具,使用PhysX的APEX Destruction工具包来执行上述预先计算的方法。 这是由你自己来决定,如果这是“足够好”,您的需求与否。

如果使用Unity还不算太晚,你可以试试这个: https : //www.assetstore.unity3d.com/#/content/9411

在描述中,你可以看看一个video和实时webplayer演示展示的主要function:)