烟缘 发表于 2024-9-29 13:44:27

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

本帖最后由 源支始 于 2020-5-8 21:23 编辑

技术分享 | 卡普空 (Capcom)自研RE Engine引擎与houdini的结合原创 Thepoly
转载至:https://mp.weixin.qq.com/s/11UzM70YGeA6_AntrM555g

Hello . 大家好      今天给大家带来CAPCOM的技术分享,希望能给大家带来一些启发。
CAPCOM自研RE Engine引擎合集链接如下:https://www.youtube.com/playlist ... BtoRqiy1-UY-rxbgG43

其中讲houdini的两个视频:         https://www.youtube.com/watch?v= ... xbgG43&index=4&t=0s         https://www.youtube.com/watch?v= ... G43&index=5&t=1021s


1介绍

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

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


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

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

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

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

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


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



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

3 运用案例

讲了houdini在地形中的一点运用,RE Engine的生成逻辑与育碧分享的基本一致,都是houdini生成mask与foliage信息,然后在引擎中生成与编辑。但讲了一些具体的技术细节,与育碧的那几个视频可以对比着看。
1,例如有时我们需要mask 来生成路面,但地面的mask实际利用的空间很小,造成了很大的空间浪费.所以最好的方法是进行切块。
这样就能保持效果不变,又能节省空间。2,有时我们用模型进行一些地面的造型,但这个有时会产生各种问题,例如埋在地下,重复度太高,手工拼出来的山体会产生锐角等。

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

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

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


4.制作积雪

5.生成冰溜子

6.生成light grid




4运行加速

用了hdk之后的效果显著。

虽然我看不懂日文,但常规来讲,希望提高运行速度就只能:1.GPU并行化 (走一个rtx2080ti,然后在opencl 与cuda中自己挑一个加速)。2.CPU多线程 (憋说话, 直接整一个3990x)。3.性能瓶颈直接用Hdk重写。

注意:1.houdini 自带opnecl 节点,cuda版需要自己写 。2.把每个节点都看做由不同的函数组成的类,不是每个函数都能多线程的,具体请自行翻阅hdk文档。3.文中提到了addpoint addprim的vex函数,但这只能具体问题具体分析,有时性能瓶颈并不在vex,常规的sop node开销也很大。找到性能瓶颈后,再用hdk重写。具体是写CPU多线程版节点还是GPU并行节点就只能具体问题具体分析了。
当然还有一种方法就是搭服务器,毕竟没有什么问题是用钱解决不了的。不过谈到钱就真的触及我的知识盲区了,上面说的rtx2080ti,3990x之类的也都是我在口嗨,毕竟我很穷,还在用i7-4710hq(6年前的古董),新硬件的性能我是真的不懂。

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


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



Weidaliya 发表于 2020-5-12 23:42:09

太强了,感谢楼主的分享!

阿来 发表于 2020-5-27 14:14:00


太强了,感谢楼主的分享!

勇武者核蛋 发表于 2020-8-10 11:46:08

houdini还是不错的

konggejun 发表于 2020-9-10 14:53:21

没想到啊。居然是用houdini。。。

li847785210 发表于 2020-9-22 09:36:15

软件强大用钱堆

qq_大大_vDX 发表于 2020-10-10 22:40:28

为了元素币,拼了

发表于 1970-1-1 08:00:00

六块腹肌 发表于 2022-4-8 13:59:06

技术硬文,软件永远学不完,谢谢楼主分享~~~~~~~!!!!
页: [1]
查看完整版本: 技术分享 | 卡普空 (Capcom)自研RE Engine引擎与houdini的结合