基于Flash的聚光灯光照算法
2012-10-15徐训嘉
科技传播 2012年23期
徐训嘉
同济大学软件学院,上海 201804
0 引言
提高场景的光照效果是提升虚拟场景真实感的有效途径,人们能够看到物体是因为物体的表面反射了从各种光源发出的光,最常见的有三种光源:方向光,点光源,聚光灯。方向光是由无穷远处射出的平行光线,常用于阳光效果的模拟,点光源可以看作由空间中一个特定位置的点发出各个方向的光线,聚光灯则是空间中一个特定位置的点发出的特定方向光线的光源,是本文研究的主要范围。另一方面,除了物体的表面反射,光线穿越空气等介质时还会产生散射,光在空气中的散射会使光束所穿越空间发亮,在整体环境较暗时,这种现象更加明显,例如阳光穿越云层或者树林等时产生的多个光束的效果,体积光照就是在虚拟空间中模拟上述效果。此类效果在虚拟环境中的应用能够使光照更加具有立体感,有效的提升虚拟场景的真实感。
本文通过渲染聚光灯体积光照效果,利用GPU加速,实现和改进了已有的光照算法, 使其更好地在Web3D中运行。
1 算法
1.1 算法流程
为了能有效的在场景多个光源情况下进行渲染,本文采用了基于以下的流程,将渲染场景几何信息和渲染光照效果分段进行。
渲染的每个阶段都通过vertex shader和pixel shader 利用显卡的可编程渲染管线进行计算,通过控制渲染到纹理和渲染到后台缓存来进行不同阶段间所需资源信息的传递。通过第一个阶段将场景几何信息保存在纹理中,后续阶段再根据纹理中的数据对光照进行渲染。……
登录APP查看全文
