您的位置:电脑秀首页 > 评测室 > 产品评测 > 正文

微软DirectX 10.1技术全方位剖析

PCSHOW.net 作者:微型计算机 2008-05-14

3D世界的光照与渲染

        在3D渲染当中,存在不同的光照方法,其中包括光照/阴影贴图、辐照度(Radiosity)和光线追踪等等。光线追踪的工作更适合CPU来完成,而光照/阴影贴图、辐照度以及其它渲染运算则适合在GPU上完成。

Part 1:光照/阴影贴图

        简而言之,光照/阴影贴图的工作原理是将每个光源视角的图像都渲染成成1个或者多个纹理。然后在单个像素渲染过程当中,查找这些纹理来决定这个像素的光照强度和色彩;如果对某个光源来说这个像素不可见,那就进行阴影处理。完成上述操作之后,表面着色程序再来评估和混合所有的情况和条件,并且考虑像素的材质属性,决定最终的像素色彩。这种光照/阴影贴图的方法,适合渲染标准的漫射光照。但是处理反射式光照上,则先需要渲染独立的立方体贴图,否则光照/阴影贴图有限的分辨率无法满足反射光照和阴影在质量上的需求,也无能力处理大量点光源或者大量域光源存在的场景。光照/阴影贴图技术最致命的是无法处理间接光照。


光照/阴影贴图处理方式

Part 2:光线追踪渲染

        光线追踪渲染技术则是从视角出发到场景当中每个像素都投射光线,然后由它来决定每束光线碰到物体的第一个触点;然后以此为依据,再在触点四周投射适合的光线,每个触点都有一个着色程序来决定触点上光线反射的强度和色彩。

        这个过程可以多次重复来渲染出间接光照的效果,同时也广泛适用于处理光的反射、折射和阴影。但采用这种方式往往需要每秒投射数以亿计的光线,才能获得可观的实时帧数,与此同时还要复杂的数据架构来存储场景当中所有物体的位置数据。正因为如此,使用这种方法只适合渲染静态场景,而对于大数据量的动态场景来说,光线追踪渲染处于明显的劣势。


光线追踪渲染模式

        实现光线追踪的代价是如此之大,现今的硬件都无力完成实时追踪,所以在大多数游戏中我们退而求其次—以“常数环境条件(Constant ambient term)”的方式来处理间接光照。换句话说,就是使用一种不考虑特定光源对整个场景光照影响的“统一光照”(Uniform Illumination),这种方式处理间接光照的方式非常粗糙,省略了对色彩进行混合以及阴影的处理。

匿名评论 登录后评论
[按 CTRL + ENTER 键快速发表评论]
返回页面顶部↑