CG-05-阴影

24 年 5 月 16 日 星期四
791 字
4 分钟

第五章:阴影(Shadows)

硬阴影与软阴影(Hard and Soft Shadows)

  • 点光源产生硬边阴影,而区域光源则产生软边阴影。

渲染阴影(Rendering Shadows)

点光源阴影(Point Light Shadows)
  • 绘制阴影时需要提升阴影以上表面(Lifting the shadow above the surface),并使用模板(Stencil)改进平面投影阴影。
阴影纹理(Shadow Texture)
  • 计算UV坐标的方法是什么?
阴影体积(Shadow Volume)
  • 使用阴影体积渲染阴影包括两个阶段:
    1. 计算由光源和一组遮挡物形成的阴影体积。每个三角形都会产生一个阴影体积。
    2. 检查点是否在阴影体积内/外。
      • 内部:处于阴影中
      • 外部:被光源照亮
背面剔除(Back Face Culling)
  • 背面剔除用于决定是否绘制图形对象的多边形。它是图形管线中的一个步骤,用于测试多边形上的点在投影到屏幕上时是顺时针还是逆时针排列。
阴影映射(Shadow Mapping)
  • 阴影映射与阴影体积的比较:
    • 自身阴影问题
    • 优点:当场景中有多个对象/光源时,阴影映射的速度比阴影体积快。
    • 精度如何与阴影体积比较?
    • 缺点:阴影映射的分辨率低于渲染图像的分辨率,导致许多箱形伪影。
    • 需要使用更高分辨率的阴影映射,并根据视点调整阴影映射的分辨率。
通过多点光源生成软阴影(Soft Shadowing by Multiple Point Light Sources)
  • 使用加法混合累积每个光源的贡献。
  • 可以应用平面投影阴影方法或阴影体积方法,然后应用卷积。
  • 阴影的柔和度取决于样本数量的充分性。
  • 渲染场景的时间与用于近似区域光源的样本数量线性增加。
  • 如果样本数量不足,将引入伪影。
  • 缺点:速度慢。
其他生成软阴影的技术(Other Techniques to Generate Soft Shadow)
  • 不是移动光源,而是移动投影平面。
  • 投影平面上的投影被平均处理。
  • 可以使用投影阴影:将相同的纹理多次应用于不同高度的平面并将它们重叠。
问题(Problems)
  • 点光源产生的本影(Umbra,暗阴影区)太大。
  • 区域光源通常减小本影的大小。

硬阴影生成(Hard Shadow Generation)

  • 硬阴影的计算只涉及确定场景中的点是否在不透明物体的阴影中。
  • 这是一个二元决策问题,仅涉及阴影模型。
  • 实际上,硬阴影的确定就是相对于光源的可见性确定。

软阴影生成(Soft Shadow Generation)

  • 软阴影包括本影区和半影区,以提高视觉质量。
  • 完全遮挡光源导致本影区,而光源的部分遮挡导致半影区。
  • 半影区的不同强度取决于光源的部分遮挡程度。
  • 软阴影的确定需要计算不透明遮挡的比例,而不是硬阴影的二元决策。
  • 结果阴影区的形状取决于遮挡物和光源的形状。

文章标题:CG-05-阴影

文章作者:DWHITE

文章链接:https://dr9k69ai79.github.io/MyBlog/posts/schoolcoursesnotes/2024_04/dmt201_cg/05_阴影技术[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。