技术分享 | 卡普空 (Capcom)自研RE Engine引擎与houdini的结合

转载 书籍/资料 版权:版权归原作者所有,仅供分享与交流

664 0 0 2020-05-07 17:14:34 举报

Hello . 大家好 今天给大家带来CAPCOM的技术分享,希望能给大家带来一些启发 我是神棍赵

转载自公众号Thepoly

讲houdini的两个视频:

www.*******.com/watch?v=ABpjD-9FRe0&list=PLwr4vGtPYCqVKTBtoRqiy1-UY-rxbgG43&index=4&t=0s

www.*******.com/watch?v=Q67T8K8SxHg&list=PLwr4vGtPYCqVKTBtoRqiy1-UY-rxbgG43&index=5&t=1021s


1、介绍

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


2、开发思路

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

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

微信图片_20200507165255.png

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

微信图片_20200507165250.png

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

微信图片_20200507165455.png

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

微信图片_20200507165458.png

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

微信图片_20200507165500.png

接着就是一通展示,主要展示了破碎,建模,lod等功能的实时操作,如丝般的顺滑,我就不一一截图了

不过大家不用羡慕,经过一些测试,修改一些houdini engine的生成逻辑,再用HDK重写一部分节点,在ue4里也可以做到实时交互,实时编辑。(后文会有讲如何加速运行效率)

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

微信图片_20200507165646.gif

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

微信图片_20200507165649.png


3、运用案列


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

微信图片_20200507165935.png


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

微信图片_20200507165938.png

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

微信图片_20200507170122.png

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


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

微信图片_20200507170933.png

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

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

微信图片_20200507171010.png

4.制作积雪

微信图片_20200507171025.gif

5.生成冰溜子

微信图片_20200507171034.gif

6.生成light grid

微信图片_20200507171046.gif


4、运行加速


用了hdk之后的效果显著。

微信图片_20200507171218.png

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

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

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

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

微信图片_20200507171236.png

注意:

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

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

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


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

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

微信图片_20200507171251.png

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


5、总结


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

标签 卡普空mayahoudiniRE Engine引擎

声明:该资源由发布人:【编辑:牙牙小Q】上传,点击查看作者主页其他资源。

CG模型网(cgmodel.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何CG模型网(cgmodel.com)之意见及观点。

推送到

首页推荐 编辑推荐

取消 通知作者
对此作品设置了隐私保护,禁止保存至本地。