当前位置:网站首页>如何使用Houdini进行程序化优化?
如何使用Houdini进行程序化优化?
2022-08-05 05:17:00 【xzljj】
Hello,大家好,今天给大家带来的是Houdini模型资产开发流程的优化概述。
1、介绍
我的名字是Adolfo Reveron,我是西班牙瓦伦西亚的一名38岁的Houdini程序艺术家。
我的职业生涯像其他人一样开始了:危机。在当了8年多的工程师之后,我感到完全焦头烂额,疲惫不堪,压力很大。我的身体在给我提醒,我需要改变。
有一天,我决定迈出第一步,去追随那个一直召唤我的那个艺术道路。由于我一直喜欢绘画和电脑,我决定对3D美术方向做一些研究。2008年左右,当我接触到3D美术时,立即成为我的激情的动力,于是我决定辞去工作,再也不回头。
几年过去了,我踏上了3D美术的英雄之旅:开始建模,喜欢创作纹理,研究着色器,研究照明等等。这些是我最感兴趣的领域,但也尝试了rigging,animating和 compositing,几乎所有的东西都在我手中尝试过了一遍。我觉得,我需要尝试所有的东西,来弄清楚我最喜欢的是哪一个环节。
2012年,我有机会在一部动画短片中工作,然后是一些自由职业者,最后是一部电影,在Netflix上映的时间出奇的晚。
然后,我进入了游戏行业,为一家AAA级外包工作室工作。在那里,我开始为《Hitman》或《Call ofDuty WWII》等游戏的模型资产和环境资产的生产。2016年的时候,我意识到用传统的方式创造令人惊叹的开放世界和超精细的资产是不可持续的:所需的手工工作量也是非常庞大的。这就是我与Houdini的爱情故事开始的地方。
2、我是如何开始学习Houdini的
我在一个作品中遇到的一位视觉特效人员介绍到Houdini,并感到完全被这货创造的视觉效果所吸引。然而,我对视觉特效并不感冒,而是对创造环境和模型资产的生产了浓郁的热情,所以,想知道Houdini在这些环节上能提供什么。我发现了与HDA相关的程序建模和内容创作的非常有趣的东西(代表HoudiniDigital资产,由程序艺术家创建的定制工具)。
尽管当时它在3D网站和各个平台中的能查阅到的信息量相对较小,但我意识到,关于程序建模,一头野兽即将被释放:通过数字资产进行3D建模和内容生成的可能性是令人难以置信的,这一点,被许多公司的开发团队和艺术家误读了,无论是动画还是游戏开发。
先进的程序性内容创建是非破坏性的。它解决巨大工作量,并且可以在一个管道中无缝集成。换句话说,它提供了一种解决大规模相似资产创建的解决方案,并且是以一种灵活的方式处理工作量,这些工作量基本上都是由程序化完成的。它对输出成品艺术和处理大量重复性的大型任务都特别有用,这样可以让3D用户专注于艺术而不是制作一些反复重复的任务。
3、程序化建模和数字资产
许多人已经听说过程序化以及与之相关的关键词,比如 "非破坏性"、"随机化"、"许多变化 "等等,但我意识到他们中的大多数人并不完全理解,这些东西都出现对他们的日常工作有什么好处。我注意到我需要以程序化的方式完成一些作品,让他们真正看到它,比如在短时间内创造一个电影中的完整大教堂,或者在UE中创建一个游戏中的桥梁。这些例子中的任何一个,如果以传统的方式来处理,都会成为极其耗时、昂贵和呆板的项目。而现在,我们就像有了一个新的工具模块,一个艺术家只要通过修改参数滑块,在几分钟内就可以随意做出多样化的设计。
进入Houdini领域后,您可以像使用任何其他3D软件一样对任何内容进行建模:拉伸,合并顶点,添加循环等。Houdini将记录您所做的每个操作,并且集成到一个节点,或者说,用节点来进行当前步骤结算。你会有一个完整的历史记录,记录着当前步骤你做了什么,它会让你回到任何一个环节,像这样:
在我看来,这不是使用Houdini进行程序化建模的最佳方案。对于一个小型资产或者一个中型资产,也许可以这样来做,但对于像车辆这样的大型资产,不要这样做。
那么,你可能会问,使用Houdini进行程序化模型资产生成应该是什么方式呢?OK,您可以依靠创建过程而不是资产。例如,如果我们创建了一个程序化的轮胎,而不是传统的轮胎建模。
你可以把程序化的模型资产提升为一种工具模块,这样做的好处是可以和其他工具模块一起堆叠起来,反复使用。由程序艺术家来定义这个工具模块需要输入什么,以及它将产生什么输出......这可以再次作为另一个工具模块的输入。
这种方法依赖于分层的原则:你可以将简单的操作(工具)堆叠起来,以达到复杂的结果。
如果,我们尝试将这个轮胎作为组件组成新的资产呢,比方说组装成一个自行车,这里有一个我正在开发的完全程序化的自行车演示工程,不涉及手动调整。
我们可以看到,轮胎的粗细,车子的长短,车把的造型,链条与后轮的距离等等这些效果,我们可以通过输出模块的滑块进行调整,就可以得到一个全新造型的模型资产了。就像我们在常规的3D软件里面预制了一个自行车模型,我们只是修改了预制资产的参数,而不是重新调整模型资产的点线面那些操作。这个操作方式很像在场景里创建了一个默认球的模型资产,我们可以指定球的半径和球的模型段数精度。
4、如何提升生产管线
你可以选择整合形式的开发流程,也可以选择独立形式的工作流程。如果你的工作室团队,以整合为目标,可以组建几个人的小组他们负责美术资产的模块生产,再加一个Houdini程序艺术家。可以建立一个整个工作室共享的工具池模块,艺术家们将把这些工具加载到他们选择的平台上(3dsMax, Maya, Unreal, Unity, Cinema4D)来做他们需要做的事情,或者,在这个工具还不存在的情况下要提出你的开发需求。它可能是一个在Maya中创建出来的程序化可渲染岩石的模块(因此跳过了Zbrush中的手工雕刻)。
或者,您可以在虚幻引擎中创建不错的游戏关卡。
然而,我也发现,把每个任务都推广到一个工具上并不是一个好的做法,因为这将导致个别生产环节,会出现过度规划的工作量。
如果你的公司选择了独立的工作流程,而不是在Houdini里面完成所有工作流,只需将资产以所需的通用格式(.obj,.fbx, .abc等)导出。与通过传统方法处理任务相比,其好处是你可以承担更大反复迭代的工作量,比如在短时间内创建多个城堡的变种。
同样,它可能会帮助一些部门,节省任务时间,比如:
Modeling: props, vehicles, weapons, characters
Level design and generation, worldbuilding, dressing, scattering
Terrain and landscapes
Concept, lookdev, visual development
Scan processing, AI training, etc.
总而言之,根据我的经验,如果您牢记一种灵活的方法,即随着进度将工具的使用和手动工作混合在一起,则可以获得最好的结果。去开发一个灵活多变的工具模块,还是与手动工作流程的混合?每个项目都是不同的,为该特定项目找到适当的平衡是关键。
5、中小型工作室如何受益
Houdini背后的公司Side FX正在做出巨大努力,以在工作室中推广该软件的使用。他们提供了大量的学习资源,也为独立工作室提供了一个非常便宜的许可证,其中包括与各种CG行业软件互通的接口插件,可以将Houdini与第三方工具(3ds Max,Maya,Cinme4D,Unity,Unreal)联系起来。
在我看来,最困难的部分不是技术方面,而是心态方面。我发现艺术家和部门经理都对Houdini产生了令人惊讶的强烈抵制,尽管它有明显的好处。大多数艺术家和经理,甚至是3D资深人士,仍然认为Houdini只是一个VFX软件。
6、如何避免创建程序资产时出现重复性
在创建一个资产或工具时,我做的第一件事就是离开电脑。我拿起铅笔和记事本,花几分钟时间尝试做一个简短的清单,说明我将要创建的东西的主要特征是什么。换句话说,什么是构建它的最简单的方式?最基本的是什么?如果我正在创建一辆汽车,它将是一个拉伸的立方体,像小孩子通常画的东西。如果再加一层,可能就是在车底盘下面加四个圆柱体。这就足以让我们把这个图像(或三维模型)与汽车的普通概念联系起来。下一层将涉及添加方向盘和后视镜,等等。
一旦我定义了这些关键的描述性元素,我就问自己:如果用传统的方式建模,我将如何为方向盘建模?好吧,总是有许多不同的方法来实现同样的事情。你可以从一个圆环形状开始,这将为你提供对半径和厚度的控制,但是,如果你从一个沿曲线挤压的轮廓建立一个呢?Houdini将为你提供一个完全不同的控制范围。
这里有一个很酷的设计的例子。
你练习得越多,你就越能习惯Houdini的工作流程。当我在写流程规划的时候,我刚刚想到了另一种方法:创建一个360度的开放圆,第一和最后一个点没有被焊接。然后,对它们进行软变形。
您将无法使用初始圆环方法创建此车轮变体。因此,这是关于训练眼睛以瞄准一种策略是很好的选择,在理想情况下,它提供了很多可能性,同时也很简单。它可能看起来像一个复杂的过程,涉及很多思考,但一旦你习惯了它,你就会习以为常了。
因此,避免重复的关键因素不是取决于Houdini所提供的技术,而是取决于程序艺术家设计的工具或者是节点设置时的思维。
你总是可以在此基础上继续构建,增加一些细节层,我们创建一个工具,每次运行它都能创建一个新的螺栓变化,而不是一次又一次地创建相似的螺栓。
7、优化生产
与传统建模相比,程序化生成螺栓的工具可能会节省几分钟的时间。如果您需要创建10个螺栓变体x 10分钟/每个,让我们假设它可能会节省100分钟来获得10种不同的高多边形模型(使用Houdini,每次调整“seed”控制器都会立即发生变化)。所以效率是真棒。
如果,你的目标是一个更复杂的例子,假设从OSM数据中创建一个城市,完整的道路和建筑物,效率是惊人的。您可以在几分钟内完成一个巨大的关卡,而环境美术师团队在传统流程中也许需要数百个小时才能完成。
注意:OSM代表开源地图,如果我是正确的。您可以下载类似“街道信息”之类的内容,这些内容可以加载到Houdini中。
类似的例子,比如用样条线去创建一个超详细的火车轨道,或用圆柱体创建一个罗马竞技场,都是同样出色的。
然而,它也有局限性:一个工具是一个程序,因此,它的优点和缺点涉及它对规则的依赖。例如:如果你创建的工具希望完成柱子的实例资产,你必须给它提供柱子,而不是球,立方体之类的,否则你会得到意想不到的结果。
总而言之,一个工具越复杂,可能会自动解决更多的问题,也会节省更多的时间,成百上千个小时,但如果你过于追求极致,要求的东西与它原来的目的太不一样,你可能需要一个新的工具。
- End -
边栏推荐
猜你喜欢
CAN、CAN FD
八、响应处理——ReturnValueHandler匹配返回值处理器并处理返回值原理解析
OSPF网络类型
Facial Motion Capture 调研
十一、拦截器运行原理
[Pytorch study notes] 11. Take a subset of the Dataset and shuffle the order of the Dataset (using Subset, random_split)
LeetCode刷题之第23题
[Pytorch study notes] 10. How to quickly create your own Dataset dataset object (inherit the Dataset class and override the corresponding method)
【论文阅读-表情捕捉】ExpNet: Landmark-Free, Deep, 3D Facial Expressions
Redis集群(docker版)——从原理到实战超详细
随机推荐
教你如何封装功能组件和页面组件
(C语言)计算结构体大小——结构体内存对齐
6k+ star,面向小白的深度学习代码库!一行代码实现所有Attention机制!
如何组织一场安全、可靠、高效的网络实战攻防演习?
【ts】typescript高阶:键值类型及type与interface区别
基于STM32F4的FFT+测频率幅值相位差,波形显示,示波器,时域频域分析相关工程
Redis集群(docker版)——从原理到实战超详细
WCH系列芯片CoreMark跑分
多边形等分
【UiPath2022+C#】UiPath Switch
物联网:LoRa无线通信技术
[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)
CVPR 2020 - 频谱正则化
CAN、CAN FD
CVPR best paper winner Huang Gao's team from Tsinghua University presented the first dynamic network review
网管日记:故障网络交换机快速替换方法
网络ID,广播地址,掩码位数计算
CVPR2020 - 自校准卷积
idea 快速日志
SharedPreferences and SQlite database