一个月前Enrico Ecrica在论坛上展示了它的个人渲染项目—Urban Apartment(市内公寓)~ 这次的渲染是使用Octane渲染器渲染的,对此我十分的感兴趣~ 这并不是我第一次看到使用Octane渲染的作品~ 你们应该还记得之前有一份Bertrand的作品也是使用这个渲染器渲染的~ 只不过这一次的作品里,Enrico Cerica的场景中有更加丰富完整的模型和贴图细节~ 这些丰富的内容对于一个基于GPU的渲染器来说是一项挑战~ 看过作品后,我希望Enrico Cerica和我们分享一些他的制作心得~ 下面就让我们来看看吧~
作者简介:Enrico Cerica Enrico Ecrica已经在IT业有多年的从业经验了~ 3D只是他的个人兴趣爱好~ 同时作为一名自由职业者,他也时不时的会制作一些专业项目~ 简介_Introduction 我很高兴有机会和大家分享我最近的一份使用Octane渲染器渲染的作品~ 我的目的是制作一个巴黎式公寓,其中带有一些现代的家具~ 同时也希望公寓中保留类似木纹地板,窗户,金属阳台架或者壁炉等这样一些老旧风格的东西~ 这次的教学并不是专门针对Octane渲染器来讲解的~ 不过我会尽量多讲一些渲染室内场景的时候使用Octane渲染的过程~ 同时也讲解一些Blender导出到Octane渲染的方法~ 我会讲解一些从Blender导出到Octane渲染时的小技巧~ 建模_Modeling 我主要使用了Blender 2.62来建模和划分模型UV贴图~ 建模过程中我使用了很多修改器,比如:细分,置换,阵列等等~ 制作地毯的时候我使用了一个置换贴图作用于细分为4的Mesh物体上~ 由于Octane并不支持置换效果直接渲染出来~ 因此在导出到Octane之前,模型需要在Blender中就将置换的效果保留下来~ 在制作天花板上的吊灯模型时我也用到了置换效果~ 对于这类有复杂细节的模型来说,使用置换来制作很是方便~ 不过场景中太多的话会很吃显存~ 因此在场景中我将置换对象控制在一到两个左右~ 在制作天花板吊灯的时候,现在想来最好是给它烘焙一个法线贴图比较好~ 在制作场景中的布料物体的时候,我用到了Marvelous Designer~ 比如说: 毛毯 被单 枕头 衣服 最后我使用一个自己制作的blender树木生成脚本来制作场景中的植物 脚本是blender 2.49的,用它来制作场景中的树 场景中的壁炉模型是用一些免费的模型拼凑起来的~ 除此之外所有其他的模型比如说:雕像,鞋子等等模型都是我自己制作的~ 贴图_Texturing 贴图可能是制作过程中最繁琐的~ 主要是UV贴图的制作~ 虽然Blender本身已经提供了很棒的UV展开工具,场景中的某些模型展UV还是很烦的~ 大多数贴图都是自己制作或者从CGTextures上下载的~ 我喜欢使用比较高分辨率的贴图,这样方便后来在很近角度渲染也能看出细节~ 使用贴图之前首先将原始的贴图修改成可以无缝衔接的样子~ 这样当把它们赋予到模型上之后,就不会出现明显的接缝啦~ 最好的例子就是那个木地板~ 在制作完漫反射贴图后,我还在此基础上制作了凹凸和高光贴图~ 一体图像_Images-All in one 为了减少单个图像作为贴图带来的显存消耗~ 我尽量将多个图像放到一张大图中然后倒入作为贴图使用~ 在制作书本贴图的时候我用到了这个方法~ 最后我使用3张大的图像,每张图像上大约有30个封面~ 像这样3张大图就实现90个书籍封面贴图的效果~ 实话说,这个过程很烦人~ 不过使用这种方法克服了GPU/Cuba的限制,节省了很多资源~ 还是很实用的~ 渲染_Rendering 硬件要求_Hardware Used 我使用的硬件配置如下: 64位系统 处理器I7 2.83GHz 16G内存 2块技嘉GTX580 3G显存用于渲染 1块华硕ENGTX480 1.5G显存用于显示 渲染用到的软件_RENDERING SOFTWARE USED Octane Render v2.58c(Octane渲染器) Blender 2.62 to Octane Render script version 1.16(导出脚本) OCTANE渲染过程_OCTANE RENDERING PROCESS Octane提供了丰富的渲染引擎,Path Tracing及PMC能够产生最为真实的效果~ 它们可以基于真实物理环境,可以计算间接光线,产生焦散效果等等~ 一切模拟渲染器能实现的效果,它都可以~ Direct lighting mode 4比Path Tracing/PMC略快一些~ 提供一个额外的参数来将环境闭塞效果和间接光照效果结合控制起来~ 我经常使用这个引擎,因为它可以产生和Path Tracing媲美的效果~ 同时渲染也会稍快一些~ 在我看来它产生的阴影在某些情况下似乎更好一些~ 尽管在物理上有不正确的地方而且不像焦散那样可以手动调整它的所有物理特性~ Direct lighting mode 3仅仅是一个渲染环境闭塞效果的引擎~ 因此它不会计算间接光照,不会计算焦散效果~ 正因为这样,渲染很快,基本上5分钟就能得到一张很干净的图像~ 而要实现同样的效果,使用其它的引擎可能需要5个小时~ 其它的一些引擎也有一些实用的地方~ 比如说可以产生Z景深通道贴图,场景模型型ID贴图,甚至是法线通道图~ Z景深通道贴图对于制作后期景深效果的时候很有帮助~ 虽然在这张图中我并没有用到~ 我习惯使用Path Tracing或者PMC引擎来渲染,场景使用一个HDR贴图来照明~ 某些视角我使用Direct lighting mode 3引擎来渲染,使用太阳灯作为照明~ 最后在后期将两者合成起来~ 目前而言这是唯一的方法来模拟场景被HDR贴图中阳光照亮的效果~ 这点之后会提到~ Octane的着色系统/材质_Octane Shaders/Materials 我的Octane着色很简单,通常我不会使用节点系统~ 我会让Octane读取MLT文件来创建材质~ (在软件导出OBJ格式文件的时候,会产生一个相应的MLT文件)~ 在Octane中产生材质后,调整其中的高光及凹凸值~ 比如说将镜面反射转换成玻璃窗的透明光泽等等~ 我很少使用程序贴图,以为使用它们很难达到真实的效果~ 因此我的贴图材质都是基于真实图像的~ 我喜欢使用较低的镜面反射及凹凸值来避免环境中太多的闪亮~ 通常我也会使用漫反射混合光泽材质的方法来制作瓷器或者塑料之类的东西~ 这样可以避免材质表面过度的光泽感~ 我注意到在某些环境下光泽度强的材质会显得比较的暗~ 使用这种混合制作的方式有助于避免这种情况~ 枕头_PILLOWS 混合材质的用处很多~ 比如说某些情况下一种材质上需要有两种凹凸效果~ 这里我就拿枕头来说明~ 一张凹凸贴图用来制作枕头边缘的凹凸效果~ 还有一张贴图用来制作整个枕头上都会产生的细微凹凸纹理效果~ 顺便提一下,在一个材质上像这样使用两张贴图结合的方式能得到类似的效果~ 下面是枕头材质的混合设置 建筑环境_BUILDING ENVIRONMENT 我使用一个圆柱体来制作场景中的建筑环境~ 首先将CGTexture上下载来的素材组合成一个较大的整图~ 然后将贴图贴到圆柱体上~ 也没有必要贴满整个圆柱体啦~ 不过至少要是120度的视角范围~ 为了渲染的时候看到天空~ 我为建筑环境贴图制作了一个Alpha通道贴图,用来将建筑贴图上空的部分显示出来~ 窗户及墙_WINDOWS AND WALLS 在制作窗户的时候我没有使用高镜面反射的材质~ 我使用带有一定光泽度材质,同时将不透明度设置为0.1-0.2左右,反射置设置为1.0~ 这种方法可以有效的减少场景中的早点和亮点~ 因为光泽度材质不会产生焦散什么的现象~ 而高镜面材质会产生焦散现象~ 渲染的时候这样会在室内场景中产生很多的噪点及亮点~ 别忘了勾选上Alpha阴影参数,这样可以让光线透过窗户进入室内~ 在渲染室内环境的时候,光照是主要考虑的部分~ 所有的孔洞都接受光线照进来是再好不过啦~ 因此不要犹豫在需要的时候将墙面删除或者隐藏吧~ 在这个场景中,我将天花板分成了很多块~ 每一块都有独立的材质~ 当渲染视角中看不到天花板时我就可以控制让有些天花板变成透明的,方便光线进入~ 这种方法也可以用在墙面上~ 后期处理_POST PROCESSING 制作后期的时候,我主要用到了两个工具~ 一个免费版的neat image,用来减少画面中的噪点~ Gimp图像软件对于我来说就已经足够了~ 利用Gmip我将图像混合起来,调整颜色和灯光曲线~ 就是这么简单啦~ 下面是最终效果图 一些处理复杂场景的小技巧_Trick for complex scenes 这次的场景很大,由于各种原因你很难在Octane渲染器中处理它~ 很大的OBJ文件导入需要很久~ 显存溢出的风险~ 考虑到Cuba的限制,场景中需要太多的图像作为贴图~ 太多的存储空间用于图像读取~ Blender的界面设计对于处理大的复杂场景来说并不是很有帮助~ 层级管理设计是有限制的~ 将多个对象排布在不同的场景中不太简单至少不是很方便~ 顺便提一下:将一个场景链接到一个摄像机上是不可能的~ 由于我创建的场景大部分需要面对上面提到的这些限制~ 因此我必须找到一个简单快速从Blender导出数据到Octane中的方法~ 因此我用了一个自己制作的Blender脚本~ 用这个脚本用来导出视野能够看到的场景,同时隐藏看不到部分~ 导出的同时也可以对一些修改器比如说:细分,整列或者粒子系统进行设置~ 举个例子来说: 比如说场景中的地毯离得很远~ 渲染的时候完全没有必要将细分设置为3或者4这么高,1-2就差不多了~ 同样的道理对于一些场景中的粒子设置也是一样的~ 那么是如何操作的呢? 首先选中一个摄像机,大致确定下渲染的角度~ 这时候隐藏掉所有不相关的对象~ 同时将离镜头较远的模型细分值降低一些~ 对粒子系统也做同样的处理~ 当场景符合我的要求后,我就将它们保存下来~ 对将来需要渲染的每个视角都进行以上的优化输出操作~ 而使用脚本就可以自动完成以上的步骤,不需要一次次的重复操作~ 希望你们喜欢这篇讲解~ 让你们简单了解Octane渲染器的使用流程~ 以及大致展示了Octane渲染器能够实现的效果~ |
|