shadowmap底层原理
时间: 2023-11-20 13:52:06 浏览: 112
简单ShadowMap2.rar
Shadow map 是一种实时渲染阴影的技术,其底层原理是通过生成深度图(depth map)来计算阴影。具体来说,首先以光源位置为相机位置,将场景渲染到一个深度纹理中,这个深度纹理就是深度图。然后在渲染场景时,对于每个像素,通过比较该像素的深度值和深度图中对应位置的深度值,来判断该像素是否在阴影中。如果该像素的深度值小于深度图中对应位置的深度值,则该像素在阴影中,否则不在阴影中。最终将所有在阴影中的像素渲染成黑色,不在阴影中的像素渲染成原本的颜色。
Shadow map 的优点是可以使用一般用途的图形硬件对任意的阴影进行绘制,而且创建阴影图的代价与需要绘制的图元数量成线性关系,访问阴影图的时间也固定不变。此外,可以在基于该方法进行改进,创建软阴影效果。
需要注意的是,在实际运用中,如果遇到动态光影,则 depth map 通常是实时计算的,这就需要场景渲染两次,第一次渲染出 depth map,然后基于 depth map 做阴影渲染。
阅读全文