13、计算机图形学——阴影贴图

一、图形学中阴影的产生原理

阴影产生的原因就在于相机能看到的地方而光源无法照射到,所以,基于此,就有了下面的过程

首先从光源的方向放一个相机,进行一次透视投影,但是,只保存透视投影后深度信息

然后,从真正的相机视角去对当前场景进行透视投影

之后,将相机看到的所有点,全部通过光源的透视投影矩阵重新投影到光源相机上,又会得到一副深度图

然后,就可以进行判断了,如下图中的橙色线所示,橙色线所触及到的点就通过光源相机进行投影得到的深度与真正相机看到之后再投影到光源相机得到的深度是相等的,那么就说明,这点能被光照照射到,就不属于阴影

然而,下图中红线触及的点就被判定在阴影中

 

光源相机投影得到的点是椭圆上的一个点,相机投影得到的点是另一个点,将相机投影得到的点通过光源相机进行投影,得到的深度值与椭圆上的点的深度不相等

这就说明。改点属于相机能看到而光源看不到的点,因此,这点被判定为属于阴影中的点

将上述过程绘制成阴影贴图,就能判断处每个像素点是否应该被绘制成阴影

二、阴影贴图的问题

首先最明显的一个问题就是计算出来的深度值都是浮点数,而浮点数计算是否相等比较难,常规的解决办法就是让两个浮点数做差,结果小于某个极小的数就认为这两个浮点数相等

其次,因为使用的 点光源,点光源不存在大小,所以只能产生硬阴影,不太自然。

最后一个问题就是阴影贴图也是贴图的一种,那么, 如果阴影贴图的分辨率和实际渲染的分辨率不能很好的匹配的话,那么就会出现之前提过的纹理过大或者过小而引起的问题。

那么,就有可能导致实际渲染出来的阴影存在锯齿或者摩尔纹的问题

参考

https://www.bilibili.com/video/BV1X7411F744?p=12

欢迎大家评论交流,作者水平有限,如有错误,欢迎指出

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值