策划培训课之:3D基础知识主讲:刘星今天给大家讲的3D方面的一些东西会比较具体一点,讲的是一些职责上的问题,因为在制作上面具体挺复杂的,但是我们把其中的一些重要的概念和其中的一些本质性的东西归纳成比较简单的例子,这样讲的话大家应该都可以理解的。3D工作中的几个主要环节首先还是介绍一下3D工作中主要的几个部分:建模—根据原画设计制作各种模型,主要是做造型方面的东西。材质—制作材质或绘制贴图,就是2D渲染成2D图片的话就是制作各种复杂的材质,如果是3D游戏的话就是绘制贴图。动画—分手调制作或动作捕捉,还有一部分其实就是一点点程序的辅助。特效—特效,特效就是光效,还有一些游戏里的特殊效果。3D这个东西它本质就是对现实世界三维空间的模拟,当然这个模拟不可能是尽善尽美的,它只是某种程度的模拟,当然模拟的程度有高低,模拟程度越低那么代价越小,模拟程度越高那么代价相应的也就越大。多边形模型下边我们就来看下模型方面,模型方面我们现在采用的制作方式是多边形,多边形其实很好理解就是三边、四边、五边的这样一个面就叫多边形。最常见的面就是三边和四边的面,其中是基本的面就是三角面,因为它是边数最少的面。另外一个常见的就是四边的面,四边面的和三角面都是常见的最简单的面。3Dmax其实也支持五边的、六边的面,但是假如说制作角色,制作如下图所示这样的角色的话,因为它的角色身上会有一些动作,那么有动作的话这个模型就会发生一些变形,会有形体上的改变,这时候一般就不能使用超过四边面,五边六边都不能使用,因为五边六边的面实际上不够稳定,所以只有三角面、四边面是比较稳定的。一般在制作角色的时候不允许出现五边面,只能出现四边和三边的面。从下边这个模型上我们可以看出最基本的面就是三角面:这是最基本的单位三角面。当然就是说我们在全3D的游戏里面面数不能用的太多,像这样一个模型,一般也就是主角或比较厉害的怪物控制在一千多个面之内,如果是像《幻灵游侠》那样的游戏实际是渲染成图片在游戏中使用,这个时候没有限制,就可以使用面数很多的模型。面数比较多的时候可以看到它和上面一个的对比比较圆滑边缘没有出现一段段的直线段,看上去就会比较好看。一般渲染出图片来应用的时候用较多的面数,当然这样的话对系统负担比较大,不管是玩家玩游戏的负担还是我们这边制作时候的负担、对机器的要求都是比较高一点的。这就是全3D游戏里面面数要求和渲染成2D图片面数要求的不同。接着,我们来看一下模型最基本的构成:1、顶点。多边形其实有几个最基本的级别,一个是顶点。当我们拖拉这个顶点的时候,如图有一个坐标轴,拖拉这个顶点模型的形态会发生改变,本来是一个长方体,当我们拖拉顶点的时候那么它的形态就发生改变了。2、边。接下来一个级别就是边,如图下图所示。边也可以拖拉的,还可以可以移动、可以缩放、可以旋转,改变边也可以改变它的造型。3、面。再接下来就是面,面就是一个一个这样基本的面,如下图:和上面一样的,对它进行操作的话,也可以改变模型的造型。一般我们在制作模型的时候,主要是操作这几个基本的级别,就是点、边和面。像前面所说的模型的段数越多就越圆滑,大家看下边的图所显示的就是段数与圆滑的关系:从这里我们可以看出边缘的段数越多越趋近一个圆,这样的话我们一般要得到最好的效果当然比较喜欢这种圆滑效果,实际上放大看它也是一段段的直边组成的只不过因为缩小了所以显得比较圆,而且我们可以看出这种变化是很有规律的,都是把它的斜角切一个、切一个切得越来越碎了,看上去越来越圆了,也就是说这种步聚是有规律的,既然是有规律就可以用软件、用电脑自己完成。那么,同样的立体模型也可以这样做,比如下边的图所显示的就是:看这是一个立方体然后到越来越圆滑的结果,这里面是由软件根据一定算法自动计算出不同级别的圆滑程度。那么,我们就可以做出一个立方体模型,然后就会得到一个比较圆滑的结果,这当中的过程是由软件自动形成的。这个就是我们制作前边那个变数很多的模型基本的思路,就是用粗糙级别模型经过软件的运算得到一个圆滑结果,看各种不同的简单模型(下图),经过圆滑以后会呈现出另外一种姿态,它大体上保留了原来的模型造型,可是又有不同,比较圆滑,面数也比较多。下边是面数的对比,圆滑的面数就比较多:这样的话来看一下制作模型的原理,我们操作的是白边框,如图:比如说我们选中上边左图白边框中间的这两个点往上拖,那么就会得到右边这样圆滑的结果,圆滑后的结果也进行相应改变。这就是我们制作模型的基本的思路,就是用粗糙级别的多边形去控制面数很多的最终结果的模型,所以说我们看前面的那个面数很多的怪兽模型,其实这个模型和上边这个简单模型在本质上没有任何区别,是一样的物品,只不过前面的怪兽模型具有怪兽造型,这个模型就比较简单没有什么特殊的造型,这两个模型就是本质上完全一样的。也就是说工具手段思路就是这样的,关键要看制作者本身的水平能不能做出比较好看的模型。上边讲的就是建模上的一些基本的东西,但实际上在软件里面还有各种辅助的手段,像边想多要几个顶点、多来几个面或者面数想要多一些等都有相应的工具去处理,但是基本的调节思路是这样的。曲面建模NURBS还有一个经常看到的概念就是曲面建模。曲面建模就是以曲线为基础构成曲面的模型,它的表面是非常光滑的,不像前面的多边形它的光滑只是一种近似,这种光滑它的精度可以达到非常高的深度。一般我们3D游戏里面用的都是多边形,因为游戏引挚不支持那个曲面建模,但是在渲染2D画面的时候比如说《幻灵游侠》那个格式的时候可以使用NURBS进行一些辅助建模的作用,3Dmax的NURBS模块比较弱,一般也是比较少使用。上图就是一个高精度的曲面模型,它主要应用在工业造型设计,比如说制作飞机或者汽车等这种物体,这些物体表面对这种曲面的品质要求非常高,所以这时候就使用曲面建模可以达到比较好的效果。还有一个就是电影级模型,电影模型在过去因为多边形发展比较落后,所以面数的粗糙是无法避免的,这对电影来说致命的,因为电影的画面非常大,那时候一般只能采用曲面建模,使用一些曲面的造型方式来制作那些角色。现在当然不一样了,现在使用多边形也可以通过不断的细分达到一个比较好的结果,就像前面看到的粗糙级别的面数不断的细化可以达到有一个圆滑的结果,但是这种曲面建模的方式多数还在使用。所以这种建模方式精度比较高,制作上难度也比较大,一般游戏上也会用得到的,高端制作上也会用。材质、贴图与灯光的重要性我们前面讲的建模只解决造型方面的问题,就是一个物体它的结构应该怎么样的、它的形状应该怎么样的,但是除了这个我们最终要看到的物体比如说角色或者怪物或者物体它们的表面都有不同的色彩和质感,还有纹理,这些部分是由材质和贴图来完成。同时起作用的还有一个灯光,就像我们大家都知道的不同的物体在不同的光照条件下面会有不同的反应,白天和晚上看上去色彩的颜色是不一样的或者用绿色的灯和蓝色灯照射上去,产生的结果是不一样的,所以说材质不是固定的,而是和灯光有联系的。上图就是上材质和没上材质的区别。没上材质就相当于普通的单色物品,只是一个单色的物体,没有任何材质上的属性;上了材质以后,比如说我们可以上这些纹理、可以调节它的高光。这就是上材质和没上材质的区别。灯光首先,我们来看一下灯光。我们现实世界里面灯光其实是非常复杂的,它的表现有很多微妙的变化,而在前面说的3D制作里面其实只是一种纹理,缺少很多真实光线的特性,比如说在太阳光照射下面使用三菱镜可以把日光分解成多种颜色的光,可以得到一个光谱,实际上在3D软件里面就很难实现这一点,只有用目前一些比较先进的技术才能模拟出这种东西。在软件里面对现实世界中灯光的模拟其实是比较简单的,现在随着技术的发展,各种不同的计算方式层出不穷,当然也可以在模拟上做得更好一些,只是同时它的代价也更庞大了。上边的这幅图里边,左边的是最普通的一般的光,就是把光源放在户外,然后里边是一个封闭的空间,光源放在外面照射进来产生了一个简单的阴影,照亮的区域偏色了很多,照亮的区域外全部都是黑色的,这就是灯光渲染,时间非常快,只需要两秒。相比这个来说右边的就很接近真实世界的灯光,这个稍微夸张了一点就是模拟日光从窗户外面照进来的时候,没有照亮的地方会被间接照亮,光线有一定的反弹,这就是比较接近现实世界的灯光。大家还可以看到墙上这些部分颜色,这是因为有一个红色的球,还有一个一个蓝色的椎体,它们通过光线的反弹把各自的颜色也反弹了一小部分,锥体也有一点红色的成份,还有一点蓝色的成分,这就是模拟显示世界里面的一些东西,同时它的代价也是非常大的,同样的一张图它打了3分零6秒,所以说想要达到的质量高的话就是模拟的程度越高付出的代价也是越大的。这个就是渲染成2D图片的时候要考虑到这个因素,想要制造的更好、光线要表现的更完美,相应的代价是比较大的。现在我们的游戏大多数还是2D背景而且一般地图非常大,常常需要几千乘以几千的尺寸,现在制造中最大一个问题就是渲染,渲染需要时间非常长,因为现在采用一种比较好的渲染,基本都是采用右边的那种方式渲染。左边的方式渲染的话要达到右边这种比较好的效果的话灯光要非常复杂,假如说用普通灯光的话就要在室内建立一盏辅助的光源来模拟间接倒影,制作难度会比较大,场景一旦非常大的时候就会变得非常复杂。所以选用高级渲染方式来渲染的话,可以减轻制作上的难度,效果也比较好,但是需要的时间非常长,而且我们做得都是大的,渲染上的时间要花很多的。现在我们来看一下全3D游戏里面关于灯光的一些表现。以前我们使用C3不支持灯光对物体照明影响,所有的明暗都是靠贴图来表现的。靠贴图来边表现的话,贴图是用人手绘制的,这上边的明暗的方向是固定的,没有变化,这样的话它的制作难度比较大,而且难以达到比较好的效果,难度比较大而且实际效果也比较差。另外一个就是现在大多数稍微好一点的游戏里面都支持一种光源对物体的照明,就是游戏里面存在一个全局性有方向的光源,就像太阳一样,可以使引挚里面的游戏里面的各个物体都表现出基本的明暗,表现出了体积,而且改变它光源方向的时候模型上面的阴暗也随时进行改变。这样的一个好处是降低了贴图绘制的难度,实际效果比较好。下面来看一下例子:昨天的就是我们C3制作游戏里面使用的一种纯白的贴图,在游戏里看到的结果是这样的,就是纯白的,没有任何的立体感觉。右边的就是现在大多数游戏引挚里面支持的效果,它支持一个简单的光源,虽然说没有前面讲光线的间接照明这种特性,但是它有一个照明的基本特性,这样就可以表现一个模型基本的立体结构。同样是使用的纯白的截图,左边的是C3的,右边的是目前大多数的游戏都在使用的照明效果它的一个好处就是光源方向改变的时候它的立体效果也是随着光源而改变,见下图:很明显这种效果是比较好的。这个是《魔芋》里面的角色,它也是采用C3的游戏制作,所以里面的贴图绘制方式也是以纯白为基础、没有照明效果的制作方式来绘制的。它的光照其实都是固定的,它的模型不论怎么转,亮的地方始终是亮的。就像下边的小兔子(见下图)一样,我们在绘制贴图的时候要故意把它被照亮的地方画出来,暗的地方画得比较暗一点,这样的话从一个角度看上去是很漂亮,但是在场景上转的时候或者边上应该有光源对它影响的时候是不起任何变化的这种效果就是比较固定。但是一般细节方面,如上图,不同的质感方面比如高光什么的,这个不论是在什么引挚里面除非是在比较好的引擎里边比如说支持一些显卡的高级功能反射、光线追踪等,大多数还是靠手绘完成的。这些不同的材质不管是在哪个游戏里面,都是按手绘来完成的,但是大体的明暗可以使用游戏里面的光源来表现。贴图接下来我们要考虑的是这些贴图的位置和模型的最终表现,就是说模型是一回事而贴图又是另外一回事,怎么样将两者进行匹配呢?怎么样才能将贴图上边亮的地方精确的放到模型上边亮的地方?这时候我们就需要坐标。平面直角坐标与UV坐标定位一般是使用坐标来完成的。上图左边的是最常见的平面直角坐标,有X轴和Y轴。右边的是模型上面使用的坐标即UV坐标,UV坐标实际大家不需要很深入的了解,想象成平面直角坐标一样的,只不过它的方向是在曲面上,其它的表现跟X轴与Y轴都是一样的。就是说