gpt4 book ai didi

c++ - 实时动态阴影来补充延迟着色?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:33:03 25 4
gpt4 key购买 nike

我目前有一个延迟渲染系统设置,可以渲染点光源和平行光。我的问题是,对于不同形式的阴影我有哪些选择,这些阴影可以基于点光源和定向光源制作阴影,这可能会使用延迟着色设置?

最佳答案

需要独特阴影技术的延迟渲染并没有什么特别之处。大多数产生阴影的标准方法都适用于延迟渲染方案。

阴影贴图是当今游戏等实时应用中最常用的阴影算法。模板阴影在几年前很流行,但由于各种限制而有点失宠。阴影映射适用于延迟着色。阴影映射的基本算法相当简单:

  1. 从光的角度渲染渲染目标纹理的深度(您需要为点光源渲染立方体贴图的 6 个面)。
  2. 当您对灯光执行照明 channel 时,对于每个像素,将世界空间位置转换为灯光的 View 空间,并将深度与存储在阴影贴图中的深度进行比较。如果它大于阴影贴图深度,则该点处于阴影中,否则正常点亮。

与渲染一样,细节决定成败。为了获得高质量的阴影,您需要仔细设置阴影贴图投影,以充分利用阴影贴图中可用的像素(搜索透视阴影贴图、级联阴影贴图)。由于精度问题,您会得到各种带有自阴影表面的伪像(“阴影痤疮”是最常见的一种),并且有多种策略可以减少这些伪像的发生率(深度偏差、投影矩阵调整)。为了减少分辨率不足的阴影贴图的 block 状、像素化外观,您可能需要执行一些阴影贴图过滤。百分比接近过滤是标准方法,执行 PCF 有多种方法。

您还面临阴影的标准质量/性能权衡,而动态阴影往往是场景渲染中最昂贵的方面之一。有许多技巧和技术可以尝试最大限度地提高阴影贴图的性能。

最近,基本阴影贴图算法出现了许多变体,这些变体试图通过不同方式解决过滤问题,从而为给定的阴影贴图分辨率提供更好看的结果。 Variance Shadow Maps 和 Exponential Shadow Maps 是两种最新的技术,它们具有一些不错的优点,但也存在一些独特的问题。

Nvidia 的 developer site是一般图形编程的好资源,有很多关于阴影的文章。查看网站上提供的 GPU Gems 书籍的 HTML 版本,它们有各种关于阴影的文章,包括关于 GPU Gems 3 中方差阴影贴图的权威文章。

关于c++ - 实时动态阴影来补充延迟着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1212859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com