.tex类型文件怎么阅读_CG界的“托尼”老师,教你怎么做一个高级感的毛发

关于CG角色的毛发,可以说是影视制作流程中的顶级难题之一。最早只是通过贴图制作角色毛发,这在当时可以说是十分了不起的尝试。

20多年过去了,随着CG技术的不断进步,毛发制作也精细了许多。先来康康《玩具总动员》第一部和第四部的角色毛发对比吧。

e9cb914d74f16871513d48419fa2c804.png
8e9da4030d62f52ebe260f1f51d9e7a5.png
090f9f0694069b7f23bc4b37a3370e5e.png

《玩具总动员4》

想要让CG创作的毛发具有真实感,这背后复杂的解算以及计算量等方面,一直都是CG制作中棘手难题。随着技术迭代升级,如今艺术家们脑海中CG角色毛发大都可以活灵活现的呈现。

120aab58d8cf0e58fc961ae38c9d4425.png

CG毛发技术的进步少不了行业人士不断地探索与学习。来自意大利的资深行业技术讲师和大家分享使用Houdini创建高级感的毛发的教程,让角色的毛发时髦起来~一起来学习一下吧~

Denis Zen,有20多年三维制作及讲师经验,参加他课程的学生有很多在全球顶尖的工作室工作,包括迪斯尼、工业光魔、维塔等。

410a77e8f649724648a8fd9c7a87aaaa.png
eb103e2edeff8b07969ffc98f0170e21.png
b5e35e69bdcb175427e1e41a323f899c.png

Zen制作的 Grooming 案例

前言

Houdini通常被视为一个解算(模拟)工具,其实是一个功能齐全的DCC软件,可以做毛发造型,视效开发,灯光渲染等。在这个教程中,我们会展示毛发梳理之前和梳理之后的两种造型,当中会学习到如何使用皮克斯出品的着色器和灯光。

教程会主要介绍毛发梳理“之后”的版本,因为它结合了Houdini 18的最新技术,包括新的绘画属性节点。

79f747c77b0dfd7f8c95553e43eeec22.png

PS:感兴趣的小伙伴建议下载教程素材文件,动手学起来(微信公众号后台回复“CG界托尼老师”)

记得要在Houdini打开文件之前设置项目(文件>设置项目...),以便读取$JOB变量,并在项目的tex目录中找到所有纹理,在geo目录中找到头部模型。

Zen使用的头部模型来自3D SCAN STORE,而且是免费。

e6e3e45072e91848517394ac6473825b.png

Scene Setup 场景设置

首先,将模型导入到Houdini并且设置一个非常简单的灯光来检查Groom。这一点非常重要,因为毛发非常稀薄,光线与毛发的交互方式对于造型和视效开发过程至关重要。

第一步(灯光设置将在后面介绍),选择Pxr环境日光,简单而写实的效果是这个灯光的主要特点。

创建一个用于渲染最终帧的新相机也很有用。可以移动透视摄像机拍摄模型。

b92da91fad2456ff75a650b816fb6f65.png

如图所示,PxrEnvDayLight非常具有交互性,在主灯光阶段可以提供很好的反馈。你只需要调整强度和方向。

要改变光的方向,你可以使用旋转工具或调整基本控制参数(经度,纬度等)。

1d733bfbb2d3231fef82cbdeda4b7c50.gif

Latitude(纬度)

33880398f02015ec8866c94006fbe84f.gif

Longitude(经度)

你也可以通过调整Sun Size数值以调整阴影的柔软度。

d5a1d796e759e94080c351cf3d7a668e.gif

Sun size > 阴影的柔软度

如图所示,因为这是一个Omni Lights(全局光),光线没有变换,也就是说,灯光放置的位置不会影响结果。

Grooming

对于CG界的发型师而言(制作写实毛发的通则),参考素材是基本的。找到360度的发型参考素材并不容易,所以Zen搜索YouTube Beardbrand频道,那里每个视频结尾,发型师会360度展示客户的发型,这就是参考素材。

208bebc2381f33667ace8f4bf8160ae3.png

参考素材源自YouTube Beardbrand频道

Grooming 包括两个步骤:

1、Guide Styling 引导线造型(毛发种植的方式)

2、Hair Styling 毛发造型

Guide styling

Zen喜欢Houdini的程序化工作流程,自带的梳理工具很棒,但Zen通常更愿意使用GroomBear,由Kamil Wacławiak所开发。这个工具很赞,让你发型制作的非常快。

8d1f5a897f17acabd5ed2f0fc29064cf.png

你可以轻松地无损地烘焙该节点,没有这个插件的朋友也可以打开该场景文件或使用云渲染也没问题。

Zen把Grooming分成不同的部分,给他们不同的引导方向和密度。

Hair 头发

Moustache 八字胡

Beard 络腮胡

Eyebrows 眉毛

Eyelashes 睫毛

Nostril hairs 鼻毛

Peach fuzz 绒毛

引导线的造型是关键,也是最困难和费时。

下面这一步在Guide Groom节点中操作:

b4f0afd6be7f79537dca97bb66e61172.png
351549b2af9982d0e658184ad6c593e8.png

头顶毛发引导线设置

这些制作过程并不都是一样的。Houdini十分有用的工具之一是Guide Advect工具,它使你可以简单地通过绘制笔触轻松地覆盖毛发。

4fafd8d0734d7157883e40488035f66b.png
b574c808f45c21cf7bf5f92bad1429d1.png

通过速度场来设置引导点

在这个过程中,继续使用Houdini Grooming工具和GroomBear工具去设计引导线风格。这个过程不是很难,但如果你想做成真实的效果是非常耗时的。

这是最终的样子:

589f229b2e75b6eedaccd0b7a572909f.png

接下来是为每个部分绘制遮罩。这是Grooming的重要部分,因为它可以让你使用颜色图(color maps)控制毛发的生长方式和位置。

Houdini 18引入了一个新版本的Attribute Paint(绘画属性)节点,有了很大改进。

89048ac4fbd7f676ce3cfc5879a188c4.png

你绘制的遮罩越多,你获得的控制也就越大。以下是Zen的设置:

cd716d6100d47a3a99261364ee7d0818.png

在这里,我们可以在模型上看到一些可视化内容:

57ea08fd5b2c6d52bcff75ec16a3e235.png

从红外线颜色图可以轻松查看细微的密度差异

Hair styling毛发造型

现在是时候为头发做造型了,因此对于每个引导部分,都创建了一个Hairgen Generate节点,添加各种修改器,使头发看起来尽可能真实。

ee992331148b6f039bf1be7d52160e98.png

每种毛发造型都是不同的,但大多数情况下最终会使用相同的修改器。区别在于它们的设置和组合。

最常见的修改器是 Clump、 Noise、 Bend 和 Length。

92aa7f215f4d4e6ddf1d42cd9aabb19b.png

Zen通常从Clump开始,因为它是每个毛发的灵魂,而且层次是一个关键特征。

cbfb5b68703506631c5822ce619b240a.png

你可以用不同的方式设置层次

方法一

你可以使用Clump节点的Clump设置,为每个层次调低数值。

1f884539947492657c0108a70f7660ac.gif

方法二

Houdini Clump节点有一个Fractal Clumping的选项,这个功能很棒。

29ab0d4a7ec8662881f8d35aa9bb958a.png

设置“Fractal Clumping”的数值,你可以使用一个节点来细分发束Clump。

方法三

创建发束层的另一种方法是将“Hair Generate”节点与“Clump”节点的“Custom Clump Curves(自定义聚集曲线)”相连。这样你可以得到更多的控制甚至为毛发/引导线添加修改器:

df4e0e5de9e26a4ec5e5da44f6a55292.png

你也可以用Hair Generate节点制作第一层毛发。使用这个节点的优势是,你可以使用节点参数(density密度, masks遮罩等)更好地控制发束曲线。

7746044f9b28b3cc07e6134d1b24ec75.png

为了清楚地可视化你的发束,你可以将“Color(颜色)”节点连接到Hairclump节点的第一个输出(引导线),并分配一个Clumpid变量。

fc3835f4e93a7e6209a655ed70a799f9.png

在这之后,Zen使用了一个Noise Modifier (噪波修改器),比如Frizz(毛躁)节点赋予了头发很自然的感觉。通过调整它的设置,你几乎可以得到任何你想要的毛躁效果。

9afdb83fba3b35b5f3741038464ea13e.gif

这个节点实现自然的发型的另一个关键特征:飘逸的毛发。打造由于干燥,静电,护发产品和其他原因而产生卷曲的毛发。

db0b4f35424c4a3aa05982fe3327d393.png

要获得飘逸的毛发,使用“Mask(遮罩)”选项卡的“Noise Mask(噪声遮罩)”。将“Gain”设置为1,并调整“Noise Mask Frequency(噪声遮罩频率)”和“Bias”设置,以决定你想要的飘逸感:

2b0dcc147147c1dc46b474a754868a2c.gif

变化是另一个关键特征,遮罩Masks就尤为重要。用它们来驱动尽可能多的属性,因为毛发由大约15万个独立的发束组成,这些发束根据许多元素(Dirt污垢,Age年龄,Length长度,Gender性别等)而创建多种样式。

除了我们刚刚看到的Paint属性Mask外,几乎每个Houdini节点属性都有一个菜单,可以让你选择不同类型的Mask。

5715d44243f9d21b2f7d7812c8f4b1a7.png

不幸的是,Houdini没有像Maya中的“噪点”画笔。因此如果要获得一些“邋遢”效果,必须从外部绘画应用程序中导入贴图。

另一个很棒的修改器Bend(弯曲)节点,和Curve Mask(曲线遮罩)一起结合使用:

f5d920c4d89e7edd4d6a2265d5ddfc15.gif

设置Effect Position(效果位置)和Range Min(最小范围) 和Max(最大值),你可以决定哪一部分(红色)受了影响(选中“Visualize Masks可视化遮罩”以查看它)。

关于毛发真实感的最后一个技巧是Clump节点中的Curl选项。低数值在大多数情况下都能达到很好的效果。

75c5a38bc09b2cbcd5f9cd50c586ad3d.png

没有选择Curl卷曲。注意,制作的毛发十分规则。

b2795917416b77d469f2cac0d74d8ecf.png

使用Curl卷曲。发型更自然了。有时候很微妙,但是每个细节都很重要。

我们也可以在八字胡和胡须上应用同样的技术。唯一的区别在于修改器的设置,因此你要发挥创意!

这是最终的效果:

63295a207bf81ba451457247f940e0ad.gif

Lighting and Shading 灯光和着色

现在我们得到了想要的发型,现在是时候添加一些灯光并开始为模型着色了。

灯光设置非常重要,因为它可以让你检查头发的流动和外观。如果你想转盘渲染(render a turntable),那么你的模型要360度完美呈现。

Zen通常从三点布光开始(Key,Fill,Back)并添加其它的灯光,确保良好展示所有角度:

c6e78e7baa6ea707a3800697f1cf230b.gif

为了更好地理解灯光是怎样影响你的模型,每次只使用一个灯光。

731b3302a15a13fcbab80ab290ec5d20.png

Houdini网格分布:

d9d5d8a5ff4ea4eade9932788eff28b9.png

Shop通常是创建着色器的地方。

在创建最终着色器之前,Zen通常使用两个简单的灰色着色器:浅灰色的用于头发,深灰色的用于皮肤。

有了这些,可以快速检查模型的毛发和色调的差异,显示发型的空洞或其它一些问题。直到你满意了,才建立最终的。

RenderMan着色器颜色在“Scene View(场景图)”中不可见,并且应用在模型中显示为灰色。为了克服这个问题,必须在材料网络中构建原生的Houdini材质:

1807f368f79bc281750439d0d6387816.png
cc8589bfa9c3a58ddbb913d119895acf.png

点击Scene View工具栏的Texture图标以可视化材质:

0298d31cd2cd65b06a2fedfa67d2291a.png

如果无法看到着色器的应用,关闭当前的“Scene View”并打开一个新的:

30019c0c2c9e41788f4ff43f338e34a8.png

然后创建一个简单的皮肤着色器...在这里就不作深入讲解啦~本文只是让大家了解Zen如何使用Houdini制作毛发。

幸运的是,3D Scan Store的模型都带纹理,你需要在连接纹理之前转换成.tex文件格式。最简单的方法是使RenderMan Texture Manager(纹理管理器),它可以为你处理所有的纹理转换。

你还可以使用 txmake,它位于 $rmantree / bin 中。

贴图转换的一个快速技巧是打开一个空的命令提示符,将txmake可执行文件拖放到cmd窗口中(而不是编写路径),然后拖放要转换的纹理。

1d825bdd7fb87cbb0d7b94c19560a5ea.png

要快速保存新的tex文件,请在cmd窗口中拖动纹理两次,并为最后一个添加.tex扩展名。

一旦转换了纹理,创建一个RIS Shader Network(单击RenderMan选项卡中的图标),然后进入新创建的网络,创建一个PxrSurface材质。

2a1d7fa5132533975c0c37f83bac2c8b.png

在这个节点中你可以创建你的材质。

c6391dc5eb711512a32503cac32aa4ac.png

如图所示,Zen将最终材质分为两部分,一部分是BXDF,另一部分是Displacement,它们通过Collect节点连接在一起,PxrSurface处理表面着色,PxrDisplace处理几何着色。

作为一名Groomer,Zen不会花很多心思处理着色器,因为视效开发人员通常会在制作中完善它,所以Zen简单地将映射(Diffuse漫反射,Specular高光,Normal法线等等)连接输入,并调整一些常规的着色器设置。

735ca47446d35db1927757a274233017.png

请注意,修饰之前的模型皮肤看起来不够清爽,当油渍和污渍覆盖皮肤时,会发生这种情况。你可以使用高光贴图和数值进行调整。

35bfaf70e523173e678caa3555398012.png

准备好将其应用到模型中,将其加载到Geo节点的Render Tab的材质参数中:

0a6381325d41adbbde99663e43f21eca.png

对于头发,Zen制作了四个不同的着色器以实现之前说的变化:

12e6f5a4ec61436797873cacb9c48254.png

如图所示,每个着色器由两部分组成:Pxr Hair Color和Pxr Marschner Hair。

bc2e4f0ae94ad931c74722e888e14019.png

PxrHairColor是Melanin-besed黑色素样式,所以我们可以通过数值让头发从金色变成黑色:

70c3055d30cd46a1843226549a39aba7.gif

另一个需要特别注意的设置是Hair ID Primvar,每一个发束都有一个独特的值。如果hairIndexPrimvar数值为空,随机选项不会发挥作用。

看看它们之间的区别:

200232b84f97173abe9f2488e253a143.gif

PxrMarschner毛发着色器可以处理毛发的物理着色。通过更改高光设置(Primary主要,Secondary次要和Transmit透射),你可以从光泽/湿润的外观变为柔和:

869c951dc233bb785840e5b95f229da1.gif

对于发色,以下有很好的文档资源:

PxrHairColor:

https://rmanwiki.pixar.com/display/REN23/PxrHairColor

PxrMarschnerHair:

https://rmanwiki.pixar.com/display/REN23/PxrMarschnerHair

Rendering 渲染

现在可以渲染模型了,Groomer的任务通常还会包含一个360度的转盘渲染,小伙伴们可以尝试旋转相机,这样比较节省时间。通常Zen会这样操作:

·创建一个空对象Null Object;

·把它放在模型的中心;

·动画旋转360度;

·将渲染相机作为“动画化的空对象 Animated Null”(已与灯光作为父项)的父项。

该空对象驱动这一切:

ee934030bf480a4a0d2ed7fec2855d7d.png

在为灯光设置父对象之前,记得检查保持灯光的位置,避免它们错位。

Render Settings渲染设置

创建一个RIS节点,转到Out Network,按Tab并从下拉菜单中选择 RenderMan:

f008939d76af36a0aebcc9fb3ff883f0.png

单击刚刚创建的RIS节点,以在Parameter Pane Tab中访问其设置(或按P键)。

Samples采样

已着色的毛发渲染起来非常耗时,你必须特别注意设置,特别是Sampling(采样)。Zen做了很多测试,以下这些数值是速度和质量之间的良好折衷:

f5a0cc9c63684738bffa49e4bc47dd91.png

噪波在图像的较暗部分中更为明显。要消除它,您可以减小Pixel Variance或增加Maximum Samples:

ce3d3cc92f685422aa431f88873105da.png

最后,你可以在灯光设置的“高级”选项卡中增加“Light Samples”:

99bb016f128bc1eb9291080d8012a933.png

使用这些设置,噪波更小,光线采样更清晰,但渲染时间也随之更长。

渲染通道Render Passes(AOVs & LPEs)

要想增加照片逼真度,每个图像渲染后要进行后期处理,如果不想费劲处理渲染设置,可以选择多通道渲染,然后在Nuke合成最终效果。

在“Out Network”选择要保存的渲染通道,选择RIS节点,然后在“Parameters Pane Tab”中选择“Images(图像)”:

ee943cbb9c104cce3fd387c810e3eb15.png

这些是Zen通常用于合成的通道:

·Standard: z (depth)

·Lighting: albedo, directDiffuse, directSpecular, indirectDiffuse, IndirectSpecular, subsurface

添加渲染通道不会增加渲染时间,因此可以随意选择所需的渲染通道,并将渲染文件另存为OpenEXR(.exr)文件格式。

Compositing 合成

最后~使用Nuke修改图像。

产生逼真的首个基本效果是景深。尽管DOF在后期中并不像在渲染中那样完美,但很多时候在后期中做会更好,因为:

  • 耗时
  • 不能改变主意

使用z(Depth深度)通道十分轻松,可以在几秒钟内确定图像的焦点在哪一部分。

7ef64e41918f6de04499a0ceef8ac1a3.gif

只需创建一个 ZDefocus 节点:

  • 选择你要的焦点放置focal_point;
  • 将Math设置为Direct(或任何其他选项);
  • 调整景深(图像的焦距);
  • 尺寸和最大值(示效果要多强烈)。

如果将鼠标光标停在字域的值上,Nuke会显示相应的解释。

0bc8f54cde4cacd36b872a82d9c9103d.png

要使用其他通道,你必须使用Shuffle节点从.exr文件中提取它们:

bb5cfb44e8a41961dd5d54388866cd06.png

选择合适的通道后,你需要选择遮罩作为颜色分级。

aae1e672f54ef5bcada4a63134435f36.png

现在,你可以应用Nuke Color Correction(颜色校正)节点获得最终外观。以下是Zen用来校正图像的简单网络:

6af3b51287ca2c858317a6191450acca.png

这是其中一种结果:

74bafd74c528e0e88f62dcc02516a028.png

Conclusion 总结

教程中涵盖了Groom到渲染的主要步骤,希望给各位小伙伴们提供一些新的思路。了解了Grooming的过程后,你可以将其中的思路应用到其他地方:例如 XGen、Yeti 或者Ornatrix 等一些主流的产品。

素材源自RenderMan及网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值