【仙剑五前传】中的一点场景渲染问题

来源:互联网 发布:js promise 编辑:程序博客网 时间:2024/05/16 13:48
      两周时间没来CSDN更新博客,业余时间主要花在新上市的《仙剑奇侠传五-前传》上了~   不可否认,仙剑系列作为国产单机游戏的第一品牌,当之无愧。尽管当年的仙剑五让很多人大为失望,不过相信通过这次的五前,相信大部分玩家会以新的眼光来看待仙剑五。确实,没有五前故事的铺垫,仙五当中太多地方让人一头雾水,也提不起兴趣。因此,真是打心眼里佩服北软的编剧们,不仅仅把五前这一代故事讲得无比精彩,也在一定程度上挽救了仙五。如果把仙五前传与仙五联系在一起的话,五代的仙剑也可以称得上仙剑历史上的一个里程碑了。

       好吧,具体游戏细节就不说了,喜欢仙剑、玩过仙五前传的相信都深有体会。不喜欢的可以直接无视上面的话,毕竟这里不是游戏论坛。。。。

       这里想讨论一下个人在体验仙剑五前传过程中遇到的场景渲染技术上的一些问题。当然,历代仙剑最大的卖点在于其感人的剧情、动听的音乐,而不是其引擎有多先进、画面有多逼真。但是出于对3D技术的兴趣,在二周目困难模式过程当中,也仔细留意了一下画面方面的细节,也发现了游戏在很多方面做得不够完美,大致列出以下几个方面(仅仅是个人的主观想法,如有不同意见,欢迎提出、指出):

       1. 法线贴图(Nomal Mapping)

       在仙剑五的宣传视频中,北软就在大肆地宣传其引擎方面的改进,尽管RenderWare在现在看来已经比较落后,但在北软的精心改进、优化下,仙剑五和前传能有这样的画面已经很难得了,甚至直逼采用了更先进引擎的古剑奇谭。在诸多宣传点当中,就包括了”法线贴图“的引入。法线贴图的原理很简单,纹理除了通常情况下认为的贴在模型表面的图片之外,还有多种其他用途,法线贴图就是其中之一。在这种贴图中,保存的并不是RGBA颜色值,而是法线。法线贴图的引入,大大提高了模型在像素级别上的表面凹凸细节,从而使场景更加逼真。一个模型表面可以使用多层纹理,除了表面颜色的纹理,还可以同时有法线贴图、光照图等等。

       (关于Normal Mapping,在后面的D3D11系列博客中我会详细讨论,欢迎关注。)

       但是,在玩游戏的过程,并没有感受到法线贴图带来的明显变化。甚至在很多地方,几乎可以直接断定根本没采用法线贴图。

       比下是仙五前传中”丹枫谷“场景的一张截图:

 

       在左边的图片中,当镜头旋转到一定角度时,瑕所观察的岩石壁上竟然出现了如此强烈的全反射!(瑕是谁?仙五前传的女一号。。。。)

       在右图的视角上,全反射消失。很明显,从右图中岩石壁上的纹理情况来看,这山的表面显然应该是很粗糙的,这也是该层的纹理图表达出来的信息吧。因此这与左边的全反射就相互矛盾了,说明这里仅仅是在山的模型表面贴上了一张图片,肯定没有使用到法线贴图。模型由于顶点数量的限制,使得表面比较“光滑”,从而造成全反射的效果。

 

       再看两张“雪石路”的截图:

 

       这里对比两个不同的视角,依然突显左边强烈的全反射效果,姑且认为没使用法线贴图吧。

       此外还有一点小奇怪,根据湖面、地面的全反射、以及镜头的角度,光线应该是从瑕对面斜射过来的。但是看瑕在地面上留下的影子,在正下方,按理说光线应该是从正上面射下,但是垂直观察地面确没有全反射。个人觉得,是不是有点矛盾?

 

       2. 湖面反射效果

       以下两张依然是“丹枫谷”的截图,同一个位置,不同的视角。根据瑕的观察方向,看下湖中靠近对岸的倒影:

 

       在旋转镜头到一定角度时,湖中的合影会有从左图到右图的突变。可以肯定湖中的倒影是事先做好的静态图,而不是实时地演算出来的。但是为何会有明显的突变,不清楚。

 

       3. Billboard技术、2D贴图模拟3D效果的过分使用

       还是丹枫谷的两张截图, 这次注意瑕身边的黄色的草:

 

       单从左图看,草还是很逼真的,看不出有什么异样。但是当镜头旋转到右图中的角度时,却大为不同。看出来了吧? 其实这里的草全部是用多个2D平面贴图(这里使用了3个)旋转到不同的角度来模拟3D效果的。熟悉3D技术的应该很明白,这种技术在3D渲染中很常见,使用2D图来模拟3D效果,可以大大地优化场景的渲染。但是,使用这种技术的一个很重要的前提,即要求避免从上往下的俯视。因为这种情况下,使用2D贴图的”欺骗“手段立刻就穿帮了。

       类似的还有Billboard技术,即通过使用一张2D贴图,在任意时刻使其总是正对着的镜头,从而给人以3D的错觉。因此也需要避免俯视的现象。

       一般来讲,这类技术大多在距离镜头比较远的地方使用,因为此时对细节等级(LOD)的要求很低,即使使用2D图来模拟3D,一般也识别不出来。

       但是在这个地方,一方面草离得很近,仔细观察还是可以看出来的;另一方面,草长在地上,肯定是被俯视的嘛。。这样让人一眼就看出其真实情况了,正如右图中所示。实际上,在仙剑五、仙五前传中,所有的树都是使用billboard技术渲染出来的。不信的话可以走到任意一棵树旁边,慢慢旋转镜头,会发现树其实是在相应地旋转。

 

       4. 镜头的控制

       如下两截图来自游戏中整个故事开始的地方:明州。

 

       左边是一张正常的图,在右边截图中,当镜头接近时,竟然直接进入马身体里面去了。。。可见,在个别地方,游戏的镜头控制还是存在一点点的缺陷。对于熟悉3D程序的人来说,这种现象再常见不过了,无非是镜头距离模型太近,位于近平面内的物体被剪裁掉而已。但站在玩家的角度来看,出现这种现象,是不是会有点影响游戏的代入感。。。。

       此外,还有一点是,有这张图为证,是不是说明游戏还有进一步优化的余地? 其实只要把模型的外表面渲染出来就行了,内表面渲染没有任何意义。但根据图中所示,我们可以看到马的内部,显然内、外表面都渲染了一遍。这马有这种情况,其他模型基本上也应该都是这种的吧。

 

       5. 阴影

       再看两张折剑山庄的截图,注意男一主角”夏侯瑾轩“右边的守卫正前方的阴影:

 

       对比很容易发现,左图中建筑的阴影比右图中同样的位置少了一大块。。。当人物在该位置附近移动时,左、右两图中的阴影会来回地突变。。。。同一个建筑的阴影,怎么会因为人物的移动而产生突变?根据我的猜测,这里面阴影的渲染不大可能是实时演算出来的吧(如果是实时演算,那岂不是算法有问题了。。。),说不定是事先制作好的阴影图。但为何会突变就不清楚了。。。

 

       还有以下图片,瑾轩站在同一个位置上:

 

       同样的位置,不同的角度,右图中当镜头旋转到当前角度时,会发现阴影区的地面出前全反射效果。可这是在阴影区啊,没有光线照射,为什么会出现一定角度下的全反射效果?不解。

 

       以上这些只是笔者在体验仙剑五前传过程中发现的一些略有缺陷的地方,顺便发表下看法。但瑕不掩瑜,说了这么多,并不是在抱怨游戏画面有多差,实际上,近几代仙剑的画面上的进步已经非常大了,足见研发商们的诚意,只是在一些技术细节方面还不太完美,还有很大的提升空间。当然,对于喜欢国产单机游戏的玩家来说,画面肯定不是最重要的,剧情才是王道。

 

       最后放出几张实际游戏截图:

      

                                                                                   仙竹林,一样的地图,完全不一样的迷宫体验

                             

 

                                                                                                          龙溟与凌波

                              

                                                                                                          谢大叔兵解

                              

                                                                                                             小兰表示强烈不满。。。。

                             

                                                                                                               天真的结萝

                            

                                                                                                     悲剧的姜承(姜世离)

                            

                                                                                                                  好萌的瑕

                           

                                                                                                                 。。。。。。

                            

                                                                                                         你猜,谁来了?

                           

                                                                                                      普通模式,一周目通关