咨询电话:400-810-1418服务与监督电话:400-006-6572
×

提交成功
我们会有专属的教育顾问联系您,请保持手机畅通。

干货分享!卡普空 (Capcom)自研RE Engine引擎与houdini的结合应用

发布时间:2020-05-08 09:04:39

Hello . 大家好!今天给大家带来一拨儿干货分享!卡普空 (Capcom)自研RE Engine引擎与houdini的结合,希望能给大家带来一些启发,我是神棍赵。

一、介绍

近日看了CAPCOM发布的一系列的关于自研RE Engine引擎的技术分享,很受启发(RE Engine引擎制作了生化危机2,3的重制版)。分享一下其中讲houdini 与自研RE Engine 引擎结合的部分,但我不会日语,只能带大家看个热闹。欢迎精通日语的大佬批评指教。

二、开发思路

首先是论述为什么接入houdini,大概在讲非破坏性工作流程的好处与重要性,以及大规模场景开发中houdini 与自研RE Engine引擎结合的必要性。

1-1.png1-2.png

直接采用hda作为交换数据交换格式。

2.png

这时问题出现,会houdini的比较少,学习houdini的成本又偏高,全员使用houdini 不现实。

3.png

所以这时我们的maya 大佬闪亮登场. houdini配合maya,就问你怕不怕。

4.png

说白了就是将不方便直接在引擎中集成的一部分hda 放到maya中使用。后文会有案例。

5.png

在maya中完成修改,验证效果之后再导入引擎里,后文有实例展示。

6.png

接着就是一通展示,主要展示了破碎,建模,lod等功能的实时操作,如丝般的顺滑,我就不一一截图了。 不过大家不用羡慕,经过一些测试,修改一些houdini engine的生成逻辑,再用HDK重写一部分节点,在ue4里也可以做到实时交互,实时编辑。(后文会有讲如何加速运行效率)

7-1.gif7-2.gif

自研引擎也分个三六九等,比如上面这个路网编辑的功能做的就不如下图中开发地平线的Guerrilla Games做的好(Guerrilla Games还把自己的引擎送给小岛秀夫开发死亡搁浅了)。Guerrilla Games做的道路能够同时影响地形和植被,比CAPCOM这个光秃秃的道路不知道高到哪里去了,日本厂商还是得要学习一个。小声BB一句,这个功能是可以通过houdini在ue4中实现的,甚至只用CPU就可以做到实时编辑,所以商业引擎也是大有可为的,不比自研引擎差。

8.gif

再往后就是一些 houdini engine api方面的东西,有兴趣可以直接去看unity或者ue4版的插件是怎么写的 ,这里我直接略过。

9.png

三、运用案例

讲了houdini在地形中的一点运用,RE Engine的生成逻辑与育碧分享的基本一致,都是houdini生成mask与foliage信息,然后在引擎中生成与编辑。但讲了一些具体的技术细节,与育碧的那几个视频可以对比着看。

10.png

1、例如有时我们需要mask 来生成路面,但地面的mask实际利用的空间很小,造成了很大的空间浪费.所以最好的方法是进行切块。

11-1.png11-2.png11-3.png11-4.png

11-5.png

这样就能保持效果不变,又能节省空间。

12.png

2、有时我们用模型进行一些地面的造型,但这个有时会产生各种问题,例如埋在地下,重复度太高,  手工拼出来的山体会产生锐角等。

13-1.png13-2.png

可以通过houdini将一些模型转化为地形。

14.png

3、解决模型拼合时的边缘接缝问题.如图中直接fuse的地形边缘布线很差。

15-1.png15-2.png

经过houdini处理后就会明显改善。

16.png

4、制作积雪

17.gif

5、生成冰溜子

18.gif

6、生成light grid

19.gif

四、运行加速

用了hdk之后的效果显著。

20.png

虽然我看不懂日文,但常规来讲,希望提高运行速度就只能:

1.GPU并行化 (走一个rtx2080ti,然后在opencl 与cuda中自己挑一个加速)。

2.CPU多线程 (憋说话, 直接整一个3990x)。

3.性能瓶颈直接用Hdk重写。

21.png

注意:

1.houdini 自带opnecl 节点,cuda版需要自己写 。

2.把每个节点都看做由不同的函数组成的类,不是每个函数都能多线程的,具体请自行翻阅hdk文档。

3.文中提到了addpoint addprim的vex函数,但这只能具体问题具体分析,有时性能瓶颈并不在vex,常规的sop node开销也很大。找到性能瓶颈后,再用hdk重写。具体是写CPU多线程版节点还是GPU并行节点就只能具体问题具体分析了。

当然还有一种方法就是搭服务器,毕竟没有什么问题是用钱解决不了的。不过谈到钱就真的触及我的知识盲区了,上面说的rtx2080ti,3990x之类的也都是我在口嗨,

毕竟我很穷,还在用i7-4710hq(6年前的古董),新硬件的性能我是真的不懂。

22.png

综上所述,只要肯加钱,换设备,堆人力,绝对能实现实时编辑。不是对houdini这个商业软件有信心,是对c++以及钱有信心。

五、总结

感谢CAPCOM这次的分享,能让我们一窥日本大厂的工作方向,以及一些开发思路。希望大家能对技术分享心怀感激,现在那种技术不开源就嘲讽对方自私的心态真是要不得,有的看就偷着乐吧。

来源:Thepoly