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

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

    在游戏进行中,Source引擎把环境贴图贴到物体上,并根据物体表面的法线以及游戏者的视线方向对贴图进行扭曲,使物体表面看起来好像在反射环境。

    下面这张图是最开始那个场景仅贴上环境贴图的效果。

 图20 加入高光环境贴图的效果

    可能有读者会问了:怎么这么黑呀?其实这是因为这些高光是要叠加到原来的画面上的。我们实际上是用高光贴图去“加亮”原来漫反射得到的颜色,所以这里黑的地方就相当于保持原来漫反射颜色不变,而亮的地方就是使原来的部分更亮。

    由于在从环境反射贴图中取哪个位置的象素的颜色是和物体表面法线有关的,所以仍然可以使用法线贴图中的法线信息,得到更细致的高光效果:

 图21 应用法线贴图来“扭曲”后的环境反射效果,
可以看出凹凸不平的表面上高光的感觉

    另外在材质不均匀的物体的表面上,并不是所有的地方都有高光效果的。有的地方高光就强烈一些,有的地方就弱一些。所以,Valve的技术人员会再加上一层贴图来“过滤”物体表面的高光。

 图22.a 物体表面的高光强度贴图,其中越白的地方高光强度就越大

  图22.b用高光强度贴图过滤高光后的效果,只有很少的高光被保留了下来

    最后,把高光叠加到场景中去,得到最终的效果:


 图22.c 叠加了高光的场景

    OK,现在让我们来补完一下整个的渲染流程吧:

 图23

    从左到右:首先通过法线贴图(Normal)来寻址环境反射贴图(Cube Map)和三张光照贴图(Lightmaps),得到的结果分别与高光强度贴图(Specular Factor)和物体材质颜色贴图(Albedo)混合相乘,得到物体表面颜色的高光部分和漫反射部分,这两部分再相加得到最终的效果。<

0人已赞

关注我们

泡泡网

手机扫码关注