光能传递全局照明阴影的边缘抖动,不直
Radiosity global illumination shadow`s edges jitter, being not straight
我正在实施光能传递照明技术。我有一些静态场景,我想预先计算,然后在其中显示和移动。所以不是实时的,但必须在手机上工作。
所以几何体被分割并且光线反射,但阴影边缘看起来很糟糕:
正在使用三角形拆分几何体:
由于它们的边缘没有沿着阴影对齐,所以看起来不太好。互联网上的样本没有(虽然有些有)。所以我可能遗漏了一些东西。
也许我应该找到阴影边缘并强制三角测量以沿着这些边缘创建线。但要找到它们并不容易,它们的形状可能很复杂,而且可能有很多灯,进一步增加了三角测量限制的数量。更密集的三角测量不太可能有帮助(试过),边缘抖动将在较小的范围内,但更强烈。如果创建更多三角形并且输出模糊,它可能会有所帮助。但由于这是光能传递,增加三角形的数量会显着影响性能。图片中的场景非常简单,适合演示,但我们需要(并且已经)复杂得多scenes/views,包括模型、3d 透视图等。
显示的三角形实际上进一步细分为四个,以便更好地进行颜色插值,但这些是光反射的单位。
您无法从稀疏镶嵌的几何体中获得硬阴影。所以如果你有一个应该产生硬阴影的点光源:
- 应用您的光能传递算法。
- 从解决方案中减去直射光,因此它只有间接光贡献。
- 渲染场景时,对间接照明使用光能传递解决方案,对硬阴影使用经典技术(如高分辨率阴影贴图)。
或者,您确实可以执行自适应细分。请参阅 GPU Gems 2. Chapter 39. Global Illumination Using Progressive Refinement Radiosity#Adaptive Subdivision 了解松散的描述和参考。
我正在实施光能传递照明技术。我有一些静态场景,我想预先计算,然后在其中显示和移动。所以不是实时的,但必须在手机上工作。 所以几何体被分割并且光线反射,但阴影边缘看起来很糟糕:
正在使用三角形拆分几何体:
由于它们的边缘没有沿着阴影对齐,所以看起来不太好。互联网上的样本没有(虽然有些有)。所以我可能遗漏了一些东西。
也许我应该找到阴影边缘并强制三角测量以沿着这些边缘创建线。但要找到它们并不容易,它们的形状可能很复杂,而且可能有很多灯,进一步增加了三角测量限制的数量。更密集的三角测量不太可能有帮助(试过),边缘抖动将在较小的范围内,但更强烈。如果创建更多三角形并且输出模糊,它可能会有所帮助。但由于这是光能传递,增加三角形的数量会显着影响性能。图片中的场景非常简单,适合演示,但我们需要(并且已经)复杂得多scenes/views,包括模型、3d 透视图等。 显示的三角形实际上进一步细分为四个,以便更好地进行颜色插值,但这些是光反射的单位。
您无法从稀疏镶嵌的几何体中获得硬阴影。所以如果你有一个应该产生硬阴影的点光源:
- 应用您的光能传递算法。
- 从解决方案中减去直射光,因此它只有间接光贡献。
- 渲染场景时,对间接照明使用光能传递解决方案,对硬阴影使用经典技术(如高分辨率阴影贴图)。
或者,您确实可以执行自适应细分。请参阅 GPU Gems 2. Chapter 39. Global Illumination Using Progressive Refinement Radiosity#Adaptive Subdivision 了解松散的描述和参考。