导言:已经发布了很多教程的“雪人明明”又带了新教程来啦~很多搞渲染的同学们最苦逼的就是无尽的等待有木有?时间成本才是最贵的有木有?现在海龟渲染器来解救渲染的苦逼孩纸们了!学了海龟,多睡会觉吧!
先放上最后的效果,视频有压缩,实际效果会更好(注意,此为maya视窗内实时调节拍屏,不是渲染序列的合成)
[flash]http://player.youku.com/player.php/sid/XOTA5NDA0OTc2/v.swf[/flash]
(PS:本文中所讨论的是Turtle for maya2015( 也就是海龟渲染器的2015版本):
先来说说海龟渲染器吧,海龟渲染器最初是由一家名叫Illuminate Labs的公司专为maya研发而成,该公司另一个著名的产品相信许多熟知游戏引擎的朋友一定知道,这就是大名鼎鼎的Beast(中文俗称野兽),这是一个强大的在游戏引擎内部进行光照模拟的游戏中间件。
但是后来嘛~~~~毕竟是中小型公司,也许是为了生存吧,autodesk这个巨头因为看到了这个公司的潜力所在,就把这家公司收购了。
(其实翻译过来虽然是海龟,但是logo却是一只可爱的兔子,也许这只兔子名字叫做海龟吧 )
在被收购后,许多当初的海龟用户(当然,那个时候还不包括我,因为我是个懒惰主义者,从来不用任何不是集成的渲染软件 )还在担心被收购后海龟的生死存亡,但是在经历过Maya一个版本的沉寂之后,终于在Maya2013版本中出现了集成的海龟渲染器!这让许多海龟用户欢欣鼓舞,界面和logo基本没什么大的变动,再次重新学习的代价为0,很容易过渡。
(PS:Maya2013版本只有Maya的创作娱乐套装才包含海龟,到了Maya2014之后只要安装Maya独立版就可以得到海龟渲染器,从此Maya有了自己的全新的光能传递属性的渲染器了,而且不用像以前那样安装,和mr一样只要安装Maya就可以得到它)
如下图 ,海龟(Turtle )渲染器在Maya2013和Maya2014以及2015的加载位置的变化:
上面为Maya2013版本,下面为Maya2015版本。
开篇说了辣么多,接下来看看海龟的UI界面,如下图,和之前未集成的界面先查不是很大,但是还是有些区别,旧版本的UI就不放上来了,毕竟时代在进步,我们所需要了解的只是新的UI就可以,况且现在海龟无论是兼容性和稳定性要相对以前好很多,可以说就是maya体内的一部分了。
上面这么多UI的截图可能挺恐怖的,其实真正常用的就是几个大块,理顺了很好理解,海龟相对于vr和mr等渲染器来说还是很容易学习的。
下面我结合开头的那个糖果世界的场景逐步说明一下如何应用海龟渲染器去渲染烘焙。
说到海龟渲染器,其实最强大的地方不在于渲染,而是它能将渲染的结果很好的烘焙成贴图的方式贴回到场景的模型中,这样就可以去掉光照完全的以模型贴图的形式快速的在场景中进行交互,这也是许多游戏的解决方案。
(当然很多大型游戏的引擎有很强的光照处理能力,甚至是可以实时处理很多光照的属性,但是那样也是需要很强的硬件设备才能实现,在现阶段普通消费者当中,靠这种烘焙手段去实现游戏最终效果的还是居多,或许再过十年大众硬件就可以胜任啦)
首先看一下要想把你所渲染的结果烘焙成贴图需要注意到的地方:
1.你的场景里最好使用Maya自身的Lambert、Blinn等基础shader,除非有特殊的用途,例如场景中要有3s效果的皮肤类型的物体,否则最好只用Lambert、Blinn等基础shader,这样便于烘焙管理,也就是说不用考虑烘焙的结果能不能实现。
2.如果场景中必须用到皮肤材质等需要3s效果的,可以使用海龟自带的ilrBssrdfShader,如下图:
3.海龟渲染器兼容Maya大部分的shader和程序纹理,但是体积光,glow光等的灯光属性不支持,所以需要注意,在渲染之前最好找简单物体作测试,对于绝大多数Maya自身的shader完全没有问题。
4.如果需要烘焙ao效果需要注意一定要用海龟自身的ao节点,不要使用mr的ao,mr的节点海龟一律不支持。如下图:
那么接下来看看海龟渲染器的渲染设置我们需要了解哪些:
首先是渲染精度,例如抗锯齿,贴图过滤值,反射折射的参数等等,如下图:
默认的是很低的精度用于预览
如果需要成品品质的渲染则要切换相关数值为如下图:
当然根据不同的场景需要不同的调节,比如场景中有大量反射折射物体,则要调节反射折射属性至少为3,最大传递深度最少为4
当然如果想要达到更好的烘焙精度可以将Contrast Threshold这一项改成最小的0.001(如下图绿色框),这种方法可以显著降低贴图的噪斑以及渲染的精度,但是渲染以及烘焙时间会大幅度提升,如果场景有大量反射以及折射物体,不建议将这个值调节的过低,如果你的电脑CPU配置过硬,可以尝试调节到0.01即可。
在采样选项卡里需要了解的基本就是这些,下面看一下第2个选项卡,也就是很多渲染器都有的GI。
那么在这里我们主要可以为场景的渲染生成光能传递,也就是间接照明的效果,海龟渲染器的GI和其他拥有此功能的渲染器一样有着2种不同的GI生成方式,第一种就是我们常说的模拟GI,也就是例如mentalyray那种fg的功能,还有一种就是真正意义上的GI。
好啦~关于这些理论就不去深究探讨了,我讲一下如果运用海龟渲染烘焙在这个选项卡里需要了解到的选项。
首先需要注意的是我们在用海龟渲染场景的时候基本只需要用到fg就可以,也就是模拟间接照明,从渲染的成本上来说真正的GI实在耗时耗力,最好不要去轻易使用,此文只探讨fg的使用方法。
如果要想在场景中使用fg必须结合另一个选项卡Environment( 环境 )一起使用,如下图:
要使用fg,首先需要开启fg,如下图:
但是需要注意到的是如果只是单单开启fg,是没法去实现间接照明效果的,就算你场景里有灯光,也不能完全发挥间接照明的作用。
那么怎样才能让我们的场景更为生动呢?这就要用到上面提到的环境选项卡里的选项了,一起来看看吧!
首先我们在渲染一个场景,尤其是室外场景的时候需要有一个环境,这样结合fg会产生更丰富的色调,环境分几种,如下:
1.单纯的摄像机背景颜色(单色或者渐变色,并不是依靠贴图);
2.依靠一张环境贴图(如果有合适的,最好是一张HDRI格式的球天360度贴图,其他个格式也可以)。
那么这个环境球在海龟渲染器是在哪里加载呢,海龟渲染器在加载环境中有2个选项(如图)第一个选项为环境背景的贴图方式,也就是说这个地方加载的用于背景显示,渲染物体反射折射的参与,而不直接参与fg的发射。
Environment下面有4个选项,依次为无环境图、以摄像机背景、天光、环境贴图,如下图所示:
1.如果启用的是单纯的摄像机背景,那么下面的选项设置应为默认或者sky light,如上图。
2.那么如果你有一张360全景球天的HDRI格式环境贴图,那就再好不过了,这样就可以直接选择上图第四项,然后在下面的选项中添加你的图,如下图是4种情况下的简单场景渲染情况:
以上就是单纯开启Environment的结果(注意:是单纯开启,并没有配合fg以及阴影灯光等因素)。
所以我们可以看到这个环境只是负责影像反射折射的效果。
既然已经有了反射折射,那么我们之前所提到的fg该如何正确地启用呢,继续~
首先要想正确的使用fg,我们当然是必须开启fg,如下图:
那么开启这个如果在场景里,得到的虽然可以是有间接照明的效果,但是却不是真正的正确的间接照明,如图:
(我们在这里启用Sky Light选项)
要想得到真正的fg间接照明效果,必须启用Environment下面的GI Environment选项,如图:
(这里也让这个对应的选择到Sky Light)
这样才是一个真正的fg间接照明效果,我们看见现在背景是天光的效果,这是因为在环境选项里选择的是天光,可以任意选择背景,那么如何加载一张有贴图的环境图呢,如下图,这样的话,可以得到更为丰富的光影层次。
这样设置就可以得到正确的间接照明了。关于更多关于这两个选项卡的功能就不再阐述了,主要用到的功能基本就是这几项,还请大家自行研究。
那么现在来讲一下如何用海龟去渲染的一个小常识:
这里涉及一个概念,就是线性流程的渲染,关于线性流程渲染网上的介绍很全面,我就不在这里班门弄斧了,主要介绍一下如何在海龟里去实现线性流程的渲染。
线性流程的渲染选项在如下图的选项里:
只开启这个选项还必须在带有颜色信息(注意,黑白图、bump、法线贴图、置换贴图除外)挂上Gamma节点,但是如果不想每个节点都挂此节点那就开启下图选项:
不过我还是喜欢每个节点自己挂Gamma节点,如下图:
对比一下经过线性和没经过线性的对比图
ok,渲染就说到这里,最后放上这张最后的糖果世界渲染成图,由于制作时间有限,有很多不足,还请大家多多指教~
具体的材质调节和灯光架设需要一点点积累,不能急于求成,所以本文中没有提到过多的此场景的制作过程,而是把基础的设置简述一下,世界上任何的工作都离不开基础根基,如果根基不牢,急于求成的表现就算略有成效,也只不过是浮于表面,最好的学习方法除了平时要深入了解技术方面的知识,还需要多多观看一些好的静幀作品和国内外的一些优秀的三维动画和一些好的影片,仔细研究里面的灯光和一切效果的表现,时间长了自然会提升自己在这方面的艺术修养,会形成一种自然的习惯。
(ps:此场景的模型贴图非本人制作,本人只负责渲染调节,望周知)
那么好啦,既然场景已经渲染完毕,那么怎样保持这样一个效果导入引擎中呢,换句话说就是我们怎样在引擎中保持这样渲染出来的效果呢?答案只有一个:烘焙,一个合理的烘焙技术是唯一解决这个问题的工具,当然一些好的引擎和主机已经完全有能力在引擎中实现如此效果,可是相信现在大部分的个人硬件还无法满足在引擎中实时显示这种效果,所以渲染完后再烘焙就是解决思路。
烘焙分为高低模的贴图烘焙和这种渲染为主的单一模型烘焙,高低模的贴图烘焙不在本文讨论范围之内,百度搜索关键字{海龟渲染器烘焙}有许多相关的教程,我就不在这里阐述了,在这里我只说一下关于如何把渲染结果用海龟渲染器实现为贴图的流程。如下图,这里就是海龟渲染器烘焙所需要的界面:
红框内一定要在渲染完成后开始烘焙前改成Baking,黄色框内为此次此种类型烘焙需要用到的选项,稍后介绍。
接下来就是烘焙的准备工作,首先,如果你已经拥有了一个渲染好的场景,那么我们就进入烘焙的阶段,注意以下几点:
1.烘焙用的模型一定要有第二套完全无重叠的UV布置,否则烘焙出来的图是错误的,第一套可以是用来画贴图的重叠UV,而第二套则不需要考虑贴图,UV不重叠即可,如下图:
至于如何制作第二套不重叠UV网上都有很多基础的教程,就不再阐述了(此UV不是我分的,表说不专业)。
2.注意模型法线,法线的方向至关重要,不要犯低级错误。
3.因为大多数要导入引擎中的场景需要任意角度旋转观看,所以在渲染的时候尽量多照顾角度问题,不要单纯只想到在某一个角度看起来漂亮。
注意了以上问题,下面就开始烘焙,首先如果你场景里模型众多,最好以shader划分,因为用海龟渲染器我建议大部分只用Maya默认的Blinn和Lambert2种shader,所以可以以有反射和无反射这两种属性进行划分,也就是说有反射的物体合成为一个物体,无反射的物体合成为另一个物体,这样作有集中好处,就是可以以尽量少的烘焙工作量去进行工作,省时省心,第二种好处就是可以减少贴图数量,更好的为引擎节省资源。
选择场景中你要烘焙的物体 ,注意一次选择一个,活出有像批渲染那样的批量烘焙功能?也许是我没找到在何处~~~~~如下图,选择物体,并且点击烘焙UI中的烘焙选择的物体(Bake selected surfaces)。
接下来往下打开下面如图的选项,注意一定要勾选掉红色框内的勾,否则很有可能会出错哦,具体此为何功能,请自行翻译或者找资料研究:
接下来再往下翻看,如下图的选项:
此部分需要终点说明一下,选项的正确与否会直接影响到场景烘焙的最终效果。
如果烘焙带有反射的物体,需要按照橘黄色框内设置,原因在于,我们在渲染的时候最好架设一架主要视角的摄像机,这个摄像机为主要我们能看到的大部分时间内能所见的角度,其他角度,比如场景或者角色的背面也需要照顾到,但是最好有一家主摄像机来照顾我们所能看见的大部分的那一面,这个时候带有反射的物体会以你的这个主摄像机为角度反射,所以摄像机那里选择你的主摄像机,反射角度则勾选直角反射(Orthogonal Reflections ),这样的话你烘焙出来的反射才是正确的,具体的效果请自行测试。
接下来是设置烘焙贴图的大小,以及渲染完成自动保存路径,还有就是设置你自动烘焙到第二套UV并且指定第二套UV的名字。
在接下来就是最后一部的设置,这里我们看到海龟渲染器可以烘焙的选项,n多,这里都是一些场景的英文属性,自己可以自行研究。
在这里我们要烘焙物体的所有渲染效果,所以选择第一项。
最后放几张这个场景烘焙出来的最终贴图:
以上基本就是海龟渲染器一个烘焙渲染的简略的流程,如果要想真正的运用自如,还要靠自己积累,多多练习。
[flash]http://player.youku.com/player.php/sid/XOTA5NDA0OTc2/v.swf[/flash]
下面放上一段Maya视窗内的截屏动画,开篇已经放过!
(注意,此为视窗拍屏,不是渲染出来的序列合成)
好啦,现在我们可以看到经过烘焙后的效果,在场景里任意旋转和渲染之前的效果还是比较匹配的,这样导入游戏引擎之后就可以实时演示了,就写到这里啦,如果大家还有什么需要和我交流可以通过以下途径联系我哦~