3ds max教程:教你如何制作囚道的制作

修改
鏉ユ簮: 爷⑤-缺德 浏览 2479 日期 2011-10-28 0

先来给大家欣赏下效果图,希望大家喜欢:

这个场景最早的想法来自于国产的一部描述春秋时期的战争片。

初模在今年春节的时候就已经搞好,可惜原来待的公司事情太多就一直搁置了下来,最近因为辞了职所以有了大把的时间去完成它。

模型方面没有什么特别的地方,这个场景最花力气的地方是贴图的制造,以及在max内的材质复合:q

这个场景在finalrender stage-1 sp3中渲染,不过这个新的版本用起来怪怪的,虽然用了很多优化方法,但是还是会时不时的假死。。。。有点晕。

白模:

整个场景建模方面并没有什么特别的地方。

最早的版本是全单面建模的,后来随着制作过程的细化,有些地方已经不适合单面了,所以就改用了box,这些地方很明显,比如整个空间的粱和柱,当然这些地方都二次编辑过。另外一些地方我一直沿用了单面方式来制作模型,由于原来工作习惯的原因我自己比较喜欢用edit poly挤压然后编辑点的方式来进行工作。

[next]

场景原来的大空间是由一个box删除了几个面开始的,最初只是个大概的想法,然后一边制作一细化就ok了,另外,走廊尽头的朱雀模型是用位移贴图+快照建模最后优化了一下来搞定的,模型方面比较失败的是左墙的三个灯洞,最初制作的时候是想为它们加入模型细节的,不过显然没能达到多少目的还浪费了很多的面数,还好最后用贴图达到了目的。还有左边靠柱子摆放的多块瓦及其碎片是用pro booleans搞定的,这个东东确实是个好工具,其它的部件比如刑具灯具等等都是在一个新文件里面做好了合并进来的。

线框1:

线框2:

这是附件文件的渲染效果。

首先打算把场景的地理位置设定在比较干旱的地方;空间要显得非常干燥;场景要表现出我国古代最好是秦代的感觉;然后既然要表现监狱的一个部分,那么它不能是被荒废的,相反是有人经常使用的,不过疏于打扫吧了;再进一步来说,由于地点特殊,所以使用这个空间的人也会很特殊。最后,基于前面的想法,整个场景的材质就已经很好确定了,它将以土质、木头以及少量的铁器青铜器为主来表现。以上是开始时就考虑到的问题。

[next]

有了思路具体的东西就好办了。

下面我挑几个材质说说制作的思路。

油灯:

首先是土质陶器,表面上了铀。而我所使用的finalrender渲染器对3ds max的兼容性,使我很放心的对场景中的这类小材质使用了max的标准材质。

看截图:

就像看到的一样,这个材质没有非常特别的地方,全部都是程序式纹理。

程序纹理的最大好处就是无限缩放,不用担心精度问题。只要参数调整的适当它会发挥很大作用。另外对于场景中色彩影响不大的中性色调小物体来说,不必用fr的材质来制作,而且不需要担心色彩相互影响的问题,这个材质我把油灯的凸凹也做上去了而没有在模型上来实现它,因为小东西没必要浪费多边形数。

木质刑具面:

秦代的刑具,木质的,有些年月没使用了,它放在场景的近处,这就是这个物体的所有内容。因此建模要细致,纹理要相对精致一些。

[next]

这个材质在max里面是个相对简单的fr材质,而前期在ps里面对贴图进行了混合和编辑,分辨率为800x800pix,参数上基本都是默认的,仅仅是动了一下必要的高光和高光级别参数,因为它是旧木头。另外这个材质的凸凹贴图是漫反射贴图加了对比度后的黑白版本,而通道的值给了-180。

材质设置:

土质为基础的墙面,表面曾经经过处理,不过年久失修已经开始破损了,但程度不及右墙,右墙常年被太阳暴晒,左墙显然不这样。建模方面注意破损就ok,因为面积大所有纹理分辨率和细节一定要多。

ps前期:我大量采用了3d total textures光盘里的纹理,不过没有一张是未经修改就使用的。还有一些是自己随意制作的纹理,其中有用ps多个滤境合成的,有自己原来收集的纹理,数码相机去公园偷排的大精度墙壁等等。主纹理的分辨率为1200x1200pix。而主混合贴图为2848x1452pix,不过是黑白的,它用来合成主纹理与其它纹理最终组成漫反射通道贴图。

[next]

材质编辑2:

photoshop02:

左墙uv分配:

先从前期的ps说起吧。

mt左墙ps2.jpg显示的主纹理已经是最终的样子了,所有没留下几个图层,由于原来形成的习惯,只要一个阶段ok的话,ps里面我就会合并图层,所以现在就这样了。实际上在制作这幅贴图的时候使用了6幅左右的高精度贴图来进行各种叠加,还动了些滤境来做图层的蒙版,对很多地方都复制了细节,位于底部的地方还使用烧黑工具进行了加工,并且同样叠加了纹理。

mt左墙ps.jpg右下显示的是主混合贴图它主要是起到混合主纹理和其它纹理的作用,我为它使用了单独的纹理通道便于加以控制。它最早是昆明黑龙潭公园和尚庙里的一段墙,上面也叠加了三幅其它的纹理,局部还加了一些细节。

[next]

其它小纹理都是原来自己收集的,或者3d total textures里面的。

然后进入max里面折腾:

左墙要达到的效果是土黄色的墙壁上磨损出了表皮下的另外一层,然后靠墙角的地方要更葬一些色彩更暗一些。最后就是注意所以贴图的色调问题,基于这个思路我得出了mt左墙.jpg的结果,同样fr的材质也使用的是默认的参数。我使用fr材质的原则是除非它出现问题,否则我都使用默认参数。

另外就是,贴图坐标的分配方法,参照mt左墙3.jpg来说,第一个uvw作用是分配了一个平面贴图坐标给整个墙体的平面部分,不过这个坐标的宽度仅是一个柱子到下一个柱子之间的距离。而第二个uvw的作用是为三个墙上挖的灯洞而使用的,它分配了一个box贴图坐标,最后一个是专门为主混合贴图使用的贴图坐标,所以它的贴图通道不同,而方式也同样是box贴图坐标,尺寸方面大概为两个柱子再加一半它们距离的大小。

[next]

右墙的材质制作思路和方法基本没有什么变化。不同的地方仅仅是用composite贴图以及不同贴图坐标,加上不同的贴图通道来实现墙上的血迹而已。另外由于要进行太阳光的gi反射所以我控制了一下这个材质的gi发送倍增值。其它没什么特别的地方。

材质方面还有一个材质特殊一点,就是两面墙体上的土层,也就是墙面损坏后露出来的部分。这个部分在模型上我仅仅是挤压出了一个厚度而已,它是不合乎逻辑的,因此我在渲染的最后阶段使用了:fr-dirt材质,它很好的完成了任务。

材质编辑:

接下来是场景的布光设置:

这个场景包括:一个模拟中午太阳的平行光、五个模拟上方环境光的自由面光源(光度学光源)、两个泛光灯是用来对走廊进行补光的。先看位置吧

[next]

首先,我个人使用的fr渲染器来渲染的时候,使用灯光的方式基本上与使用max的常规打光方法没有什么区别,而且原则也非常相近,就是避免死黑。当然这是我在制作大多数商业作品时候的原则,而自己制作cg场景的时候,会多考虑一些自己的想法,仅此而已。

先看太阳光的参数:

我打光的习惯与大多数人一样,都是先从场景中的主照明开始的,这种方法的优点是场景中的明暗关系能在一开始的时候就确定下来。

这个平行光的倍增值为1.3,我让它稍微强烈一些;另外阴影类型我使用了高分辨率的阴影贴图(size:2048),本来从理论上说我应该使用fr-shadow map的,但是实际上这种阴影类型我自己是很少使用的,因为它经常会出问题,比如莫名其妙的阴影渗漏或者错误等等。当然这个场景布光开始的时候我也用过,但是在sp3里面它不仅出现了错误而且渲染时间还变慢了,所以——拉倒:q。

[next]

最后就像你看到的一样,我在主光源上使用了体积光,而两个体积分别用来模拟灰尘和“体积”的,在测试的时候效果非常好,而且没花多少时间,但是最后加上贴图渲染的时候只有“体积”出来了一些,灰尘因为色调问题基本看不出来了。

接着是光度学的自由面光源:

场景中的五个关联复制的面光源主要作用是补光和模拟空间上方的光线,从灯光类型来说,我由于习惯的原因使用了自由面光源而不是fr的矩形光源,原因是fr-rectlight的阴影选择性过低了。另外,光度学的优点应该是不言而喻的。

至于,补光用的光源,其阴影使用fr的体积阴影那是非常好的选择,它的速度个人认为是比较完美的。

漫反射的补光:

场景中的两个点光源作用是光线的延伸,我使用了远衰减,然后在y轴方向挤压缩放了一下衰减范围,在台阶上方以及近处的光源都是用于模拟太阳投射到地面后的地面反弹光线,它们的效果很明显。最后阴影使用了fr-shadow map没什么特别的。(用fr-shadow map的时候一定要点击阴影参数内的render按钮,否则多半不会出任何效果)。

[next]

好了,灯光参数基本就这样了。可能你已经发现所以的光源强度都是很不高,这也是我的习惯,主要原因是场景光线不足的话,完全可以让渲染引擎的gi光线来补充。

最后是渲染参数,怎么说呢,我每个场景的渲染参数在多数情况下都不一样,因为每个场景的光线环境以及渲染效果都不一样,要我说到真找不到头绪。因此,这个部分还是由问答来完成吧。有问题的朋友请跟贴提问,另外附件里是我经常在制作中使用的测试参数,应该能发挥一些作用吧。 这是未后期的渲染成图:

ok完了,希望能对大家有所帮助。

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}