|
|
|
2003年9月...2004年9月...距这幅作品完成已一年时间了,由于工作忙碌,一直无足够精力和时间创作新的个人作品。平时我从网上得到了很多人的帮助,无以回报,这几天整理了一下以前写的制作心得发上来。这篇文章曾首发在2003.12与2004.01《CG杂志》合刊的[讲经堂]中,可能一些感兴趣的朋友还没有看过,希望这些东西能给大家一些帮助。 这篇文章不是教程,只是一些我制作时的方法,拿出来和大家讨论,这里面没有什么高深的技术,我也无法保证这些方法是非常正确且高效的。只能说我当时是使用了这些方法制作出了这幅静帧作品而已。注意这是一幅静帧作品,其中一些方法可能无法套用到动画制作中。比我经验丰富的人应该还有很多,希望多交流~ [这篇文章只授权给《CG杂志》,其它人请不要用于任何商业目的,谢谢!] 那么..开始....
|
|
关于阿凡提...
在做之前,我先从网上DOWN了一些片子,虽然清晰度很低,但做参考素材还是基本可以了。DOWN下来后,首先把片子通看几遍,找找感觉。同时从片中截取了大量的图片(如上)。看完后把截取下来的图片进行分类,以便于日后制作时方便查找 |
|
接下来就进入实际制作阶段 模型部分 首先是建筑,我从众多截取下来的图片中选中了几个我认为是片中比较有特色的,有代表性的建筑。由于考虑到最后的场景可能比较大,所以没有集中到一起建模,而是采取各自单独建立模型,最后合并场景的方法。(如图)是我建的各种场景模型(当然,他们的样子看起来可能与原系列片会有些小的区别。),每个模型在建立时随手都赋予了相应的材质,但大都没有进行精细的调节。因为场景还没有合并,灯光也还没有建立,此时进行过细的材质设定没有意义。
|
|
制作初期时还做了一张预告图放到CDV,HXSD内部论坛里。~~呵
|
|
继续..上面的那些模型并不复杂,在此不做详叙~大部分都是多边形建模,有些个别的(比如罐子)使用了NURBS。 在建模过程中我使用了一个MAYA小MEL插件:Randomize Points v1.6 它可以对选择的模型的点做随机变形,在这幅作品的建模程中我大量的使用了这个插件,给建模节省了不少时间
模型建完后,开始将大部分主要的建筑及物品合并成为一个场景。(图)是当时对场景的初步布局。
|
|
关于角色,经过仔细考虑,选择了这个阿凡提常用的经典动作,歪着头,手里拿一根小草在他那头驴的头顶晃来晃去… 因为没有打算做动画,所以模型是直接建成这种姿势的。
|
|
灯光部分 在灯光方面,我也使用了一个MAYA的插件:GI_Joe。它通过灯光阵列的方式模拟GI效果,很方便的让我们可以用较快的时间模拟出不错的天空光效。 GI_joe提供了多种数量的灯光阵列选择,考虑到渲染速度的问题,我选择了16/16的模式(也就是Skylight与Groundlight各16盏灯,一共32盏灯来做阵列)
|
|
除了用GI_Joe建造的灯光阵列外,场景中还自己手工设了一些灯光。 (如上图)就是场景中所有灯光的示意图,我用英文字母给每一盏灯做了标记,下边依次解释一下他们的作用。
(A).这盏灯是模拟场景中的太阳光直射,并生成阴影。是场景中主光源。(光源类型为Directional
Light)
|
|
为了使大家可以更清楚的认识以上灯光的用处。我特意将GI_Joe的照明效果与自定义灯光的照明效果各自单独生成一张图。大家可以比较一下。其实把这两张图叠加起来,就是渲染的最终效果了。(如图,上图是自定义灯光的单独照射效果,下图是GI_Joe的单独照射效果)
|
|
下面回过头我再谈谈(D)(E)两盏灯的作用。前边我们提到了,场景中用GI_Joe生成的灯光阵列进行漫反射照明。它是依靠阵列中每盏灯的深度帖图阴影组合在一起来体现漫反射效果的。而深度帖图阴影的特点,是他会随着场景的复杂程度不同而不同。比如在深度帖图尺寸固定的情况下,场景越是复杂,效果就越模糊。反之就越锐利。所以如果想在比较复杂的场景中产生较清晰的漫反射效果就需要把阴影帖图尺寸设得足够高。 举例说明比较容易理解,如(图)所示。这是一个较简单的场景,场景中是一些碎石块儿。使用16/16的阵列来照明。图中红框框住的地方就是GI_Joe的深度帖图的尺寸设置。默认是128,图A就是在这种设置下的渲染效果。可以发现效果很不错。再看图B,图B是我在场景中加入其它建筑物品之类的东西后渲染的(当然,那些建筑并不在摄影机范围内),大家会发现由于新加入的建筑等物品都会分配掉有限的深度帖图资源,这使得分配给石头的帖图尺寸变小,从渲染效果上来看,就是漫射效果更模糊化,对于一些体积非常小的石块儿来说,漫反射效果几乎看不到了。石块儿像是从地面漂浮起来一样。失去了真实的感觉。可能有朋友会讲,按照前面的说法,将刚才那个帖图的尺寸值"128"提高不就可以解决这个问题了吗!,理论上是这样的。不过对于非常复杂的场景,想要使如此细小的石子都看得出漫反射效果,要把这个值提到很高才可以。暂不管GI_Joe是否可以无限制的提高帖图尺寸值。我们可以先想像一下,这个值实际上是同时对32盏灯起作用,一但提得太高会使渲染时间和内存占用成几十倍的增长,所以这并不是一个好办法。 我采用的是另一种方法。在石头的上方垂直建立一盏灯(作品中实际用的面光灯Area Light,而这里的演示场景我使用的是方向灯Directional Light)并打开阴影。这样就可以生成类似于A的效果(效果如图C),虽然效果上可能会比A来差一些,但渲染时间却几乎没有增加。控制起来也很方便,不会影响场景的其它部分。 为了使新加入的垂直方向的灯不至于影响当前的已经设置好的光照效果,可将其亮度值设得很低(比如0.001),而后将阴影亮度值以同样的比例调低。或者也可以在同样的位置再建立一盏同样类型的灯(但不开阴影),把灯亮度值调整为互相抵消状态(比如原灯亮度为1,那么此灯亮度设置为-1),这样,事实上灯光对场景的影响就消失了。只留下了我们需要的阴影效果。
|
|
类似的问题,有些地方我用了另一种方法。我想这张图可能大家都看得明白,就不多说了。(如图)所示
|
|
材质部分 下面讨论一下材质方面的问题。 上图是场景中的材质球总图
|
|
是场景中的纹理帖图总图(包括位图纹理、2D程序纹理、3D程序纹理)。 在此幅作品的纹理设置中,除了非常不起眼的物品外,绝大部分物品我都使用了多层帖图(Layered Texture),因为我觉得这样会留下很大的调整余地,当然,这也会影响渲染速度
|
|
从以上两张图可以看出,场景中使用了大量的材质球和纹理帖图。我们看一下纹理总图。不过如果仔细观察就不难发现有一种类型的帖图纹理我反复使用了很多次。这就是MAYA的2D程序纹理:Ramp
|
|
这个看似不太起眼的纹理在场景中的应用得十分广泛,可以说遍布了场景中的各个角落。下面举一个最简单的例子(如图):两个完全一样的多边形立方体,左边的使用了Maya默认的Lambert材质,右边的则在Lambert材质的基础上对Color属性帖了一个Ramp纹理(注意红框中的Ramp纹理参数设置)。我们会发现,右边加了Ramp纹理的立方体的质感变得强烈起来了。
|
|
为了便于大家理解,我再从场景中提出其中一个尖顶的小屋来做为例子说明一下Ramp的用处。(如图),这个建筑非常具有典型性,因为它几乎每一个元素都使用到了Ramp这个纹理。我们可以看一下在同样光照的状态,使用了Ramp纹理(上图)和不使用Ramp纹理(下图)他们的对比渲染效果。图中以房体的材质为例,展示了Ramp的用处。如图所示,房体使用的是Layered Texture,也就是通过两层或两层以上的纹理的叠加来表现复杂的效果(叠加模式可以自选,这有些类似于PHOTOSHOP中图层之间的叠加模式)。相类似的,此建筑中每一个元素都是这样。
|
|
同样的问题,场景中有些物品由于其形状的特殊性,用Ramp达不到很好的效果,所以我直接制作了专门的帖图,用帖图来代替Ramp模拟这种效果。(如图)所示
关于地面,最初本来打算使用多层程序纹理配合高密集的置换来制作,(如图)所示,就是我在开始时做的测试。效果是比较满意的
但后来在实际使用时发现,由于场景中的地面面积非常大,如此高密集的置换所带来的计算量实在无法接受,而且经常出错。(maya渲染器的置换功能一直是被人抱怨的热点),最后只能放弃了全局置换而改为局部置换。(图)是最终的地面材质节点网和地面的顶视图渲染图。
只在近景需要更多细节表现的水塘处使用了置换。(如图)所示,因为水与地面的衔接处显得太光滑了,缺欠细节。而加了置换之后效果就不同。水塘变得更加真实可信。
除了水塘外,水面也做了比较细致的加工,因为是近景,所以要多花些心思。 主要给水面加了波纹和由罐子里流出的奶迹等细节~。 水面只是一个NURBS平面,波纹并不是置换或直接建模得来的,而是向水面材质的Bump属性添加帖图而得的,帖图是由一张水纹照片经过在PHOTOSHOP中去色变形得到。(如图)所示,图中是水面的材质节点网和用到的两张帖图。注意,节点网中的纯白色的纹理其实是一张比较混沌的位图,用来表现水中牛奶的混沌效果。由于我调高了它的亮度值,所以在节点视图中显示为了全白色)
|
|
水塘最终效果!
石头的材质是场景中为数不多的完全由程序纹理组成的材质之一(图)。大家看一下它的节点网,完全由3D程序纹理生成。同时一个2D Ramp纹理将石头分成上下两种颜色(如果注意观察一下就会发现石头的上半部分要比下半部分颜色来得浅),这其实是模拟石头浸在水中时的效果。(观察"水塘最终效果"中的石头也可以发现这一点)
本来想在网上找一些新疆传统花纹,可实在资料太少,Google搜了半天一无所获。于是我就自己制作了一些花纹,但总觉得不太地道,所以也没敢用得太多。(图)
角色方面,材质的设定也不是很复杂。以驴的身体材质为例。可能大家都会觉得驴子的身体有一种毛绒绒的感觉。这其实是使用了MAYA自4.5版后新加入的Ramp Shader材质,它可因灯光或摄影机角度的不同而使材质显现出不同的效果。(如图)所示,左侧为没有毛绒效果,右侧为有毛绒效果。大家仔细观察可以发现他们在参数设置上的差异造成的在实际效果上的不同点。当然,也可以自己手工连一个节点来实现类似的效果
同样使用这种方法的还有场景中竖立着的伞及其它一些物品及房屋等
|
|
阿凡提的衣服及脸部手部都体现出一种布料的质地。在MAYA中主要通过2D Cloth这个程序纹理来模拟。
是阿凡提脸部的材质节点网。其它衣服之类的材质与之类似。
天空在一张现成的图片基础上加工得到,帖在一个环境球上
屋顶烟囱冒出的烟雾使用了particleIllusion 3.0,它的2D粒子可以很方便的生成真实的烟雾效果。从中抓出几帧,到Photoshop里合成一下即可。 其实,加上烟雾也好,给水面加波纹也好,都是为了使场景"活"起来,不至于显得太死气沉沉的。
|
|
后期润色 我个人很注重后期的作用,对于静帧作品,后期软件当然是非Photoshop莫数了!直接由3D软件render出来的图或多或少都会有不满意的地方,比如整体的颜色可能会不太好啦,对比度或许也有问题…等等。有的朋友可能认为只有不用后期,直接由3D软件渲染出好图的才算高手。其实想一想,这些人可能是钻了牛角尖儿了。我以前也有同样的想法,不过现在我觉得,只要能达到满意的效果,我不在乎使用任何手段。况且在绝大多数情况下,在后期里解决问题要比去3D中修改、重新渲染效率要高得多。 现单就此图说说我对其进行润色的方法(注意:每幅作品情况都不相同,没有什么固定的操作模式,主要靠感觉): (如图)在Photoshop中将原始图层进行复制,对复制的位于上层的图层应用Gaussian Blur滤镜,将图层叠加模式改为"Soft Light",之后两图层结合为一个图层。此时图像可能会显得有些模糊,锐化一下,然后调一调色(比如改变一下色调,或饱和度等),大概就是这样。(如果你认为有必要的话,还可以单独生成Z通道,Alpha通道进行更细的调节),我当时制作时好像还做了些别的操作,但具体我记不清楚了,主要靠感觉..
Maya原始渲染图与经过Photoshop后期润色图的对比
左上角好像有点儿空,加上文字刚刚好!!
如果嫌上面的对比不够大的话,这是我以前作品润色前和润色后的对比,从中可以体会出后期的重要性(只是调了颜色,其它未做修改)
在制作过程中,用PS随手调的几种效果~~
|
|
至此,要告一段落了,此文只是讲述一下我这幅作品的创作心得,以及用到的一些方法。这些方法不见得就是最好或最有效的,而且CG发展速度飞快,一年后的今天,可能又有了一些新的办法来解决当初的问题,如果大家有不同的看法,欢迎一起交流:)
致谢:
感谢曾经参加系列片《阿凡提的故事》制作的前辈们...
|
|
-THE END-
|