计算机图形学 读书笔记(十) 阴影 Shadow

写个读书笔记,一来作为字典以后可以查,二来记录自己的理解。

并没有对每个知识点的详细解释,大部分只有主观的定性的解释。



阴影非常重要,阴影提供了物体的位置信息,形状信息。 

阴影的定义

本影和半影----完全看不到光源的部分和部分看到光源的部分。

阴影的分类:

attached shadows:阴影法线的方向与光源的方向相反。

cast shadows:阴影法线的方向朝向光源。

self-shadows:自己投射到自己身上的阴影。

planar shadow:

算法一:从光源出发到物体的顶点的光线,再相交于平面,计算出这些交点,对交点内的区域进行二次绘制。

算法二:没有直接用相交测试,而是用相似三角形的公式,算出交点。

planar shadow有缺陷,如光源在物体与平面之间等情况,所以并不实用。

shadow volume:

示意图如下,用一个体积来表示阴影会产生的地方。一个物体是否有阴影就变成了求交问题。如,从view point到物体的射线,如果与一个阴影体有一个交点,则这个像素在阴影里;如果有两个交点,或没有交点,则在阴影外。


但计算量依然很大,可以用stencil buffer 加速计算。

shadow map:

用z-buffer存储从光源到物体的距离信息,叫做shadow map。

然后在渲染一个点的时候,如果这个点离光源的距离,比shadow map里对应的点的距离远的话,则它在阴影里。


有些硬件直接支持shadow map。




猜你喜欢

转载自blog.csdn.net/qq_30795577/article/details/79899146