有没有一种方法可以直接在GLSL中对“ latlong” HDR纹理进行采样以进行反射?

时间:2018-09-10 00:37:52

标签: reflection glsl hdr

是否有一种方法/方法/功能需要一个世界空间方向矢量,并在“ latlong”格式的HDR纹理上获取正确的像素?

使用立方体贴图(textureCube)很容易,但是我需要在World Space中使用texture2D latlong HDR一次性完成此操作。

我在网上找到了这个,但是对我来说却产生了一个混乱的投影:

const vec2 invAtan = vec2(0.1591, 0.3183);

vec2 SampleSphericalMap(vec3 v)
{
    vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
    uv *= invAtan;
    uv += 0.5;

    return uv;
}

它应该包含一个世界空间矢量,但是当我将其传递给片段着色器中网格的面法线矢量时,映射会发生疯狂的扭曲……

以前有人做过吗?

0 个答案:

没有答案