ØyvindFiksdal分享了在
Houdini创建房屋和景观的程序过程的细节,并讨论了这种方法的好处。
引言
我叫
Eivind Fixdahl ,我是一位挪威艺术家,以前主要从事传统艺术工作。 接近三十年的时候,我决定完全专注于3D,并参加了为期两年的3D课程和动画。 一段时间后,我在挪威最大的广告公司之一找到了工作。
广告行业的工作为您打开了大门,但是为一家公司工作没有给我实施的可能性,因此我成为了自由职业者。 经过两年的自由职业,我和一位前同事决定联合起来创建一家名为Trollskog的公司。
项目的程序方法
Houdini的程序性总是让我着迷,但在艺术层面上,不仅是程序的标准用法。 在回顾了大量的教程和演示之后,我开始掌握隐藏在程序内部的功能。
使用Houdini或任何其他软件中的程序资源时,几乎没有机会引入艺术风格-您只能更改种子,并希望自己能获得一些有趣的东西。 当您在艺术总监的指导下工作时,很有可能将背景资产分配给随机化,但是创建英雄资产或手动创建的村庄对我们大多数人来说都是一项难以承受的任务。
即使使用传统的建模和雕刻,创建整个村庄也是一项艰巨的任务,尤其是在资产完成后进行编辑。
我的概念基于手动创建简单的低多边形资产,以及创建同一套程序工具的想法,这些工具可读取几何图形并创建具有所有细节,纹理和改进的现成模型。 使用传统方法,这样的工作将需要几天的时间。
还值得注意的是,我大约一年前做了这个项目,以扩展我在Houdini的知识,与
VEX合作并了解是否有可能在生产管道中使用Houdini。
房屋建筑:程序输送机
由低聚底部生成成品房屋的过程由一系列模块组装而成。 在谈论Houdini模块时,它们通常是指执行特定任务的节点链。 例如,第一个模块读取低多边形几何图形并识别屋顶,墙壁,门和窗户。 从中分支出几个执行辅助操作的模块。 例如,然后将屋顶发送到下一个模块,查找屋顶的脊并检查其是否可以检测到尖顶。 接下来,将数据发送到创建图块的新模块,然后发送到另一个模块,以创建苔藓,然后创建草,依此类推。
在完成的模型中,几乎没有预先创建的资产。 而是从它们下面的表面生成它们。 这是项目的概念。 如视频中的示例所示,仅根据简单的低多边形几何体创建墙。
该过程首先导入一个单独的网格,如第一个视频所示。 从上面我已经说过,模型从程序上可以识别屋顶,墙壁,窗户和门。 然后将它们转移到创作的主要阶段。 输入模型还用于生成常春藤,该常春藤不仅在表面上生长,而且还测量模型的体积以避免过多或过少的植被。
这些元素中的每一个都读取输入文件的路径,并将其作为属性传递,因此完成的模型将作为本机Houdini文件编写。 也就是说,在选择模型以创建完成的模型后,单击鼠标就足够了。
程序方法与体力劳动相结合
当使用没有手动创建的输入数据的完全过程管道时,您既可以得到自然的结果,也可以看到随机的结果,但是过程将非常复杂且不可预测。 但是将这两种方法结合起来,我们将简化工作,并对最终结果有更多的控制权。
当然,需要留一些机会,例如为对象的比例,旋转或位置创建随机值,以及使用噪声模式来模拟石材表面等等,但是对于像Houdini这样的可靠主力马来说,这些操作很简单。
材料制造
从视频中您可以看到关于创建墙的视频,这些材料的很大一部分不是纹理,而是几何形状。 其余材料是使用来自网格的颜色数据以及曲率测量和其他使用属性完成的技巧创建的。 实际使用的大多数纹理都是通过
COP (Houdini的内置作曲器)创建的非常简单的纹理。
导入之前,对低多边形模型执行UV扫描,并且在建模过程中(例如,在创建屋顶瓦片时)会使用此数据。 尽管我没有在最终产品中使用它们,但是它们可以用于烘焙纹理,这将在低多边形版本中使用,但是还有更多优化方法来创建游戏模型,我们将在稍后介绍。
对于最终模型,UV扫描主要是在游戏开发工具的帮助下进行的,而其他部分(例如,梁和门口)则通过沿带有UV坐标的曲线拉伸来展开。
景观创作
通过读取导入模型的下层来生成地形,并使用
VDB通过混合各种噪声来创建最终几何图形。
完成地形后,我们可以测量各种拓扑属性:遮挡,曲率,倾斜角度等。 它们确定草的位置,草的高度以及花草树木的位置。
为了可变性,材料是通过组合图像和颜色数据来创建的。
植物和草本身是通过结合节点和VEX程序创建的实例。 然后,它们变成了代理Redshift,其代理的实例是根据环境的属性创建的。
该项目准备好在游戏中使用了吗?
这样的系统既适用又不适用于游戏的制作。 为了使其适用,它需要进行另一组操作,但这将是一个相当简单明了的任务。 这些模型的高度多边形无法在游戏中使用,但是如果您将高度多边形模型转换为VDB对象以确保其紧密性,然后使用该工具减少多边形的数量,则可以将其他所有物体简单地烘焙为纹理。
我认为今天的游戏通常使用程序生成的体系结构,但是我还没有看到可以手工制作简单模型然后基于它们生成所有细节的案例。 也许将来这种情况会更加普遍。
我将自己对Houdini的有限知识归类为项目瓶颈。 我开始这个项目来研究程序,却不知道自己想要做什么。 回想起来,我可以说,凭借我现在所拥有的知识,我在这个项目和其他项目中会有很多不同。 另一个瓶颈是RAM-要在Houdini中工作,尤其是在处理VDB时,您需要大量RAM。
3D艺术家ØyvindFiksdal
基里尔·托卡列夫 ( Kirill Tokarev)的 访谈