我正在尝试为 OpenGL 2.0 中的阴影立方体贴图实现 PCF。我想我在这里找到了一个解决方案(搜索Percentage closer filtering (PCF) algorithm
以找到立方体贴图 PCF 部分的开头),但代码依赖samplerCubeShadow
于 OpenGL 2.0 中不可用的那个,所以我不能使用texture(samplerCubeShadow(), vec4())
显示的调用页。
这个问题的第一部分是:有没有办法从samplerCube
OpenGL 2.0/GLSL 1.10 中检索相同的结果?通过使用 atextureCube
或其他东西?
第二部分涉及我必须解决这个问题的想法。下图说明了我想做的事情。
蓝色实线和红色虚线都是来自samplerCube
存储我的深度值的一个面的向量。蓝线与黑色方块中心的深灰色方块的交点代表立方体的采样点。我想创建一个垂直于蓝色矢量的平面(由浅灰色矩形表示)。然后我想通过将 Z 向量从灯光位置(这些是红色虚线)投射到该平面上的 x、Y 值来从相机中采样 4 个黑点。之后,我将使用这些值与原始样本的值相结合来计算 PCF 阴影值。
这是为点光源/立方体贴图计算 PCF 的可行且有效的方法吗?我将如何创建平行平面,然后从中检索我需要的 X 和 Y 坐标?