【CG微资讯】什么时候程序化工具能为你所用?

​ABOUTCG微资讯将定期为您推送有干货,有价值的CG行业文章!

 

作者:ThomasDotheij

翻译:ABOUTCG翻译小组

 

小平有福了!数字艺术家ThomasDotheij做了一次漂亮的关于他的工作流程的访谈。使用程序化技术,他可以设法创建所有类型的物体:从自然景观和毛发到培根肉和烟雾。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?152

自我介绍

 

我是一个来自比利时的三维多面手。在毕业之后,我在比利时工作了很长一段时间。我大部分时间都在做建筑类和设计可视化类工作,还有为欧洲议会制作动态设计。做了一段时间之后我决定寻找一些新的挑战,所以我搬到了现在住的加拿大的蒙特利尔。我计划在Framestore做一份技术导演助理的工作,我在这儿有很多机会参与一些特别棒的项目,我可以透露的是,有《美女与野兽》《神奇动物在哪里》《奇异博士》。

 

Houdini

 

我最早知道Houdini是在去年我在学习3D Studio Max的时候。我记的很清楚,我打开它,然后就关上了,吓坏了。在当时(大概是2009-2010年)如果我记得没错Houdini应该是9或者10的版本。当时并没有很多资源可以学习它(现在有一大堆教程),当时也没有像今天这么多软件。不管怎样,我还是忍不住回来了。感谢上帝我发现了这个对我特别合适的软件。它更有逻辑性,而且相比其他软件更为开放。Houdini通常会提供给你更多的自由(甚至是把东西搞坏的自由)。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?598

我大部分的工作内容,要么就是有大量多边形物体,要么就是有很多代理,或者置换。让我来带你们浏览一遍我制作类似图片的流程。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?660

这个案例就是使用代理制作的,原理很简单:

创建一个instance geometry节点,进入里面,放一个grid节点,然后可以分散它上面的一些点,或者如果想要更规律一些,就提高grid本身的分辨率。这就是代理你的模型的关键。在另一个geometry节点上,创建一个简单的box。在代理节点里,打开pointinstancing,然后把那个box设置为代理物体。

到这一步,你就应该能得到一个grid上每一个点都有一个box代理的样子。

真正的魔法是当你播放的时候,代理属性里有位移的时候。大多数时候是用缩放和旋转。

对于属性的管理是Houdini的核心概念之一,它们都可以在几何体的卷展栏里轻松的找到,可以通过各种节点随意更改,甚至更有趣的,可以通过VEX更改。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?1003

代理节点通过scale和pscale 属性来决定代理物体的形状。Pscale是一个单独的浮点属性,可以用来统一缩放代理物体,同时,scale是一个vector3属性,可以用来制作非统一的缩放变化。在这幅图中,我还使用了orient属性,这是一个float4属性,描述一个 四元数(三个浮点数描述一个旋转轴,另一个描述旋转)。

使用高度的变化(代理中Y轴的缩放)可以使这张图看起来像自然景观,这是使用fractal noise驱动的。用有趣的方式修改噪波经常能得到有趣的图像。没有哪种魔法能告诉你怎样达到目标。用不同的频率/振幅/类型叠加在一起能起很好的作用。或者将位置信息输入噪波(也有其他可能性,比如圆形阵列的距离),想想用有趣的方式位移,加上一些其他的噪波。

程序化物体如何在三维中工作?我的意思是,我们都知道它可以提供更多的变化和节省很多时间,但是如果你是尝试制作一个真实的素材或者能在真实项目中使用的东西,那它要怎么工作呢?

 

我是这么理解的,当你尝试创建一个程序化物体时,你实际上是在尝试寻找一个配方。一旦你找到了能描述你要做的事情的基本概念,就需要确定用户提供的数据有效的输出。有时是模型和/或数字。当你将输入,然后通过各种各样的步骤将输入变成用户期待的输出。

 

 

我自己用大量的时间试验这个概念,比如这个羽毛例子,或者其他各种物体,宝箱、弓、书、大宝剑

 

 

 

 

这是一个常见的制作开端,在实际制作的时候,你第一个问自己的问题就应该是“这可以做成程序化吗,程序化之后有意义吗?”

 

在真实制作项目的时候,素材通常需要太多的艺术输入才能让程序化有意义。程序化方法通常在你有很多相似的东西(建筑,植物,石头…)需要制作的时候显得更有意义,所以Houdini在VFX领域用运用广泛一点都不奇怪:制作一个爆炸的配方通常都很相似,简单的修改一下输入就可以得到几乎无限版本的爆炸。我预测到Houdini的这种引擎在游戏业一定大有所为,它可以让游戏制作者快速的制作大量素材(Houdini在游戏行业使用的一个很好的例子是Planet Alpha31)

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?1892

 

 

灯光

 

在Houdini中制作着色器真的很简单,它可以允许你很大程度的自由控制渲染外观。它也可以允许你轻松的创建渲染通道,这在后期流程中帮助很大。在mantra中导出基本通道非常直接,比如Z,P,N,甚至每个单独灯光的AOV,当你创建自己的着色器的时候,你可以让它导出任何你想要单独输出的属性成一个AOV。这真的为后期流程搭建了坚实的桥梁,不过这种功能在Houdini中也不是无依无二的。它可以很好的导入Nuke,这是我用来合成渲染的软件。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?2116

 

 

材质

 

你可以用VEX轻松制作一个材质,可以直接用代码,也可以用可视化的链接节点。软件里有预先做好的砖墙,你可以在它基础上制作,或者真的从草稿开始做起,如果你确实需要很特殊的材质。贴图方面,你可以使用COP context制作二维贴图,还有使用VEX放各种不同的程序化模式和噪波,不过通常不需要,因为在材质级别很多模式和噪波都可以直接调节了(Houdini的SHOP context),可以直接链接到漫反射,反射,粗糙度,发光等等。

 

一个例子:裂纹,程序化培根肉

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?2353

 

当然,你也可以用通常的方式,就是使用一张图片放入材质作为预设,或者自己做一张作为输入。

 

对于很多事情而言,Houdini并不会被认为可以做这样那样的工作,但依然开放到可以用COP做一些贴图模板。当然,你不太可能得到像Allegorithmic的Substance Designer那么有效率的东西,一个专业的Houdini艺术家也许能做出类似的东西。不过,最近Allegorithmic和Sidefx合并了,所以现在可以两个一起用啦。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?2575

 

对于Houdini能做的一些程序化的内容运用在游戏产业中,你是怎么想的?

 

我能预见一个Houdini游戏引擎的牛逼未来,不仅仅是开发者可以很快的制作很多素材,甚至,也许,在某些点上,让玩家自己直接自制内容,谁知道呢。现在已经可以看到一些很极端的例子了,比如IndiePro的PROTRACK在Unity里达到的效果。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?2738

 

然而,程序化的素材必须以智能化的方式生成,否则就有可能得到一些错误,就好像发现重复的无缝贴图一样。就像上面提到的,你永远需要考虑是不是需要程序化的制作内容…需要在表面上覆盖满石头?需要把一个图书馆装满书?希望它们都是不同的但不想一个一个做?那这种情况程序化也许是最好的方法!

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?2880

 

对于大规模的内容,你也可以在Houdini里找到生成整个场景的方法,这取决于游戏的内容是不是适合,如果游戏设计师认为时间值得,就可以找到一套制作某类素材的配方,或者如果觉得时间不值得,那最好的方法就是用更直接的方法把素材直接做出来。

034_ABOUTCG微资讯第三十四期:什么时候程序化工具能为你所用?2999

 

我们现在已经可以在UE4和其他一些引擎中使用Houdini生成的素材了,但是你认为什么时候我们可以把一些比如烟雾模拟,水模拟这类放进游戏做实时交互呢?

 

如果你想的是像烟雾模拟的实时交互,那我觉得这并不是SideFX现在考虑的重点。即使Nvidia最近发布了一些让人惊讶的实时解算内容,我也不认为当下这种技术会发布,但是在这些解算的精度和拟真上是可以有所妥协的。很多解算的节点已经可以使用牛逼显卡通过openCL实现出来了,所以也许在未来的某个时候,当显卡制造和软件开发都到一定程度的时候,这真的可以实现。但是就当下而言,你还是得把解算烘焙下来,在引擎中实时播放,然后并不能实时交互。

 

ThomasDotheij,三维全才

由 KirillTokarev采访

 

0回复【CG微资讯】什么时候程序化工具能为你所用?"

留下信息

电子邮件地址不会被公开。 必填项已用*标注