阴影映射/贴图Shadow Mapping

又叫光照贴图Light Mapping
在三维计算机图形中加入阴影的过程。
特点:体积大,不减少帧速率。

从光源的位置看去,即光源所在的点以及光的发射方向,所有能够看到的物体都处在光照下,但是物体的背面和被遮挡的物体处于阴影中。

光照场景进行渲染,保存能够看到的物体表面的深度,即为阴影图
然后,正常场景中的每个点都与这个深度图进行比较,判断场景中的每个点是否能够被光照射到,从而进行正确的渲染。

阴影图的产生

1.从光源的视角渲染场景
分点光源和定向光源
即将摄像机设置到光源所在的位置

根据这个结果提取 保存深度缓冲
将每个可以看见的片元,即没有被遮挡的片元到光源的距离记录到一副纹理图的对应像素中。

将摄像机恢复到原来的位置,渲染时将阴影的纹理按照投影贴图的方式应用到场景中。

实际距离大于最近距离,片元处于阴影中
实际距离的计算 为何会出现ZB>ZA?
绘制每个片元时,根据投影贴图纹理采样的结果换算出光源与此片元连线中距光源最近的片元距离(ZA),再计算出此片元距光源的实际距离(ZB)。若ZB〉ZA,则需要绘制的片元处于阴影中,采用阴影的颜色着色,否则此片兀不在阴影中,进行既定的光照着色。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成 游戏场景中灯光照明的构成 现实生活中的光线是有反射...
    shimmery阅读 53,759评论 6 59
  • 更新:【面试题含答案】http://bbs.9ria.com/thread-288394-1-1.html 高频问...
    好怕怕阅读 10,353评论 3 52
  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 14,533评论 3 89
  • 是谁在用她的手 抚摸我的头 望着那无尽的守候 想不到你的温柔 会成为伤害我的匕首 当一切都不再有 我的年华是否也走...
    猪头诸语阅读 1,443评论 0 0
  • 大山中的遗孤儿星零散布的老瓦房久久地扎在泥土深处不寻找、不挣扎用寂寞坚韧的姿势 花路尽头的遗孤儿划过天际的黑色翅膀...
    IslandBao阅读 1,092评论 1 4