不过,真正让我惊艳的,还是bio5。日本人对于各种高端图形技术已经运用得相当成熟,整部游戏,完全的实时渲染,让人感受到一部大片的视觉享受。其对技术的熟练程度,当吾辈还在摸索shadowmap精度问题,为到底是psm还是vsm或是csm好争执的时候,他们早已可以将这些技术整合完成,并已经用于艺术表现。
传统的局部光照diffuse + specular, 效果比较单一,不受周围环境影响,给人的感受就是,单个物体看着还行,复杂的场景渲染就会觉得有点假。真实世界中的全局光照,是不会出现LdotN的背面那么黑的情况。因为大量的光线在散射后,基本上不会出现“绝对黑”,仅仅一个ambient是无法模拟出来的,这也是为什么各种GI渲染的效果如此逼真的原因。
大致地总结了一下,为了表现更生动,需要重点关注的是人物头部,以及光照渲染,其他的可参照现有技术:
角色头部相关技术
-------------------------
1. 丰富的面部表情,通过morph网格变形实现,需要做一个编辑器,供美术调整面部顶点,并记录下来,供后期VS混合时使用。
2. 活动的头部,通过控制颈部的骨骼,限制一定的活动范围,达到“注视”目标的效果。(国外的游戏很早就开始关注的到这个细节,特别是一些恐怖和解谜的游戏,可怜我国的单机游戏,血狮做完就直接大跃进到MMO)
3. 活动的眼球, 眨动的眼皮。WOW的实现是,眼眶是固定的模型,眼睛是一个片,可以左中右三方向随机固定运动,至于眨眼,只是随机时间内短暂出现一个皮肤色的片,暂时挡住眼球部位,实现瞬间的眨眼效果。这样的细节程度,可以满足WOW这种近境渲染不多的游戏;对于生化五这种注重人物表现的游戏,通常的实现应该是,眼眶的顶点可活动,随时时间播放“合拢”动画,达到眨眼效果,也可以实现各种“瞪眼”和“眯眼”的效果。而眼球,一个半圆的球面,通过一根骨骼控制,同头部实现。
光照相关技术
-------------------------
2. 3S(subsurface scattering),次表面散射是指光线照射到物体后,进入物体内部,经过在物体内的散射从物体表面的其他顶点/像素离开物体的现象。在透明/半透明的材质上,这种效果比较明显,比如说是皮肤,玉等等。怎么理解?请把手张开,挡住太阳,然后观察这只手。可以说这种效果是比较难以模拟的,在没有复杂的预计算前提下,很难达到接近物理真实的。这里通过在ps中拿到已经projection后的z,即可以简单的理解为散射的一个参数,通过一些非物理的计算,控制住其散射的比例,以达到柔和的效果。
3. rim lighting,皮肤边缘上的汗毛和毛孔能捕捉光线,当光源正对着摄像机时,你可以观察到这种效果。这里可以通过1 - VdotN来达到这个目的,为了得到更好的边缘,最好将oneMinusVdotN再乘以自己一次。是的,因为是VdotN,这种边缘模拟实现只在高镶嵌的模型上效果最好,对于低模,相对效果要差一点。