泡泡网服务器频道 PCPOP首页      /      正文

DX9压榨专家 半条命2神奇渲染引擎揭

    “法线”的概念大家一定都很熟悉,一个平面的法线就是垂直于这个平面的向量。在计算机渲染图像时,法线的作用就在于计算平面的亮度。我们都知道,在一定光线照射下,一个平面的亮度是和光线入射角度有关的,光线越接近垂直入射,平面就越亮。

    由于平面的法线可以代表这个平面的方向,所以计算机就是通过比较平面法线向量和入射光线向量的方向来计算平面亮度的。

    我们可以想象一个平面上有着密密麻麻的法线;如果所有这些法线都朝向同一个方向,那么计算得到的这个平面的亮度就是一致的;但是如果人为的给这些法线加一些扰动,使他们朝向不同的方向,那么计算得到这个平面的亮度就是明暗不一的了,给人一种凹凸不平的感觉。

    但是,“扰动”并不是随便乱加的。为了控制对法线扰动的布局和程度,可以使用“法线贴图”。所谓的“法线贴图”,就是用来记录下物体表面各点的法线的贴图。

     

图5 DOOM III 中的法线贴图

    在本站的另一篇文章【纹理压缩的奇妙之旅 漫谈X800的3Dc技术】中,对法线贴图的概念有详细的阐述。

    在新一代的游戏引擎中,为了使物体凹凸效果逼真,大部分物体(尤其是角色模型)的法线贴图都是通过比较高、低多边形数量的两个版本的模型来生成的。拿虚幻引擎3的角色模型来说,高多边形版本的模型(简称高多边形模型)一般都会有几百万个面,拥有丰富的细节;而低多边形模型只有几千个面。真正在游戏中使用的是低多边形的模型。

 图6.a 虚幻引擎3中的高多边形模型

 图6.b 虚幻引擎3中的低多边形模型

    在制作法线贴图时,将高多边形模型上每个多边形的法线和低多边形模型对应部位法线相比较,得出的差值再置入法线贴图中。通过把这张法线贴图赋予低多边形模型,并实时计算光照,就可以使得渲染出的低多边形模型的凹凸感与高多边形模型十分接近。

 图6.c 虚幻引擎3中低多边形角色实时光影效果<

0人已赞

关注我们

泡泡网

手机扫码关注