1

我正在尝试为 OpenGL 2.0 中的阴影立方体贴图实现 PCF。我想我在这里找到了一个解决方案(搜索Percentage closer filtering (PCF) algorithm以找到立方体贴图 PCF 部分的开头),但代码依赖samplerCubeShadow于 OpenGL 2.0 中不可用的那个,所以我不能使用texture(samplerCubeShadow(), vec4())显示的调用页。

这个问题的第一部分是:有没有办法从samplerCubeOpenGL 2.0/GLSL 1.10 中检索相同的结果?通过使用 atextureCube或其他东西?

第二部分涉及我必须解决这个问题的想法。下图说明了我想做的事情。

光到顶点/平原

蓝色实线和红色虚线都是来自samplerCube存储我的深度值的一个面的向量。蓝线与黑色方块中心的深灰色方块的交点代表立方体的采样点。我想创建一个垂直于蓝色矢量的平面(由浅灰色矩形表示)。然后我想通过将 Z 向量从灯光位置(这些是红色虚线)投射到该平面上的 x、Y 值来从相机中采样 4 个黑点。之后,我将使用这些值与原始样本的值相结合来计算 PCF 阴影值。

这是为点光源/立方体贴图计算 PCF 的可行且有效的方法吗?我将如何创建平行平面,然后从中检索我需要的 X 和 Y 坐标?

4

1 回答 1

0

我不能说它是否有效或良好(甚至正确),但它绝对可行。

给定从光到片段的向量 v,选择任何不平行于 v 的向量 u。叉积 w = cross(u, v) 将垂直于 v。以 w 为轴和 cross(v, w ) 作为第二轴。

于 2015-12-30T13:32:54.613 回答