欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > DOC文档下载  

    《MU渲染技术研究》doc版.doc

    • 资源ID:17563953       资源大小:262.51KB        全文页数:6页
    • 资源格式: DOC        下载积分:12积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《MU渲染技术研究》doc版.doc

    MU渲染技术研究MU的效果几乎是目前斜视角网游中最炫的。而且这个游戏的体积非常小,最初版本的奇迹只有几十M(现在官方最新版有150多M),十分便于下载安装。一、地表贴图其实就一张MU的地形,使用贴图非常简洁、节省,“其实就一张”。以“勇者大陆”的城镇为例,基本上地表贴图只有1张,如图1所示:图1我用红色粗线勾出来的方块,好好观察就会发现这些方块内的贴图是同一个。怎么看出来的呢?我用绿色短线标出来的地方,是地表上的3个疙瘩,每个方块内都有这样的3个疙瘩。这可以说明,他的地表最基本的贴图是同一张。如此重复的使用同一张,难道不会使得画面太单调吗?为了解决这个问题,MU使用了光影、草丛(可以称之为地表装饰物)、多层纹理Alpha混合等技术,来营造一种多样的地表的“假象”,效果非常好,一方面使得整个游戏体积非常小,另一方面又不影响画面的美观。光影、草丛(地表装饰物)、多层纹理Alpha混合,这3样技术,用的最多的是光影,用的最少的是多层纹理Alpha混合(因此说MU的地表多样性,并不是依靠多层纹理Alpha混合来实现的)。无论在城镇、野外,都用到了光影,但只有在野外才用到了草丛。从下图(图2)可以看出,从1到6的方格,虽然使用的同一张贴图,但由于各处光影(明暗的分布)不同,使得画面看上去并不十分单调。图2但在野外,当草丛覆盖了地表的时候,玩家只能通过密密麻麻的草叶的空隙看到一点地表,地表上的贴图当然就不那么重要了,当然就可以无所忌惮的使用同一张贴图了。而且草丛在不断的“随风”摇摆,视觉上更加没有单调的感觉了。如图3所示图3下面我们去海底看看,如图4,看到那些颗粒分明的地表了吗,其实也是重复的使用同一张贴图,但是加上不均匀分布的蓝色光影以及动态的波纹光影,整个海底并不显得十分单调,更别说还有基于粒子系统和Billboard的鱼群,使得整个海底十分生动。图4我们来算一下。目前,MU共有“勇者大陆”、“仙踪林”、“冰风谷”、“地下城”、“失落之塔”、“亚特兰蒂斯”、“死亡沙漠”、“天空之城”8个大关卡,假设每个关卡都有城镇和野外之分,那么分别需要1张城镇地表贴图、1张野外地表贴图。这就是8*2=16张贴图。即便加上装饰用的多层贴图,这个数字也不会膨胀太大。这16张贴图如果是256*256的JPG的话,估计每张也就是几十KB大小,以50K来算,就是16*50=800K,还不到1M。就算加上更多的用于多层纹理Alpha混合的贴图,这个数字翻上5倍了不起了吧,那也才5M左右而已。地形贴图只有5M的资源。这为其他资源腾出了很多空间。二、地表的光影渲染既然光影这么重要,MU是怎么在单一的地表上渲染光影的呢?首先,MU的地形是很有可能不使用共享顶点的,也就是不需要Index Buffer。这从图1中就可以看出,红色方块内的贴图,是完全一样的,没有首尾相接。这样做有它的好处,主要是在处理顶点的纹理坐标上,可以少很多伤脑筋的事情,因为你不用担心改变了方块某个角的顶点数据会影响到相邻方块的相应顶点,也便于让两个相邻方块使用不同的贴图。Quake3的场景就是不共享顶点的。假设MU地形顶点的格式如下:struct TerrainVertexfloat x, y, z; / positionDWORD diffuse; / need or not?float tu, tv; / texture coordinatesfloat lu, lv; / lightmap coordinates;这个结构里面,文理坐标只有2组:一层基本纹理,一层光照贴图。那么在地表需要过渡的地方,需要多层纹理Alpha混合的,这怎么办?我假设MU是在载入关卡的时候,把所有需要多层纹理Alpha混合的方块都预先渲染到一个固定的贴图里面去了,渲染的时候,这就相当于另一种地表贴图(非基本的地表贴图,比较罕见),用在tu、tv上,这就大大减少了TextureStage的数目。一个多层纹理Alpha混合需要3个TextureStage(底层纹理、Alpha图、上层纹理),如果使用多层纹理Alpha混合的话,相应的顶点就要4组纹理,结构如下:struct TerrainVertex / 支持多层纹理Alpha混合的顶点结构float x, y, z; / positionDWORD diffuse; / need or not?float bu, bv; / bottom texture coordinates, the first texture stagefloat au, av; / alpha map texture coordinates, the second texture stagefloat uu, uv; / up texture coordinates, the third texture stagefloat lu, lv; / light map coordinates, the fourth texture stage;但可不是所有的方块都需要多层纹理Alpha混合,绝大部分方块都不需要,所以顶点结构变成这样的话就未免太浪费了。因此还是应该使用只有两组纹理坐标的顶点结构。至于光照图,有可能是有多张光照图,每个方块都对应一张光照图,但一张光照图可以对应多个方块。每个方块也不见得使用整张光照图,可能只使用光照图的一部分(一个矩形区域,可能还要旋转,做纹理变换)。这反映在纹理坐标上就是,lu、lv可能会取任意值,不一定限定为0或1,可能是0和1之间的数值,也可能是0和1区间以外的数值。光照图和各顶点的纹理坐标都应该是在制作游戏时,由光影渲染程序计算好,存在导出的地图文件中。tu、tv和lu、lv不同,他规规矩矩的对应正方形的地表贴图的四个角,所以只应该取0和1。每一个方块都对应一张光照图,那会不会让光照图泛滥起来?前面说一个关卡的基本地表贴图只有2个,大大节省了空间,如果这里的光照图泛滥起来的话,就把这个节省空间的努力给抵消了。我想应该不用太担心,Quake3的关卡就是这样的,每一个Face(也就是渲染用的Polygon,是Triangle Fan)都对应一张光照图(使用这张光照图的全部或一部分),一张光照图为多个Face共用,这样下来光照图也不是很多,Quake3的第一个关卡就只有9张光照图,每张都是128*128*24的。如果实在不行的话,可以考虑整个关卡使用一张大光照图,把这个光照图延伸,平铺在整个关卡的地表上。不过我担心这样会使得明暗边界过于模糊。顺便说一下下面这幅截图(图5)。整个区域都覆盖着草丛,但草丛上也有不均匀的明暗分布。上面说的阴影只对地表贴图起作用,草丛是附加的Billboard,基本上跟地表是垂直的,那么草丛上的阴影是哪来的?我觉得有这样几种可能:1、那是一种错觉,位于阴影区域的草丛本身整个都是暗的,本来草从的颜色就不是很亮丽,所以阴影以外的草丛跟阴影内的草丛对比不是很扎眼;2、MU有一种分层渲染机制,首先是地表层(包括地表和草丛),然后是障碍物层(包括建筑、树木、大岩石、海底的珊瑚礁等,人物也在这一层),然后是魔法层(打怪时的魔法、随处飘舞的蝴蝶、海底的群鱼)。这些层次的划分只是相对渲染顺序而言,并不意味着先渲染的对象一定位于后渲染的对象的下面,遮挡关系仍然是由深度缓冲决定的。那么野外的阴影很有可能是在地表层渲染完毕、障碍物层渲染尚未开试时,渲染的一种类似Overlay一样的面片,一定会写入成功的且不影响深度缓冲(关闭深度缓冲测试、禁止写深度缓冲)。然后渲染障碍物层时,再打开深度缓冲。由于人物是在障碍物层,自然不受阴影面片的影响,这就解释了为什么图5中的人物,其下半身已经位于阴影区域但却没有受到阴影的影响。图5如果是第2种情况的话,那就再次推翻了上面定义的地形顶点的结构:它应该只需要一组纹理坐标!因为阴影(光照图)完全可以在地表层渲染完了以后,以2D Overlay的方式渲染在地表层上。这是有好处的。把阴影(光影)的渲染从地形顶点的纹理坐标中解放出来,就可以很方便的把阴影做成动态的(比如缓缓流动的阴影,以模拟流云在地面的投影),可以动态的添加阴影(比如一个爆炸或魔法产生的临时光照,把周围邻近的地表照亮)。 这也是有坏处的,那就是我们最好只用斜视角,如果成了FPS那样的自由视角的话,可能效果就不对了。上面所说的阴影,在MU中不一定出现在背光处(你能说出图5的阴影是哪个山坡的背光面吗?说它是云彩在地面的投影更合理些),它的主要作用是丰富原本单调的地面贴图效果,而不是模拟大自然的光照。至于建筑物、人物的影子,那才是为了增加真实感而存在的。三、建筑物的光影建筑物、人物的影子,都是水平的面片,一点不打折,所以人物的影子经常插到凸起的山坡里了。这里只说被火把、魔法照亮墙壁、地板什么的。在野外,可能是我上面说的那种做法,但在某些“室内”,建筑物被照亮是另一种做法,如果它是属于障碍物层,显然就不能用上面提及的办法临时照亮了。MU是把建筑分成很多部件,某个部件一但位于火把或魔法影响圈内,就整体的被照亮。这样的效果,使得这些被照亮的区域显得很扎眼,这是MU取巧的地方。见图6所示图6类似暗黑,MU的人物周围也有一圈被照亮的范围。地表被照亮还好办,可以使用前面说的在地表层渲染完毕后用面片(Overlay)的方式。但是墙壁上的光影就要另外处理了。据说Quake3的墙壁被照亮也是临时贴面片。MU的方式应该是这样,图中的墙壁并不是一个整体,而是一段一段构成的,渲染的时候也是挨个来的。当人物走近墙壁的时候,临近墙壁的那些段落就加高光显示自己(修改顶点颜色,或者使用一个diffuse较亮的material,也许会简单些),以表示它是被照亮的。由于没有用贴图面片,所以只能是整个段落都亮了,所以你看图6中的墙壁,暗的跟亮的墙壁之间出现了明显的接缝。MU的渲染技术,就先说到这里。欢迎各路高手指教小弟则个!MSN:Dolahamhotmail.com

    注意事项

    本文(《MU渲染技术研究》doc版.doc)为本站会员(re****8)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!