朱峰社区首页

搜索资源 注册或登陆 红包

等待

返回 展开菜单

从原理上诠释三维动画技术

maya版vray教程 观看预览

maya版vray教程

包含4节视频教程
关注5.9万

vray目前已经是各大游戏厂商,建筑公司,影视动画普遍使用的渲染器了,maya版本的vray渲染器稳定可靠,我们的教程将完整的讲解这个渲染器。

关闭
【前言】
本系列文章将对三维动画技术中的模型、材质、灯光、动画、特效等内容进行罕见角度研究(原谅我嚣张的用词),可看作是基础中的高级知识点扩展。我既非行业高手也非CG培训老师,目前所写的资料文章,均是闲时汇集个人所理解的知识点。初衷是巩固自我学识,同时给一直在走弯路摸索的后来者提供经验和参考--但不做权威论断,欢迎补充和指正!顺便提点小要求,转载文章的时候希望能注明出处并保持内容的完整(可不包括本段文字)。这不是个人的虚荣心作崇,只是希望能让更多人获得帮助。
【三维动画要素】
Three-Dimensional Animation,具有三种维度技术的动画,简称三维或3D动画。和另一个概念“3D立体电影”不同,三维动画是制作的技术范畴,而不是直接的视觉效果。三维动画设计固然需要一定艺术基础,但初学者也可以通过三维软件来反向学习基础的色彩、透视、构图、形体等。无论是静帧还是动画,三维画面的元素均包含模型、材质、灯光、镜头,辅助的要素有骨骼动画、表达式控制、动力学特效、后期画面滤镜等。尽管以下将以maya为平台进行说明,但大部分原理也适用于其他三维软件。


模型篇 
【构成】
 模型是三维动画最不可或缺的起步元素。计算机图形学中经常会用到的术语“矩阵”,简而言之,就是虚拟三维空间中的点。规定的三维空间中会存在一个零点坐标,它周围的点以XYZ坐标来表示方位,而这些点彼此之间可以连线形成线段;当不同的线段对接,就构成了三维线框结构--这就是三维模型的最原始形态。闭合的线段中间填补虚拟平面,于是三维结构有了体积。 

模型由点线面(围绕零点的空间点,点连成的线段,线段围成的面)组成。Maya中分NURBS(工业曲面)和Polygon(多边形)两种模型。这两者的本质同样都是三维线框构成,不同的是NURBS的点和点之间有曲线插值,可以通过重建曲面(RebuildSurface)做出无限圆滑的带弧度曲线,适合高精度的工业模具产品;而Polygon是两点直连,如果需要圆滑,则需要使用smooth(平滑)命令进行后期插值计算(会缩小模型),适合影视动画游戏的各种模型。同样显示级别,由于点插值的默认存在,NURBS会比Polygon更缓慢。
  

【尺寸】三维空间是个矢量集合的区域,在软件自身限制下,模型是可以任意放大缩小的。以预设的软件长度单位为空间点坐标单位,可以精确规定模型的长宽高。maya默认以公制单位“厘米”为基本长度单位,场景中的模型的高度值也就是现实中的厘米高度。不过因为动画本身是种“后处理结果”,并不像工业建模那样必须精准的尺寸,所以软件的建议或者用户的习惯都可以改变默认的尺寸标准(maya的动力学系统是将厘米当做现实的米来用,容易和模型比例产生矛盾)。仅以模型尺寸为例,maya中创建的基本几何体就是以厘米进行的。例如Sphere基本球体的Radius属性数值为1,就表示这是个半径为1厘米的球体;


cube基本方体的Width、Height、Depth为2,就表示这是个宽度、高度、深度分别为2厘米的长方体。 

除了使用基本几何体做测量参考,也可以使用maya的测量工具来测量模型尺寸:Create->MeasureTools->DistanceTool。不过在建模的时候,使用标准几何体的数值要比测量工具效率更高。

 

*maya场景默认的网格,一个方格的长宽为1厘米*1厘米

【UVs】除了自身结构和基本的材质效果,当我们要展现模型很丰富的纹理的时候,就需要UV贴图,例如带划痕的墙壁。


UV贴图其实也就是一张普通图片,经过软件的坐标映射,将这张二维图片在三维模型上呈现出来。UV贴图就好像一个物体的外包装。 

因为XYZ已经用来表示三维坐标,二维贴图上的坐标就使用UV来替代XY(U=X,V=Y),而使用到四元数的时候还会增加一个W参数,所以通常也叫UVW贴图(3dsMax中的叫法)。*UVWXYZ……很通俗简单的英文字母排序取名法。UV只是一个坐标符号(NURBS中表示方向),maya将UV加上复数形式表示模型上的UV点,也就是UVs。UVs指的是Polygon(多边形)特有的UV点,而NURBS(工业曲面)也存在UV点,只是在你将它转换为多边形之前,这个UV点集合是无法编辑的,仅作为贴图位置参考--不少人误以为NURBS没有UV点。

  

UVs在创建多边形的时候就一直依附于模型点上,一个模型点可以有无数个UVs,取决于UV线是否断开--UVs的数量是大于等于模型点。赋予模型贴图时,UVs应尽可能分布于第一象限(UV编辑器的右上方区域),这样在绘制贴图和导出到其他程序的时候不容易出错;如果使用重复(四方连续)贴图,UVs则可以任意遍布。当一个模型上使用了多重纹理,也就是多个贴图的时候,根据需要我们还可以创建UV Set(UV集),用来管理模型上不同的UV贴图。例如一个重复纹理的墙面贴上一张小广告插画。 

对UV偏移值设置关键帧可以制作有趣的贴图动画,常见于游戏的广告牌、河流、瀑布、坦克履带等。 

【贴图映射】先简单区分一些英文术语:Shader(材质),Texture(纹理),Map(贴图),Image(图片),Bitmap(位图)。[Shader]材质通俗的说也就是材料,它表现出显而易见的视觉特征,例如:闪亮的金属器皿,潮湿的泥土,生锈的铁器,炽热的熔岩,腐烂的树皮等。也就是说材质本身是一种可形容的物体。



[Texture]纹理是物体表面的纹路,它不是具体的物体,而表示一类特征,可强化材质的表现。例如同样质地的木板上不同风格的木纹,人物不同的皮肤,墙面不同的破损等。

 

[Map]本意是地图,Mapping有映射绘制的含义,因此Map可以认为是有针对用途的具体图片,它在maya中是服务于模型渲染的。 


计算机上的图片通称,它可以是通常的jpg,bmp,png,GIF格式,也可以是HDRI,EXR,IFF等包含特殊信息的专有格式。 

位图也称点阵图像,用来解释图片的像素组成。事实上多数计算机图片都是位图,因为Vector(矢量图)需要专门软件处理。BMP是无损的位图,而jpg,png等是经过压缩的位图。
 

以maya的惯例来说,Shader和Texture使用频率较高。前者是必不可少的构成,后者通常指所有附加到材质上的纹理贴图(含程序纹理和外部图片)。Map和Image一般只有在展UV和贴图赋予的操作步骤中才会提到。

在maya中纹理分为2D纹理和3D纹理,前者依赖于模型UVs的分布情况,而后者是直接在填充于三维空间中的函数图形,效果直接显示在模型表面。2D纹理使用较为广泛,包含外部的图片和软件的程序纹理;3D纹理是maya内置程序纹理,用于一些三维特效的细节辅助,如烟尘飘动、天空云彩分布、导弹尾烟等。

 

maya中创建3D纹理时候场景会多出一个方块图标,可用于控制纹理的朝向和运动。

 
如果使用2D纹理的时候选择投影模式(纹理图标上右键:Create as projection),也可以忽略模型UVs将平面贴图应用于三维投影。 

贴图的投影方式有平面Planar、可调球形Spherical、圆柱体Cylindrical、圆球Ball、立方体Cubic等,由模型的外轮廓或者用户特殊的贴图需要进行更改。 

无论2D纹理还是3D纹理,投影模式如果在动画模型上使用,很容易发生纹理偏移,并且显示效果较难控制。

这里仅介绍2D贴图的UV映射。将模型的UVs进行分割缝合伸展移动,就是展UV的工作。不管采用何种初始UV映射,在UV编辑器中的操作效果都是一样的,这个由用户的习惯和技巧决定。Maya2015后新增的Unfold3D展UV插件,极大的提高了工作效率。*Unfold3D原是独立的外部模型UV展开软件,被Autodesk收购后成为maya的内置功能。展UV常有这样的规则:平均分布,无重叠面和反面。除了显示正反面(蓝色正面,红色反面),我们还可以在maya的UV 编辑器中查看UV的伸展情况:白色表示范围内贴图匹配图片尺寸(合理),红色表示范围内贴图将被拉伸(模糊),蓝色表示范围内贴图将被压缩(锐化)。

 

不过很多时候,我们可以根据细节要求,将模型上的UV进行不对等缩放,也可以在某些不需要在意的地方随意处理UV,甚至游戏中为了节省贴图容量而采用重叠使用的UV布线。大致上,除了平均分布,我们很多时候需要在意的是UV接缝--断开UVs区域的贴图连续性。UV接缝常分布在模型隐蔽处,例如人物头部模型的后脑中间,大腿模型的内侧中线等,这样做是为了减少后期贴图绘制时候的工作量,尽可能的减少接缝对模型贴图效果的不良影响。 

没有灯光我们是看不到三维场景中的模型的,之所以能在maya默认视图中看到模型的明暗,那是因为软件默认就提供了一个和摄像机同方向的平行光,这个默认灯光会在加入新的灯光后自动关闭,避免影响渲染结果。*如果渲染时完全不考虑默认灯光的影响,可以在渲染设置窗口的RenderOptions栏去掉EnableDefaultLight的勾选。模型的面是如何计算出光照的明暗效果呢,于是引入一个数学概念:法线。数学中的法线指的就是平面的垂直虚线,对于圆弧曲面是垂直于点切线的直线。在计算机图形技术中,除了面,每个顶点也具有法线向量,并且法线是以射线的几何概念存在。因此,Maya中,法线分为面法线和顶点法线两种,并且由射线的朝向来区分正反方向。三维软件中的灯光就是数学上的射线(光源点+发射的光线),当它无限延伸的一端接触到模型表面,会类似物理上光在平面上的吸收和反射,将模型表面照亮。

在视图菜单上,不勾选Lighting->TwoSidedLighting,场景中的模型反面(法线负方向)以黑色显示。我们可以通过这个设定来判断模型面的正反。 

模型面的正反不只影响建模命令的效果,还和一些材质的渲染效果、特效中粒子的碰撞有关。有别于现实的物理反射(法线始终垂直反射面),由于三维灯光是根据模型表面的法线方向来判断材质照明的,我们可以在软件中人为的改变法线朝向而“欺骗”灯光对物体表面的判断。因此Maya中对模型执行SoftenEdge(软化边)命令后,在材质和灯光的作用下模型会显示出柔和的过渡。创建一个基本多边形球体,执行MeshDisplay->HardenEdge(硬化边),我们会发现此时的模型棱角分明,不那么讨喜。事实上,这才是模型真正的初始法线形态,软件默认帮我们进行“美化”而已。*Maya2015及早期版本的HardenEdge命令在Polygons多边形模块的Normals菜单下。 

菜单Display->Polygon->FaceNormals/VertexNormals,显示模型的面和顶点法线。面法线是由组成它的点的空间分布决定,和顶点法线朝向无关;而一个点上有4根线段相连,所以有4条方向不同的顶点法线。执行SoftenEdge(软化边)后,会发现和点连接的所有线段的法线都统一了方向,这是多条顶点法线均值后的结果。此时模型表面也变得圆滑了很多。*Display->Polygon->Soft/HardEdges,显示模型的软硬边分布情况:虚线是软边,实线是硬边。


“软边”虽然能给模型效果增色,但是并非什么情况都适用:当面和面之间夹角不大于90度,“软边”会产生一种错误的亮部,模型失去转折处的细节。小于等于90度夹角的面,需要增加线来均摊顶点法线的夹角,至少保持两线以上。

maya可以选择模型局部线条进行软化,但不推荐使用更改法线工具自行调节,因为容易出现不正确的灯光效果。此外,还可以对多边形法线进行锁定以防止更改。*不小心使用VertexNormalEditTool的时候,会同时锁定法线(LockNormals),需要解锁法线(UnlockNormals)才能使用硬边和软边修正。游戏模型通常使用整体“软边”,当遇到需要锐利的转折,例如刀刃,通常的做法是从线条处分割模型,因为模型的边界边(BorderEdges)就是硬边。现在很多游戏引擎也可直接支持模型上的软硬边划分。*3dsMax中的SmoothingGroups(平滑组)相当于maya的SoftenEdge(软边)。


为了深入解释上述现象--模型法线对灯光和材质的影响,这里顺便提到两个技术概念:平面着色(FlatShading)和顶点着色(GouraudShading)。所谓着色,并不是我们通常所理解的贴图显示,而是模型各顶点色调的融合结果--也就是由材质色彩和灯光作用后得到的计算值,UV贴图只是后期的叠加辅助。平面着色时一个面上只有一种材质色彩,模型表面会呈现不同的纯色块,灯光的高亮点在模型上呈现出锐利的边界;顶点着色通过点之间的色彩线性插值,可以平滑多个面之间的色彩过渡,柔和灯光的强弱渐变,不过计算速度慢于平面着色。*平面着色和顶点着色的平滑效果对比,有点像多边形和工业曲面的区别。Maya视图看到的模型实时材质效果,属于顶点着色(Shading->SmoothShadeAll)。如果选择视图菜单Shading->FlatShadeALL,则是将全部可见模型转为平面着色显示。


对于模型自身来说,顶点法线是平面着色和顶点着色的切换关键:平行于面法线的顶点法线不产生插值,硬边模型实时效果采用平面着色;均值化(不平行于面法线)的顶点法线,通过线性插值平滑色彩,因此软边模型实时效果采用的是顶点着色。从以下图示可以看出“硬边(法线垂直面)”和“软边(法线均值化)”对照明的影响。


【总结】三维模型由这些要素构成:点线面,UVs,法线。对以上基础概念有了清晰认识之后,接下来材质灯光内容的学习将会很容易。


朱峰社区三维动画出炉 朱峰社区三维动画出炉

朱峰社区网页版
朱峰社区网页版(手机扫描-分享-添加到屏幕)


朱峰社区公众号
朱峰社区微信公众号(微信扫一扫-关注)

资源说明图文教程无法下载,只能观看图片和文字。
版权规则本站图文皆来自互联网共享资源,如涉及到版权请查看版权规则。本平台提供图文仅可用于个人学习,如用于商业请购买正版。您必须遵守的版权规则

未知用户

未知用户

1175370427@qq.com

1175370427@qq.com

VIP1年

说得很好
我好像在哪见过你 -1175370427@qq.com

赞0

踩0

18年3月8日

2005-2018 朱峰社区 版权所有 闽ICP备12017399号
2005-2018 ZhuFeng Community All Rights Reserved

VIP

朱峰社区微信公众号
手机app下载

回顶部

1.复制文本发给您的QQ好友或群、微信等;好友点击链接以后,转发就成功了。 2.如朋友点击您的链接,您需要需刷新一下才行;同一个好友仅能点击一次。