![《策划培训课程-3D引擎的应用_[全稿]》_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc1.gif)
![《策划培训课程-3D引擎的应用_[全稿]》_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc2.gif)
![《策划培训课程-3D引擎的应用_[全稿]》_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc3.gif)
![《策划培训课程-3D引擎的应用_[全稿]》_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc4.gif)
![《策划培训课程-3D引擎的应用_[全稿]》_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc/66c96cbb-9007-4fcf-97d2-a2ecd0c04bdc5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、策划培训课之:3d引擎的应用主讲:黄宇航今天主要给大家讲的是3d引挚的结构跟应用,主耍会从3d引挚的结构跟应用讲起, 述有就是会把我们公司的3d引挚和其他的现在市场主流3d游戏的引挚之间会做一个横向 的比较,给人家分析一下为什么我们要这种实现方式而不用那种方式。我们的3d引挚现在 桝时给它定名叫做3darchitect (建筑师),z所以叫这个名字最主要的目的就是为了方便3d 那边使用,因为是数字3开头的,他们在做输出插件的时候第一个选择的就是这种类型的文 件名。那么,下边我们就开始-一來逐个看下。一、地表系统我们第一个要讲的是地表系统,地表系统包含了三个方面,即地形的构建、地表贴图、 还有就
2、是地图物件。首先我们來讲一下地形的构建,现在市场主流的游戏有两种构架方式,有-种它的地形 完全是由max输出,从max输出的可以做的相当复杂,虽然它面的数量是不可控的但是 他可以做得非常细致。还有一种就是在地图编辑器中牛成的,有点像我们的拼图软件,跟我 们的拼图编辑器所不同的是它是三维的而我们拼图走的是方形格,另一个与拼图不同的是这 个方形格的顶点冇一个高度而且这个高度可以上下浮动,但是它的左右位置还是固定的。这 是两种比较普遍的地形处理方法,卞血一种更为常见。对于我们來说在做这个3d引挚的时 候耍考虑到这两个东西的优势,max输出的优势是它对以做的够复杂,地图编辑器它编出 来地表的优势是可以
3、做地形改变,因为它的顶点分布相对比较规则,这样我们可以很容易的 做到地表的破坏,比如像坦克如果一个炮打过去可以把一个地形打的塌陷下去,或者我们在 做建筑模块的吋候像家庭建筑、城堡建筑我们可以在游戏里面给它提供这种地形平整以及地 形塌陷跟地形抬升这样的效果。我们的3d引擎结合了这两种的优点,这两种的优点它是 怎么个过程?我们首先从max里面输出一个复杂地形,就是先在max里面做一个非常复 杂的地形而且而可以非常光滑,然后我们再把它导到我们的地图编辑器里面,地图编辑器可 以根据这个max模型白动生成网格,这样就可以实现这种非常复杂的地形了。接下来给大家讲一下地表贴图部分。地表贴图部分也是有两种比较
4、常见的模式的,一种 是mu的模式,这种模式地表是由两层贴图构成的,比如说一块是草地,另一块是沙地, 然后通过草地和沙地两层贴图进行一定透明比例的混合就可以实现各种各样的草跟沙之间 非常自然的过渡,可以有非常随机的地图的感觉。还有一种也是比较传统的、比较早期的作 法这种作法相对比较复杂,它是用一张1024*1024的贴图或者是其他比例,我们1024*1024 这个比较典型的大小来举一个例子,假如它是8*8的格子并以一定的规律在分布,如下图:011/21/33/8全草半草黑的比如说一块草地,那么它在笫i格是全的,在笫二格就是半块草地,那么第三格就是黑的, 我们这个称z为一、二分z、三分z和八分z三
5、。这里采用的是两块贴图互相叠加的方 式,它的优势在草地跟沙地做边缘过度的时候系统消耗比较小,因为它没有用到alpha层混 合,只是直接拿两块贴图做颜色的叠加,刚好的是黑色的部分跟亮色的部分产生叠加形成了 一个过渡层。人家可以很明显的看出这两种贴图方式的优缺点,刚才讲的第二种贴图方式它 为了实现过渡每一种贴图至少得需要8张,如果我们采用mu的这种方式只需要一张就够 了,要是两层叠加的话它只需要两张贴图就行了,但是第二种这边如果两层叠加的话至少需 要16张贴图,也就是mu的方式它的贴图会减少很多,贴图量的减少就意味着我们的地表 会更加丰富,町以使用更多的贴图,我们的地表也会更加的丰富而且机器跑的会
6、更快一些效 率会更高一些。还有一点就mu的这种地表生成方式就是两层叠加的方式,它可以很容易 的实现地表的随机分布,比如说刚刚我们举的例了草地跟沙地的可以以非常随机的比例混 合。所以使用mu的方式我们完全可以做随机地图,这个地图比如说我们进入一个迷宫, 这个迷宫的地表可以是随机牛成的、以前没有人见过的,就是每次进入这个迷宫它的地表都 不一样。这是它的地两种地表贴图的方式,我们采用的是mu的方式,就是两层叠加的方 式。最后一个就是地形地图物件了。地图物件只是简单的在地图里面做物件的放置,具体的 地图物件我们讲到动画的时候可以详细的说说。在地图里面对地图物件提供的支持只是做简 单的位移、旋转、缩放等
7、,只是做这方血的支持。地图物件都是有脚本支持的,支持非常多 的脚本包插它的材质脚本,就是说这个物件可能可以实现比如是反光的或者说受风力的影响 就是说他会随风摇动。这个下边我们也会专门来讲的。二、天气系统接著我们一起來看看天气系统。我们这个引擎它包含的因素很多,比如说太阳、月亮、 星空、云层,这些基本的因索都有。它能够实现时间的变化,太阳的东升西落和月亮的阴晴 圆缺,比如给它设正月i五那么月亮就是圆的。就是说它可以实现的这么清晰,云层也可以 实现比如可以模拟睛朗的天空,也可以模拟多云的天空,这些都可以做到,而且还可以做到 晴朗天空跟多云天空z间的变化,它都有完整的编辑器来提供这方面的编辑。还有它
8、的星空 我一直在想,甚至我们可以把真正的星空分布图做上去,就是说看到北斗星就知道哪边是 北方,这都是可行的但是居然到现在还没有,这个功能扩展起并不怵1难。还有一个属于天气系统的就是雾。在3d里而雾的应用主要是用来配合做镜头裁剪的, 除了用镜头裁剪一个游戏优化做的好不好就要看它的视野能够看的多远,如果同样的机器设 备视野看的非常远那就说明它的优化做得相当好。雾主要是为了弥补机器帧率的不足,如果 把镜头的可视的最远点设的近-点,那么帧率就可以提升上去,这是必须的,每一个3d引 挚里面只耍不是固定的45度视角都会用到雾,他都是为了配合镜头裁剪,耍不然会感觉非 常突儿,远处的东西突然间没了,雾是用来做
9、这个过渡用的。雾的参数非常简单,只是一个 颜色的设置,比如说进入魔法大陆的时候它的雾可能是蓝色的或者可能是紫色的,就给人一 种比较虚幻的感觉。还有就是环境光,环境光的概念我们待会会结合光源系统跟大家讲一下。再有就是天空颜色的变化。天空颜色的变化主要也是跟时间配合在一起,比如说白天的 时候或者屮午的时候天空可能就是蓝的,到了傍晚的时候天空可能因为有晚霞而有点偏红或 者有点偏黄这样感觉,我们都可以把它归结到天气系统里面进行编辑。现在的天气主耍有三种,一种是晴天,另一种就是雨,还有一种是雪,这是三种已经实 现的天气系统,现在要说的就是我们正在考虑要不要给天气系统加入风力影响的这种因素? 也就是说风往
10、什么方向刮雪也往什么方向飘。要是加入这种因索的话,玩家会觉得这个卅:界 变得更加真实,当然如果通过服务器交互的话我们就很容易的实现同步整个壯界,比如说福 州下雨了,我们还真能让游戏的某张地图下雨,这得跟服务器配合起來。三、动画关于动曲,现在总结一下3d的引挚或者那些游戏,一般的动也都有下面这几种:刚体 动画,柔体动i出i乂称为骨骼动画,还有一种morph就是变形动i出i,如果把布料运算再加上 去就多了一种叫做布料运算的东西。我们现在这个引挚支持什么动画呢?支持刚体动画和柔 体动血,只要我们稍加变化就可以很容易的支持morph动価,还冇一种就是布料运算,布 料运算是类似信仰征服里面披风的概念,它
11、能够根据人运动的轨迹、根据风向或者 类似的其他因素算出这个布料的动作,这部分的东西我们也正在做,它当然是在原来的c3 引擎的棊础上做的,我相信只要c3那边实现了我们很快就能移植到我们全3d的引擎里来。刚体动画它是跟以前的2.5d的引挚有所区别,原来的2.5d引挚没有支持任何的刚体动 画。刚体动画其实是一种非常省的动画,比如说一棵树并没有骨骼,但是它可以以它的自心 为屮心做左右的摇摆或者说花草町以做左右的摇摆,草和花受风力影响的图像表现就是利川 刚体的动画來算出来的,这种东西因为它不需要骨骼非常省而且可以很容易的用脚本控制。 我们现在的刚体动画棊木都是脚木动画,以后的扩展就是刚体动画,除了用脚木
12、控制以外还 会从max里输出,因为max里面白己也有一套比较好的刚体动画控制器,我们会往max 的刚体控制器靠拢,到时候完全从max里血输出动画,这样3d在调动作的时候会更加自 然一点。骨骼动画跟我们原来的c3的引挚比较起来相差非常人,它主要是去掉了原来的虚拟体 概念,來虚拟的概念己经不再存在了。做过数据的人应该感受比较深,经常碰到说3d里面 某个虚拟体忘了做或者某个虚拟体不见了,它会报错,现在我们已经把这个虚拟体的概念去 掉,现在直接记录的是他的骨骼索引,比如说一个人是山若干个骨骼构成的,我们给每根骨 骼一个编号,武器要绑在骨骼上面那么我们只记住武器绑在笫儿根骨骼上以及它跟这根骨骼 的相对位
13、置是多少,我们只记住了这些东西就行了。这就意味着我们也可以像天堂2里 面一样,人物受到弓箭攻击的时候身上会带箭支,我们现在也完全可以做这些东西,只要在 身上随机挑一-根骨骼出来把箭支绑上去就可以了,就是中了弓箭以后身上会带有箭支这种东 西都町以做出來。还冇就是它的part (部分)分的更加仔细了,现在对我们來说c3只支持 两级的柔体动画,比如一个人拉着一把弓,人是骨骼动画,弓也是骨骼变化因为它也会变形, 只支持两级的,现在理论上已经没有两级支持级别的限制了,像坦克里而我们就已经做到 三级的柔体动画,炮身是一级,炮塔是一级,炮管又是另外一级。它的part分得更细了, 一个调整了它的数据结构,它的
14、数据结构比较合理,还有一个就是因为它的数据文件比较小, 现在只记住骨骼的运动,这个数量跟原來的动作比起來数量级至少两三倍,就是说现在的动 作就只有原来的三分z大小了,这就意味这可以支持更细的part的,比如完全可以像天 堂2一样把人的头发分成三个部分,头顶是一个部分,后在的辫了是一个部分,前而的刘 海是一个部分,这个现在我们一样可以做得到。这样我们就可以实现非常丰富的发型替换 而不用把整个发型替换掉。贴图动画的支持,贴图动画一部分是用于做特效,还有一部分就是我们可以看mu上 看得贴图动画应运。mu上除了本身铠甲有这个贴图以外它外而还有一层贴图就是流动的光 彩,外面有一层光会流动,那个用的就是第
15、二层贴图动曲的技术。我们已经给引擎加了贴 图动画的支持,完全可以在人的身上再混合成一层光,这个己经实现了。还有一个就是特效的绑定,这个除了武器直接绑定在骨骼上面以外,我们的特效也已经 改变了绑定方式,也是变成直接绑定在骨骼上血,这样可以绑的非常细,比如完全可以指定 这个特效光环是在人的头上发的光或者者是在手腕上发的光,这些都町以指定的非常仔细。四、特效的系统特效系统跟原來的c3那套引奉的特效系统的差别是相当大的,原來那个系统是山策划 提出需求要做什么样的特效,然后3d那边把特效资源做出来,再由策划配ini把这个特 效应用到游戏里而去。现在不一样了,现在的显得更加灵活,就是说只要3d那边提供素材
16、, 然后所有的特效轨迹或者说特效的粒子的运算公式完全可以由我们策划h己來指定。现在的特效总共有三个部分构成:一个是公告栏技术來做的,就是billboardo billboard是一个什么东西?它是一个面片或 者对我们來说可以是一张图片,这张图片有一个特殊的地方就是它的正面一定朝着摄像头, 就是不管怎么转看到的都是它的正而。billboad可以作为一个特效应用到特效系统里而去, 它是属于非常节省的特效,可以用它来做一些烟像炮火发出来的烟和光等都可以用billboad 来做,而且实际上的效果蛮不错的。billboad有口己的一套物理模型来支持它,其物理模型 主要提供了它的运动模型,就是它的位置、移
17、动速度、移动加速度,还有它的变形模型可以 实现缩放、淡入淡岀效果,还可以捉供各种的alpha混合方式,可以指定这个特效受不受光 照的影响等,已经是非常细的。当然它也可以支持纹理动画。第二个就是粒了系统。粒了系统其实是一个粒了发射器的概念,粒了发射击器可以简单 的理解为一个喷水的东西可以向上射击火花或者喷雾等,可以通过控制它的喷射的速度、喷 射角的角度、喷射角的分散情况等各种各样的参数來实现动画,比如说可以实现像烟火这些 个体比鮫分散的东西,述有花瓣雨等等。粒子系统有一个最大的优点在于每次看到的特效都 不一样,完全随机的,只是人概的符合这个公式其实里面是做了很多随机值的,这样每次看 到都不一-样
18、的效果,其至可以做到像一个仙女棒在动的时候后面有一片的萤光或者说魔法粉 跟随着她动,就是实现粒子拖尾的这种效果,这个现在我们已经支持了。还有一个就是mash动画。mash动画可以实现立体感非常强的东西,比如一个球血或者 半圆形的魔法盾挡在人物面前,它町能是用气來构成的,就是可以有一个聚气的动画,mash 动呦可以用来做这样的东西。mash动曲可以实现立体感非常强的特效效果。虽然上边讲的三个特效系统可以实现我们需要的人部分的特效效果,但是我现在正在考 虑是不是要兼容原来c3的完全由max输出的特效模式?因为max它的粒子放射器对粒 了的支持远远要超过我们现冇的系统,要比现在的系统复杂的多,而r他
19、冇一个好处就是粒 子的运动轨迹不需要在运行的时候算,所以他更省、更高效一点。但是唯一的遗憾就是它没 有办法实现随机的效果,每次放出來魔法都是完全一模一样的。五、脚本系统脚本系统目前來说指的是地图物件的脚本,还有一个是摄像头的脚本,我们称之为相机 脚本。地图物件的脚木,就像我们刚才所说的这个地图物件是否要受到风的影响、是否要产镜 面反射、是否受光照的影响、是否产生碰撞,这些东四都是通过地图脚木来控制的,它在地 图编辑器里面提供了地图脚木的修改跟编辑的方式,这些东西都是有的。和机脚本是用來做片头动画的,比如说片头换了一张地图要做相机推动,这个东四就是 用相机脚本来做的。我们再说一个就是光脚木。光脚
20、木主要是用来做光的明暗变化,比如一盏路灯我们在白 天的时候要让它的光关掉,在晚上的时候要把光打开,这是用光的脚本來做的。当然我们刚才讲的这些脚本述远远不够,它们没有办法实现牧场里面的地图物件和 角色z间比较丰富的互动,佔计还得在上面进行扩充,当然这种扩冲是跟3d引挚无关的扩 充,更多的是处在逻辑层次上面,它跟3d图形是无关的。六、光影的应用光影的应用在3d引挚里面或者在所有的3d底层里血,所有的光一般都分为儿种,即 环境光、点光源、方向光、平行光。环境光指的是散射光,也就是说像我们阴天的时候看不到太阳,但是天空照样是亮的, 这是因为光经过云层的折射以后变成从四面八方过來的光,这样的光是不规则的
21、。所以一般 散射光就称z为环境光。点光源就像我们普通的白炽灯,它就是一个点,一旦点亮它周围的球形的范围里面都会 被照亮而且有它自己的衰减。它照到什么地方,照到多远以后光线会变暗,有一个衰减范围 的问题。方向光就像探照灯一样的是冇方向性的而且它冇一个扩散性的说法,就像手电筒一样 照的地方越远产生的光圈就会越大,所照范围越大,所照的光线也会变弱。就是说方向光模 拟的是手电筒的这种类型的光。平行光模拟的是太阳光。在我们地图系统里而这四种光他都是支持的。环境光控制主要是山刚才所说的天空系统 来控制的,它跟天气是相关的,下雨的时候或者多云的时候的环境光就会变暗,晴天的时候 他的环境光就会变亮,而且环境光
22、可以选择不同的颜色,比如当进入一个雾比较浓的山谷时 候完全可以把环境光设成偏蓝色,这样有更多魔法的感觉。点光源可以用來做路灯等诸如此 类。述有一个就是方向光,方向光的应用相对会少一些,比如说做类似盟军敢死队这样 的游戏的时候当然可以拿它来做探照灯,但是在我们的arpg游戏里而它的作用并不是太 大,很少有人用到方向光的。现在是用平行光來模拟真实的太阳光,其实很奇怪的就是天 堂2里边的地表不受光照的影响,为什么它能够能不受光照影响还能做出比较漂亮比较舒 服的感觉?我一直在考虑这个问题,大家下去课下也可以去研究一下。还有一个就是阴影。在所有的3d引挚里面光和影了是分开的,跟我们现实的生活是不 一样的
23、。现实的牛活没有光的地方就是彩子,但是在所有的3d引挚里而没办法算得这么仔 细,除非它是逐彖素去看的,不过这个代价是非常大的,在max里面渲染的吋候才能用到 这种技术,所以这里的阴影基本是模拟出來的。阴影的技术非常多而h阴影一直是3d图形 学上一个难题,具体的可以分为假阴影、硬阴影、软阴影、体积阴影,这个是从应川上边划 分的。假阴影冇很多的实现方式,敲简单的像我们的征服里面人的脚下顶一块黑色的圈, 这个做alpha过渡的黑色圈,把它当成阴彩,这是最基木的假阴影.假阴影这边需要值得一 提是光照贴图,光照贴图是什么呢?光照贴图大多数情况下模拟的是地图物件在地图上的投 影,比如说太阳光的角度有个角度
24、那么地面上就相应的要计算出这个阴影,这个阴影不可 能即时生成,即时生成的只有像doom3这种种游戏才有可能,第一视角的、对硬件和对 要求比较高的游戏才冇可能细致的计算阴影,否则我们只能通过光照贴图这种来做。光照贴 图的意思就是说在原来的地表上再贴上一层贴图,这种贴图的就是作为影子的。这种贴图有 很多实现方法,比如他在编辑器里血提供画笔让编辑者自己來画这个阴影,自然这是最土的 做法了。现在我们已经做到的让它口动生成,就是只耍指定太阳光的照射方向就能生成这张 地图一系列的光照贴图,而且我目前计划实现要做多套的光照贴图,根据太阳光的变化我们 每过一个小时换一套光照贴图,这样就可以实现非常真实的时间变
25、化,就是说太阳角度变化 了那么影子也会变化。这种光照贴图因为它用的是非常小的贴图,是拉伸过的,因为它只是 表示一个影了而不需要非常精细的像素。这种拉伸过的贴图系统开销相当小,只要我们把数 据组织好,或者通过服务器同步,或者通过时间同步把它的贴图给换掉就可以了。第二个就是硬阴影。在我们的征服里面打开真实阴影的吋候看到的就是硬阴影。为 什么称他为破阴影呢?因为它的边缘过渡非常生锁,它其实是把人的模型压扁了,然后再把 人的模型压扁涂黑,在地上画一层。这就是硬阴影的实现,它的等于画了两遍,所以其开销 就是画两遍。软阴影是在硬阴影的基础上进行改进,就是在硬阴影的边缘做了一层过渡,这样让影了 看起來更白然
26、一些。我们上面所说到的阴影都存在的一些问题,就是说这个影子没办法实现随着地面模型的 改变而改变,比如人走到一堵墙的边上,那么人的影了不可能会折一下、影了会折掉,因为 它都是假的,都是投影在地面上,不可能实现那种真实的影子。要实现真实的影子,目前我 能够想到的解决方案就是体积阴影,体积阴影需要硬件的支持,并不是说每块显斤都能做体 积阴影。冇一个比较好的例了就是天堂2做的不是体积阴影而是介于软唤阴影z间的一 种处理方法,到现在还是不太清楚它到底是怎么做的。航海世纪用的是体积阴影,所以 它対阴影的限制要求非常高,在设置里血只显示儿个人的阴影,为什么做这个选择?就是这 个东酋的消耗实在是太人了。我们d前阴彩的解决方案是倾向于做软阴彩,如果我们能够找 到天堂2的阴影实现方法到吋候再把它换过来就行了。体积阴影我们可以去检査玩家 的显卡冇没冇做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025汽车交易合同范本
- 2025版合同协议模板
- 路桥施工公司推土机租赁合同
- 木材板材购销合同范本
- 个人借款还款合同范本
- 2025北京办公室租赁合同范本
- 2025合伙型投资基金合同范本
- 广播对接协议书范本
- 产权移交协议书范本
- 2025年03月浙江杭州市萧山区事业单位招录50人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 医保业务培训大纲
- 2025年中国短圆柱滚子轴承市场调查研究报告
- 教师的情绪管理课件
- 湖北省十一校2024-2025学年高三第二次联考数学试卷(解析版)
- 英语-华大新高考联盟2025届高三3月教学质量测评试题+答案
- 《手工制作》课件-幼儿园挂饰
- 【初中地理】西亚+课件-2024-2025学年人教版地理七年级下册
- 鼓励员工发现安全隐患的奖励制度
- 苏教版一年级下册数学全册教学设计(配2025年春新版教材)
- 【特易资讯】2025中国二手车行业出口分析及各国进口政策影响白皮书
- (一诊)2025年兰州市高三诊断考试生物试卷(含官方答案)
评论
0/150
提交评论