对于本世代主机的3D游戏图形,用户所期待的,不仅是渲染(Rendering)分辨率和纹理(Texutre)分辨率的提高,还有因为硬件性能提高也要有新的视觉体验。以此目标实现[本世代机上的新视觉体验]的就是这款基于PS3和XBox360开发的动作游戏[索尼克世界大冒险(Sonic World Adventure)],(后面简称索尼克WA)。
要说起[索尼克]系列,一直都是以游戏趣味为主的作品。但是在本作中,加入了在今后本世代游戏机3D图形的新标准和技术的[实时全局照明(Realtime Global Illumination)](后面简称实时GI), 所以集中了很高的关注度。
渲染分辨率上,PS3版和Xbox360版都把880x720点作为基础分辨率,在显示时采用了缩放(Scaling)来扩大的方式。还有,Xbox360版和PS3版的抗锯齿(anti-aliasing)都应用了2x模式的MSAA(MultiSample Anti-Aliasing)。根据与视点的距离使显示对象的多边形递减的LOD(Level Of Detail)系统是怎样进行实现的呢?
【千里马肝注:两大主机都是以720P和1080P为高清卖点,这里为什么选880x720的分辨率?880/720=1.22222...好多2,即不是16/9=1.77777...也不是4/3=1.33333...,唯一能想到的理由是节省带宽,但是选880的原因还是不清楚,非要说一个理由的话就是2了……】
把这张图用简单案例说明的话,就是将角色用包围自己的8个环境光做Lighting。虽然实现上不同,但概念上和Valve在[Half-Life2]上采用了[环境立方体](Ambient Cube),以及[辐射照度体] (Irradiance Volume)可以说是很接近的。在[Half-Life2]中,根据角色的平均体积,用120cmW X 120cmD X 240cmH的大小把空间分割开,对于每一个区域(Volume),加入怎样的光(光是否出现),都要用离线提前计算出数据表。实时渲染时,每个角色要参考所在位置的Volume,取得进入的哪个Volume的6方向的光,把这些作为拥有方向的环境光来处理。想法和[索尼克WA]的light field很接近。
桥本先生[一说到关于GI的话,能习惯处理镜面反射的信息就好了。现在我们的GI技术中要处理的只是扩散反射。关于使用球谐波函数之类,或是在场景内物体对象面单位加入光进入的信息,我想一定会做出非常漂亮的光泽。手动的在空间里配置多个立方图的方法虽然也有,但不想让艺术家在这里手动设定,而是考虑作出全自动生成数据的系统。而艺术家在这上面有调整的余地最好。作为相关的话,虽然也打算做出接近最近流行着的[Radiosity Normal Mapping]概念的效果。但在开发时期的情况中完全省略了。感觉我们的Lighting计算系统的实现比较容易,我想不久的将来就会做。之后是实现动态的GI吧。现在已经在Demo级别出现了,我想在次世代机那样的性能,一定可以做出来吧。要是让我对现场人说的话,希望次世代机在架构方面不要有太大的改变。内存更多性能更高更便宜,希望是在现有架构上进化一样的产品(笑)。]