2013-01-20 40 views
1

我目前正试图实现锥追踪软阴影3D纹理中的体素结构,通过在片段着色器中绘制Sponza场景进行体素化,并将“体素片段”存储到3D纹理中。 mip映射在计算着色器中完成。体素锥追踪定向光软阴影

作者解释了如何为点灯和区域灯光创建柔和阴影,这些灯光非常直观易懂,但他没有解释定向灯光,这正是Sponza场景的用途。

对于点光源来说,圆锥体是从点光源跟踪出来的,它的半径随着它穿过场景的每个部分而增加,在场景中称为“体积”。然而,定向灯不具有特定的光源点,只有一个方向。我如何将这个概念转化为定向光源?锥体必须是不同的形状,不是吗?

回答

0

原谅我,如果我太天真了,但也许你可以计算一个场景的边界球,并考虑一个单一的圆柱体,通过具有相同半径的球体中心,根据光线方向。然后,继续点光源(或聚光灯),但保持半径不变(即圆柱体而不是圆锥体)。

0

如果尚未修复,您可以尝试从查询点(如此一个圆锥体)前进,直到达到3D纹理的边缘。由于纹理可能具有较高的尺寸,因此可以考虑采用可参数化的步长进行步进。 要产生柔和的阴影,应该生成附加的随机样本,以紧贴您的查询点。