本套教材是一部难得的Maya渲染和材质技术专著,它深入到节点体系背后,对Maya的材质、纹理、工具节点、Mel语言、表达式等高端技术进行了深入浅出的讲述。书中的内容包括分层渲染、场、运动模糊、深度通道、光线跟踪、光能传递、软硬件渲染、景深、材质调试、测试渲染、矢量渲染、Renderman渲染技术、CgFx语言、材质节点、纹理节点、工具节点、纹理坐标、表达式、UV贴图编辑、面部贴图、辉光、金属反射、遮罩、玻璃、凹凸、法线校正贴图、3S半透明材质、卡通渲染插件等。书中不仅包含了详细的功能解释,还穿插了大量实例,提供了众多的Mel脚本程序。配套光盘提供了本书所涉及的全部场景和各类程序文件,是作者多年的经验积累,非常适合培训、自学和从事专业动画创作者使用。
第1章三维软件中的渲染算法
1.1计算机图形渲染技术
1.2行扫描算法
1.3光线跟踪算法
1.4光能传递算法
第2章Maya渲染的相关局限与解决技术
2.1应该或必须分层处理的渲染
2.1.1操作:建立和显示渲染层
2.2力口场渲染的问题
2.2.1视频系统中的场
2.2.1.1操作:设置PAl制式力口场渲染
2.2.2加场渲染中的问题
2.2.2.1脚本程序:动画时间包裹程序
2.2.2.2练习:使用脚本程序完成动画时间包裹
2.3关于运动模糊
2.3.1练习:模拟运动模糊投影
第3章Maya渲染设置
3.训mageFileOutput(渲染文件输出)
3.2Resolution(渲染尺寸)
3.3RenderOptions(常规渲染选项)
3.4Anti-aliasingQuality(渲染抗锯齿质量)
3.5FieldOptions(视频场设置)
3.6RaytracingQuailty(光线跟踪质量)
3.7MotionBlur(运动模糊)
3.8RenderOptions(软件渲染选项)
3.9MemoryandPerformanceOptions(内存和性能选项)
3.101PROptions(交互渲染选项)
3.RenderLayer/PassControl(渲染层/通道控制)
3.12PaintEffectsRenderingOptions(绘画特效渲染选项
第4章使用Maya的默认渲染
4.1优化Maya场景数据的操作技巧
4.1.1优化场景
4.1.2使用阴影
4.1.2.1操作:关闭PointLight的部分阴影
4.1.3复制方式
4.1.4使用运动模糊
4.1.5使用材质
4.1.6使用光线跟踪
4.1.7删除历史
4.1.8镶嵌
4.1.8.1操作:设置NURBS物体表面的交互式镶嵌
4.1.8.2脚本程序:全局设置交互式镶嵌
4.1.9使用BOT缓存纹理
4.1.9.1脚本程序:全局生成BOT纹理
4.1.9.2操作:使用程序来自动生成BOT纹理文件
4.2命令行渲染
4.2.1(方法)文件单独渲染
42.2(方法二)命令行输入式渲染
42.2.1操作:命令行输入式渲染
4.2.3(方法三)批文件渲染
4.3控制景深
4.3.1练习:景深高级控制设置
4.3.2脚本程序:创建景深摄像机
第5章Maya渲染管理
5.1调式渲染
5.1.1快速调式材质渲染
5.7.2快速调试光影渲染
5.1.3脚本程序:智能切换材质
5.1.4操作:使用脚本程序智能切换材质
5.1.5脚本程序:灯光独行者
5.1.6操作:灯光独行者的使用
5.2渲染测试
5.2.1渲染设置检测
5.2.2纹理路径检测
5.2.3场景动画检测
5.2.4渲染时间估算
5.3网络渲染
第6章Maya硬件渲染
6.1HardwareRenderBuffer(硬件缓冲渲染)
6.7.1操作:使用HardwareRenderBuffer渲染粒子
6.7.2操作:NURBS物体的线框渲染
6.1.3脚本程序:线框渲染程序
6.1.4练习:使用线框渲染程序进行渲染
6.2基于显示卡力0速的硬件渲染
6.2.1关于专业显示卡
6.3动态高质量纹理
6.3.1操作:使用动态高质量显示模式
6.4硬件力口速渲染
6.4.1操作:使用硬件加速渲染
第7章矢量渲染
7.1练习:使用Maya矢量渲染
第8章MaYa外部渲染
8.1渲染器大看台
8.2Renderman和MentalRay
8.3百家争鸣的渲染器
8.4Maya中的Renderman
8.4.1练习:在Maya中使用Renderman渲染恐龙
8.5NVIDIACgFx硬件渲染弓I擎
8.5.1操作:在Maya中应用NVIDIACgFx
8.5.2练习:利用NVIDIACgFx生成卡通材质动画
8.5.3脚本程序:深度通道材质程序
8.5.4操作:使用深度通道材质
第9章常用材质概述
9.1从属关系与编辑图表
9.2材质类型与属性
9.2.1Lambert材质
9.2.2Blinn、Phong、PhongE和Anisotropic材质
9.2.2.1练习:高光与反射的分化处理方法
9.2.3ShadingMap、SurfaceShader和UseBackground材质
9.2.3.1操作:由ShadingMap和SurfaceShader组成的喷绘效果
9.2.4特殊材质
第10章纹理
10.12D纹理与3D纹理
10.2环境纹理
10.2.1EnvBall环境纹理
10.2.2EnvChrome环境纹理
10.2.3EnvCube环境纹理
10.2.4EnvSphere环境纹理
10.2.5EnvSky
10.2.5.1练习:EnvSky环境纹理的高级使用
10.3纹理和纹理坐标
10.3.1练习:纹理坐标的高级使用与螺旋纹理
10.4程序纹理与文件纹理
10.4.1练习:应用Ramp程序纹理制作黄瓜材质
10.4.2练习:在Maya中应用Photoshop文件
10.5从程序纹理到文件纹理的转换
10.5.1练习:将程序纹理转换文件纹理
10.6Expression表达式在纹理中的应用
10.6.1练习:应用表达式完成纹理的马赛克效果
第11章纹理的UV坐标
11.1理解UV
11.2多边形UV的编辑
11.2.1UV检测纹理
11.2.2UV编辑的基本原则
112.3UV的基本映射
11.2.3.1平面映射
11.2.3.2圆柱、球形映射
11.2.3.3自动映射
11.2.4使用UVTextureEditor编辑UV
11.2.4.1UVs的选择以及相应的转换
11.2.4.2窗口界面与可编辑元素的控制
11.2.4.3工具条
11.2.4.4操作:编辑UV实例A
11.2.4.5操作:编辑UV实例B
11.3Subdivision细分面的UV编辑
11.4多重纹理贴图(UVSets的使用)
11.4.1查看以及切换UVSets
11.4.2创建UVSets
11.4.3UVSets的复制与删除
11.4.4UVSets的联接
11.5多边形UV的转换与传递
11.6纹理定位
11.6.1使用3DPaintTool工具来完成在Maya中的定位
11.6.1.1操作:使用3DPaintTool工具
11.6.2在DeepPaint3D中定位
11.6.2.1操作:在DeepPaint3D中进行纹理定位
11.7真实面部贴图技术
11.7.1练习:制作真实面部贴图
第12章使用工具节点
12.1GeneralUtility(常用工具节点)
12.1.1ArrayMapper(矩阵制图工具节点)
12.7.1.1操作:ArrayMapper应用与粒子
12.7.2Bump2d/Bump3d(二维和三维凹凸工具节点)
12.1.2.1操作:多个纹理的Bump叠加
12.1.2.2操作:环境纹理与Bump融合
12.1.3ClearCoat(清晰涂层工具节点)
12.1.4Condition(条件判断工具节点)
12.7.4.1操作:制作双面材质
12.1.5DistanceBetween(求解距离工具节点)
12.1.5.1练习:深度材质的创建思路A
12.1.5.2练习:深度材质的创建思路日
12.1.5.3练习:深度材质的创建思路C
12.1.6HeightField(高度区域工具节点)
12.1.7Lightlnfo(灯光信息工具节点)
12.1.8SetRange(设置范围工具节点)
12.1.8.1操作:根据距离改变bump贴图
12.1.9MultiplyDivide(乘除法工具节点)
12.1.10+/-Average(plusMinusAverage力0减并均值工具节点
12.1.11Reverse(反转工具节点)
12.1.12Samplerlnfo(信息采样工具节点)
12.1.13UVChooser(分配UV工具节点)
12.1.13.1操作:使用UVChooser的两种方法
12.1.14Vectorproduct(矢量乘积工具节点)
12.2ColorUtility(颜色工具节点)
12.2.1BlendColors(颜色混合工具节点)
12.2.2Clamp(剪切范围工具节点)
12.2.3Contrast(对比度工具节点)
12.2.3.1操作:模拟Photoshop中的"亮度/对比度"功能
12.2.4GammaCorrect(仂口马校正工具节点)
12.2.5HsvToRgb/RgbToHsv(色域转换工具节点)
12.2.6RemapColor/RemapHsv(重设颜色工具节点)
12.2.6.1操作:使用重设颜色工具节点
12.2.7RemapValue(重设数据工具节点)
12.2.7.1操作:使用RemapValue节点的两种输出
12.2.8Luminance(灰度模式转换工具节点)
12.29SurfeceLuminance(表面亮度工具节点)
12.3SwitchUtility(切换工具节点)
第13章材质应用技术
13.1辉光效果应用技术
13.1.1操作:控制辉光的范围
13.1.2脚本程序:生成辉光控制器
13.2反射效果的使用
13.2.1练习:用程序纹理打造金属质感的反射
13.2.2脚本程序:金属材质生成器
13.3遮罩的应用
13.3.1操作:使用物体遮罩
13.4光线跟踪效果及应用
13.4.1练习:使用Raytrace光线跟踪效果制作香水广告
第14章凹凸的应用
14.1操作:应用法线分配光滑组
14.2练习:使用低精度模型渲染高精度模型
14.3脚本程序:自动法线校正程序
14.4操作:自动法线校正程序的使用
第15章次表面散射效果的思路与实现
15.1常规技术与思路
15.1.1操作:Translucence属性的应用
15.1.2操作:使用SubSurflllum来模拟半透明
15.2真实3S效果的思路与实现
15.2.1练习:实现3S效果的初步思路-利用深度通道材质
15.2.2练习:实现次表面散射的3S效果
第16章关于NPR效果的讨论
16.1自制卡通效果
16.1.1练习:最常用的卡通效果
16.1.2练习:创造美式漫画卡通效果
16.2TomcatCartoonShader插件
16.2.1操作:认识TomcatCartoonShader
16.2.2练习:使用TomcatCartoonShader绘画甲壳虫小车
准确地说,这是一本技术性书籍。这本书与其他技术性书籍不同的是,它不仅仅讲述Maya软件中已有的技术,还用大量篇幅讲述如何创造出更新、更好、更方便的技术,因此本书有很大的延展性。读者可以将本书介绍的已开发的新技术应用于三维动画的生产实践中,还可以从相关内容中得到极大的启发。例如本书第14章节中的凹凸应用技术,一步一步地讲述了如何用低精度模型渲染出高精度模型的效果。书中的例子使用法线校正技术将600个面的多边形模型渲染出"000个面的模型拥有的几乎全部细节,这是多么强大的数据资源优化啊!想想看,如果将其应用到具体的三维项目制作中,特别是三维角色动画,在材质及手动动画的过程中至少可以提高几十倍的工作效率!再如本书第15章和第16章介绍了用特殊的方法来实现人们认为Maya软件几乎不能得到的效果。那逼真之极的3S半透明效果和用PhotoShop加工出的美式漫画无不给人留下深刻的印象。
应用技术与开发程序并存是本书的又一大特色。应用技术是大家喜闻乐见的,并且是只要学就可以掌握的。但是在真实三维动画生产残酷的时间及效率要求下,这些应用技术,特别是高级复杂的应用技术则显得令人望而生畏,因为它的操作太麻烦。在大量重复性的连接节点、控制约束和设置驱动等操作面前,由于制作成本的压力迫使我们只能选择放弃。其实,笔者的观点是,三维动画的制作、特别是大型项目的制作,必须将技术与程序开发结合起来。创造出好的应用技术或制作方法后的第一件事情最好是将其写成脚本或插件。Maya软件最大的好处是可以为用户随时随地地提供全面高效的开发环境。对于一般用户来说,使用APl编写插件也许不太实际,但是写Mel脚本程序是完全可能的,而Maya中的Mel脚本以镶嵌的方式几乎可以实现Maya中所有的操作。这么巨大的资源,我们为什么不加以利用呢?在北京电影学院,一批又一批学生在掌握了MeI脚本程序的开发技术后走出校门,这是笔者教学效果的见证。
程序的编写只需要两个条件:一是逻辑,二是函数。逻辑是一种语言组织能力和思维方式,相当于说话的“语流”;函数相当于“语素”,即字和词,脚本也同样是由字和词组成的。至于程序中的语法根本不是问题,看着Maya的Mel脚本语法,你会感到它就是C语言的简化版。对于没有任何语言基础的人来说,半个小时也足以掌握它。如上所述,对于Maya Mel脚本的编写实际上就像在与计算机中的Maya软件进行对话,你只要把话说明白了,它自然就会听懂并按照你说的去工作。当然,这种对话要相对严格一些,不准有错字、错标点。显然,如果你会说话,那么Maya的Mel脚本语言就会一半了,剩下的就是掌握函数。Maya中的函数一共只有2000个左右,并且随时可以到Maya help中的Mel CommandReference中查阅。也就是说,函数不用去背,只要掌握就可以了。掌握的意思就是知道那些函数是干什么用的?怎么用?读者也许认为我说得过于简单了,其实确实如此,只不过大家没有去试罢了。上述是学习Mel的内容,至于学习方法就是本书的内容所在了。其实方法只有一种,也是最有效、最快的,那就是看别人的代码,分析别人的代码。这就又出现了一个问题,在没有注释的情况下,刚开始是很难看懂Mel的。那就从本书开始吧!本书中的Mel脚本有极其丰富和细致的注释,并且全部是中文,大家一定能看懂。虽然在光盘中提供了书中所有脚本的代码文件,不过还是建议读者在注释的基础上自己输入,这样会帮助记忆。笔者可以向读者承诺,如果你保证书中所有的脚本部看过分析过,并按照其内容自己输入过,那么你便可以自己写Mel脚本了,绝不夸张!曾经听到有的学生说:“我是学美术的,只有艺术思维,没有理性思维”。笔者就是学美术的,难道我比别人多一个理性思维吗?千万不要受这些条条框框的局限,人人都可以掌握Mel,从本书开始!
对Maya稍有了解的人都知道,Maya是没法按区域划分的。Deform部分的功能可以在建模中使用,甚至可在编辑UV中使用,材质的工具节点可以在骨骼动画等各个方面应用。这说明Maya的功能是互相关联的,本书由于文字的论述需要,采用了区域划分的方法,划分了16个章节。实际上书中的知识点是相互融合的,前8章主要是渲染部分,会涉及到材质及节点知识,后面8章是材质部分,也会涉及到渲染的相关设置。因而,本书的阅读是没有顺序的,可以根据兴趣点的不同选择阅读的次序。
另外一点值得说明的是,由子时间以及篇幅的关系,本书只涉及材质和渲染的知识内容。灯光以及Maya MentalRay的实用技术将在后续即将出版的《May日渲染技术精粹(下)》(暂定名)中奉献给读者。除此之外还有好多迫切想与读者分享的技术与应用方法期待与读者共勉!
总之,本书是目前第一本由国人编写的技术精粹类三维动画图书,希望能改变技术精粹总要由国外引进的现状。本书的目的是让读者学习材质与渲染方面的实用技术与高级应用技术,以及相应的管理思维,并且掌握脚本程序开发的手段。若本书能在读者的三维动画制作中起到作用,或使大家由此受到某些启发,将是我们的最大荣幸。“卑之无甚高论”,不妥之处还望指正。
刘阔 王昊
于北京电影学院动画学院
2004年6月