7 i( e4 q @9 `. e- p, g GI_joe提供了多种数量的灯光阵列选择,考虑到渲染速度的问题,我选择了16/16的模式(也就是Skylight与Groundlight各16盏灯,一共32盏灯来做阵列)9 F- C1 k- v9 U1 u$ e
# @4 I9 J+ N3 E1 x
: q3 `0 W v4 Z. S. J/ u0 f- X' ?- t ( H( r M1 p& P" f1 k 9 |# V- N4 ?5 n6 N. x * I+ X( ~2 ~) m) X( ~ 除了用GI_Joe建造的灯光阵列外,场景中还自己手工设了一些灯光。 (如上图)就是场景中所有灯光的示意图,我用英文字母给每一盏灯做了标记,下边依次解释一下他们的作用。, h: c/ e" W9 ]% P
( H% S1 l% C% l; m9 W" Z% t# Z# G
; R) e: d2 Q% o5 ?1 s (C).此聚光灯(Spot Light)通过对其Color属性进行帖图,来模拟类似于树阴的光影效果,来丰富地面的变化。 0 `6 O: M) a4 K# v! y 4 a0 P$ Q5 w7 z8 I (D).是一个面光灯(Area Light),用来加强伞下石头的漫反射效果,使其不至于显得太飘。关于这一点,可能大家不太明白。在后边我会做具体的解释。+ |& l* J# |! X. d
6 P; B) y. J9 `* I2 Z! b: S% f( k* V/ L
(E).此灯与D是类似的作用。, |! ?8 j- \7 ^3 _' g# }
- [ `! g" u j1 S, b+ R" U$ Z
(F).这是一盏体积灯(Volume Light),此灯的亮度为负值,功能是给尖顶房子的大门内部面降低亮度,这里使用体积灯是因为它的光照范围可以很容易控制。6 o L! u0 O4 A$ e
2 N3 J9 i2 T* j) D7 j' z
(G)与F类似,主要是给楼梯下面的小储藏室降低亮度。4 S: L* {3 ?0 Y) |) h0 Q
9 d5 f' W' n1 m2 |& }/ [
(H)(I)(J)(K)(L)这几盏灯都是为角色单独提供照明用的。其实有的灯并不产生实际的照明,而只是产生高光。比如大家可以注意观察一下阿凡提的靴子,会发现在阿凡提的靴子上有着丰富的高光(这也是能够体现靴子质感最重要的部分)(如图),另外阿凡提的眼睛的高光点也由单独的灯光生成。 ( j" X2 \) I9 g" r5 u2 A' d 6 c% n$ g( q- ~3 y (M)GI_Joe生成的灯光阵列。主要模拟场景中的漫反射效果。 , R! ^( S9 N! `; `* `, h + y) L0 u5 C0 q6 k. Y3 p; S& x' {7 E i% U0 ^- R- t+ Y( c1 H4 R# O
7 I+ G. m- o8 _! g7 S 为了使大家可以更清楚的认识以上灯光的用处。我特意将GI_Joe的照明效果与自定义灯光的照明效果各自单独生成一张图。大家可以比较一下。其实把这两张图叠加起来,就是渲染的最终效果了。(如图,上图是自定义灯光的单独照射效果,下图是GI_Joe的单独照射效果)- O6 P$ G. |. ~0 G' Z1 e
$ B5 V& r- r2 J/ g. y * l; V2 B3 V$ [) i8 ~. ~
! Q) M; }$ w' B
类似的问题,有些地方我用了另一种方法。我想这张图可能大家都看得明白,就不多说了。(如图)所示 , y, }/ G+ M6 [& s; \0 Z
' u5 h$ X: G4 v% M9 W' i + [% i- V8 m: `9 l5 w& j T
8 a1 A# b: l2 x) Z5 K4 w V2 p 材质部分 + V/ x: R, [& Q% \& P! o7 ]3 B: ~: Y" k% D. B$ [& r- i: B# }$ b+ L
下面讨论一下材质方面的问题。 上图是场景中的材质球总图 6 b& T1 o, ^3 e v# P . E }: U) B' b0 P# F: b/ B # R' I( R+ C6 S# H- ]. Q# ~& p& U . M$ o, j/ b4 J8 R$ ? 是场景中的纹理帖图总图(包括位图纹理、2D程序纹理、3D程序纹理)。 在此幅作品的纹理设置中,除了非常不起眼的物品外,绝大部分物品我都使用了多层帖图(Layered Texture),因为我觉得这样会留下很大的调整余地,当然,这也会影响渲染速度; z/ ^+ \; b$ Z' V1 O3 G
, s% t+ A/ S; b* N& r7 E6 _. [
0 B0 | I+ E& t3 |2 M O4 Y2 Y" P" U9 f
从以上两张图可以看出,场景中使用了大量的材质球和纹理帖图。我们看一下纹理总图。不过如果仔细观察就不难发现有一种类型的帖图纹理我反复使用了很多次。这就是MAYA的2D程序纹理:Ramp- h! N& S# t4 p$ u+ M2 ?
$ B* p) |7 y5 D, x
( Z) n, Q4 P& Q3 b0 ~% E7 U, f5 o+ G9 V$ T, v
这个看似不太起眼的纹理在场景中的应用得十分广泛,可以说遍布了场景中的各个角落。下面举一个最简单的例子(如图):两个完全一样的多边形立方体,左边的使用了Maya默认的Lambert材质,右边的则在Lambert材质的基础上对Color属性帖了一个Ramp纹理(注意红框中的Ramp纹理参数设置)。我们会发现,右边加了Ramp纹理的立方体的质感变得强烈起来了。/ {3 S* B2 L4 t5 E
; n j7 E. b( j4 J ( D. t4 R1 w7 V: u" Z5 G9 J$ a! z0 c7 w+ {5 y
为了便于大家理解,我再从场景中提出其中一个尖顶的小屋来做为例子说明一下Ramp的用处。(如图),这个建筑非常具有典型性,因为它几乎每一个元素都使用到了Ramp这个纹理。我们可以看一下在同样光照的状态,使用了Ramp纹理(上图)和不使用Ramp纹理(下图)他们的对比渲染效果。图中以房体的材质为例,展示了Ramp的用处。如图所示,房体使用的是Layered Texture,也就是通过两层或两层以上的纹理的叠加来表现复杂的效果(叠加模式可以自选,这有些类似于PHOTOSHOP中图层之间的叠加模式)。相类似的,此建筑中每一个元素都是这样。" u! ^' C# d7 \4 V8 c7 D9 F
( _" n4 |2 I3 o9 @ f7 h
V j$ F2 P) z( b2 ^9 F
9 n3 U# M, V# h$ g- [: Y6 C 同样的问题,场景中有些物品由于其形状的特殊性,用Ramp达不到很好的效果,所以我直接制作了专门的帖图,用帖图来代替Ramp模拟这种效果。(如图)所示6 |" p' N) ]) H/ s
" d) t- t4 L4 x' _) k5 h! T1 _( v ' d4 N+ L7 s' z6 x* Z2 ^0 {) J# a( C) E
关于地面,最初本来打算使用多层程序纹理配合高密集的置换来制作,(如图)所示,就是我在开始时做的测试。效果是比较满意的 / V9 ?' s5 \1 t* y( g2 ?2 \) y$ ?8 w
# Q4 z2 ?6 K f7 e3 r* w
+ ?1 f, W% J9 q! o! b+ X5 d# J! M 但后来在实际使用时发现,由于场景中的地面面积非常大,如此高密集的置换所带来的计算量实在无法接受,而且经常出错。(maya渲染器的置换功能一直是被人抱怨的热点),最后只能放弃了全局置换而改为局部置换。(图)是最终的地面材质节点网和地面的顶视图渲染图。 8 B% {: q$ K! _1 G" F6 t: a 9 U0 d" V( {8 Q, C" W ( A9 P! N0 L8 J$ }$ z
; x* o8 X, e4 V/ _ v 只在近景需要更多细节表现的水塘处使用了置换。(如图)所示,因为水与地面的衔接处显得太光滑了,缺欠细节。而加了置换之后效果就不同。水塘变得更加真实可信。9 I) z& Y6 R( N4 ?8 `4 G
# U. J& o7 W7 o8 \, [
Q. z& F' ], X0 c7 N. Q8 U; m
- D8 A0 a. D! Y" x) y3 e/ g) }7 K 除了水塘外,水面也做了比较细致的加工,因为是近景,所以要多花些心思。 主要给水面加了波纹和由罐子里流出的奶迹等细节~。 水面只是一个NURBS平面,波纹并不是置换或直接建模得来的,而是向水面材质的Bump属性添加帖图而得的,帖图是由一张水纹照片经过在PHOTOSHOP中去色变形得到。(如图)所示,图中是水面的材质节点网和用到的两张帖图。注意,节点网中的纯白色的纹理其实是一张比较混沌的位图,用来表现水中牛奶的混沌效果。由于我调高了它的亮度值,所以在节点视图中显示为了全白色)# c- R/ b) L1 H4 l' o0 h
3 t* W6 B: L9 y. M6 L5 E# n# p
g" g$ |# m5 t! E
& T z$ d9 H" ~8 d. J5 k 水塘最终效果!2 ^; H: w# ?$ O( H0 j; l) D ?