我每次渲染带有阴影的多个灯光,并使用阴影立方体贴图mipmaps存储较小的远距离灯光的阴影。这样,考虑到大多数硬件上的纹理单位限制为16或32,我可以将更多阴影映射传递给片段着色器。然后,我使用textureLod()和samplerCube阅读这些内容。
现在的问题是,我想使用硬件PCF,并且我将使用samplerCubeShadow。但是textureLod()没有将samplerCubeShadow作为其输入之一,考虑到它支持例如,对于我来说这似乎是人为的限制。 sampler2DShadow。
除了在片段着色器中进行昂贵的手动循环外,是否有其他解决方法?