场景的制作方法与思路

修改
鏉ユ簮: junjun 浏览 2499 日期 2011-10-24 0

本教程讲述场景的制作过程及其思路,很适合广大爱好者学习。

原始教程链接:http://67.15.36.49/team/tutorials/simplebeauty/guzowski2_1.asp

中文译本:

1.介绍

在这篇教程中我会讲解如何创作出一个场景,并且这就是场景制作的一般规律。还有,我也写出了在场景中感受到的心理状态和生理机能,向你描述我为什么能将物体放置在恰当的位置上并且使用非常简单的物体创建出一个完美的场景。

最重要的是构思。

首先我会为场景中的物体写出一个“uvw mapping”清单。

墙壁————立方体贴图

地面————平面贴图

木板————立方体贴图

椅子————圆柱体贴图和立方体贴图

自行车部分————圆柱体贴图(使用‘封闭’)

墙壁上的镜子————立方体贴图、平面贴图

金属管————圆柱体贴图

破碎的玻璃————平面贴图

花盆————圆柱体贴图

花————平面贴图(树叶)、圆柱体贴图(花的剩余部分)

效果图。

2.建模

室内效果如图。

墙壁由若干个标准立方体制作而成。只有带有窗户的墙壁使用了挤压样条曲线的方法创建。地面是一个“标准的平面”物体。胸墙(房间中间的墙壁)是由一个被转化为‘可编辑多边形’物体的标准立方体制作而成的。

下一步要增加网格的复杂度。因此我使用了‘tesselation’(细分)和‘meshsmooth’(光滑网格)工具,使用同样的方法创建出所有的木板(在地面上作为我们的地板,和在墙壁上用来遮挡窗户的)。

破碎的玻璃和镜子通过挤压样条曲线被制作出来,镜框使用了‘extrude’(挤压)工具被建造出来:我挤压一条样条曲线,然后然后稍微地移动边线上的顶点并且将它们旋转45度。我这样做是为了使镜框恰当地衔接在一起,就像在真实世界中。管子只是一个‘standard cylinder’(标准圆柱体)物体,通过移动和旋转顶点被变形,在管子的某些部位降低了网格的复杂度并且使用了‘ffd’变形器。屋门是一个经过略微地变形创建出倒角边的简单的box(立方体)。

车的框架(靠在墙边的)由几个标准的圆柱体创建而成。在某些部位我移动了一些点并使用了‘ffd’变形器。我将它制作得很简单,因为这里不需要任何复杂的细节——自行车在场景中不是最重要的物体。正挂在墙壁上的自行车的车轮是由一条经过放样的样条曲线(你必须改变gizmo-axis线框的轴向)和许多被复制出来的细圆柱体组成的。自行车的链条也是由另外一个经过挤压的样条曲线(一个单一的链条段)和许多它的复制物体组成的。

从这里开始真正的高水准的制作工作。

一把椅子本身不是一个简单的模型。它是十分精巧的,有许多精巧的部位和衔接处,在这些地方必须小心(在建模的时候)并且注意比例。许多制作椅子模型的艺术家忽视了这些比例。有时,稍微移动一个模型中的一些点以增加真实性。你想知道怎样理解比例吗?没问题:坐在一把椅子上。感觉舒服吗?试着把椅子的某些部位(如椅子腿)与场景中的其它物体进行对比(就像在真实世界中一样)。试着绘制出椅子的图画,我几乎肯定你不会恰当地绘制出来。在绘制了数百万张不同的椅子图画后,我很好地理解了比例的含义或者怎样假造出椅子。关于椅子我就说这么多。你会在这篇教程后面的段落中更多地了解它们。

[next]

花盆是由一条‘经过放样的’样条曲线制作而成的。在花盆表面上的裂痕是使用布尔运算实现的。花盆中的泥土是一个简单的立方体,它被转化为一个‘可编辑的多边形’。然后我移动某些点,‘tesselated’(细分)某些表面,并且为某些表面指定‘meshsmooth’(光滑网格物体)。

为了制作出叶子,我使用了quad-patches(方形面片)并对面片上的点进行了修改,还有一个整体的‘ffd modifier’(ffd变形器)被指定给所有的叶子。

3.照明

在场景中我使用了3盏灯,如图。

第一盏灯(也是主光源)是一盏spot light(聚光灯);我使用了‘far attenuation’(远距离衰减)和‘inverse square decay’(反向平方衰退),因为我需要具有真实感的阴影,投射到阴暗的空间中(房间内阴暗的空间)。如果你想得到一种自然界中正确的阴影的衰减效果,这也是一个非常有用的选项。

第二盏灯——体积光发射器——是另一盏spot light(聚光灯)。还有,我选择了[use light smp range](使用照明采样范围),因为我使用了attenuation(衰减)和decay(衰退)。并且我想使体积光的光线也像主光源那样进行衰减。当我刚开始设置体积光参数时,volume light(体积光)是这样的。

但在最后,灰蒙蒙的体积光被正确地表现出来。

第三盏灯是一盏‘omni light’(泛光灯)。这盏灯在房间内,不投射任何阴影并且几乎是纯黑色。这种黑色的灯通常被称为‘light-sucker’(光线吸收器)。这几盏灯在场景中营造出一种‘moody’(阴沉的)气氛。我喜欢这种效果。

4.纹理

再次为“total textures”欢呼。我不必用数码相机四处寻找拍摄适于使用的墙壁纹理。不必只为拍摄一张照片而进入狭窄的地方。我从一张cd中几乎找到了所有需要的纹理。只有少量的纹理是我自己绘制出来的,如植物的纹理,或者镜子。

我不会写怎样将单一的纹理分割成几部分,如果你不记得了,请试着找出我的更早的教程。

但是,我会展示给你看怎样为正面的墙壁制作出主要的纹理并且怎样制作出一面看上去布满灰尘的旧镜子。

下面是一张墙壁上的纹理图。

我很清楚要得到怎样的纹理效果。我不需要整洁干净的concrete(灰泥)纹理,但是我找出了一种优秀的纹理用于制作(破坏),我还选择了一些其它的纹理贴图。其中的一些被用做裂痕的蒙板,一些被用做旧涂鸦,其它用做普通的污垢。但是,我需要的更多。我需要更多的细节。我需要一些纹理,这些纹理可以使正面的墙壁很容易地被人认为是一面破旧的墙壁。

然后我要了解一些事情,当你带上你喜欢的家具和油画等物品从旧房子里搬出来的时候会发生什么事,你会发现什么?

当你把一幅画从墙上摘下来时,你看到了非常脏的墙壁。

我在photoshop中创建了这些历史的(由于时间太久造成的)痕迹。我创建了一个新的layer(图层),然后使用‘rectangular marquee tool’(长方形遮挡工具)和值为2个像素的‘feather’(羽化),使用一种普通的浅灰色填充这些选定的区域。然后稍微改变这个图层的不透明度。完成。

[next]

用黑色签字笔在白纸上写出被用来作为污迹的文字。然后扫描它们并利用‘color range’(颜色范围)选择方式将白色删除,只留下黑色的文字。

镜子的纹理如图。

镜子的色调设置如图。

对看完前两部分的人来说,在第三部分中,我写了关于合成、颜色和‘在场景中的感受’。

5.后期合成与设置(物体位置)

在我的场景中,你会发现基于合成的3个面。第一个面,保持立起的椅子正确地放置在摄像机的前方。这个面被模糊了(‘depth of field’景深)。

第二个面包含放置在地板上的物体。事实上我的第二面是地板,因为地板正确地显示在空间中央(在摄像机和墙壁之间)。在第二个面中还有破损的椅子和上面放有植物的椅子。最后第三个面——背景——是墙壁和封闭窗户的木板。我不想阻碍观看者的在空间中的视线。这是我创建门的原因,更确切地说在门的位置上创造了空间。

6.功能与说明

窗户——在第一张名为“beauty lies in simplicity”(美丽在于平凡)的图片中,我只创建了窗户框的阴影。这些阴影大大地提高了场景的真实感。这次我想在有光线照射的空间中展示场景。为什么要用体积光呢?

因为在这些破旧的、布满灰尘的家中,总是有很多飞扬的尘土和浓重的湿气(特别是在夏天)。尘土和湿气创造了体积效果。如果你离近些观察,你会看到单个的灰尘颗粒。

我不知道为什么我创建了一辆破旧的自行车。喜欢挂上车轮的效果。

花盆——我必须放置一个花盆,因为在第一张图片中有相同的物体。但是在这里,它像是崭新的。美丽的植物生长在它上面。现在,时间已经流逝……新物品已经变得陈旧。

破裂的镜子——可能是一种象征。一种非常凄凉的象征。

立起的椅子——一把立起的椅子是一种不言而喻的象征。它描绘出安逸和平静。椅子本身被我们的思想赋予了非常强烈的意义。当我们看到一把椅子时,我们想到了休息,和一些平静而温暖的东西。还有一种很好的解释,人们使用椅子来休息。试着比较一把椅子,例如,和火焰对比……你感觉到什么?

植物——还有一些东西。自己观察,你会发现只有一片叶子(最大的那片)是绿色的。它面向太阳,在光线中,并且对着仅有的出口。

“beauty lies in simplicity”(美丽在于平凡)不要认为‘美丽’这个词描绘的是整个场景。不是!‘美丽’描绘的是植物的斗志。把这盆植物留在这样一个破旧房间中的人不会想到它会存活,但是它生存了下来。并且很美丽。‘平凡’这个词正确地描绘出了场景中的物体。它们非常地简单,容易建模,容易放置,它们彼此配合组成了一个效果出色的cg场景。想像中事物的美丽在于cg场景的平凡。

最终效果如图。

评论

{{ 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) }}