没有立方体贴图的环境贴图(3d查找2d纹理)

时间:2016-05-25 20:27:15

标签: opengl 3d glsl textures coordinates

我正在使用C ++和glsl(4.1)开发一个项目 我已经实现了一个镜像对象,它是一个高度为0的平面,其工作原理如下:

  1. 我使用计算出的MVP渲染场景,使摄像机位置反转(cam.x,cam.y,-cam.z)
  2. 我将渲染的场景存储在帧缓冲区
  3. 我使用普通MVP渲染场景
  4. 我使用计算的片段颜色渲染镜像对象:(大小是我渲染到帧缓冲区的纹理的大小)
    float _u = gl_FragCoord.x; float _v = gl_FragCoord.y ; _u = _u / size.x; _v = 1 - (_v / size.y); _uv = vec2(_u, _v); reflection = texture(tex_mirror, _uv).rgb;
  5. 这个实现很好但我现在需要使用不是平面的镜像。所以我正在寻找一种方法来查找我在Framebuffer中存储的相同纹理,但是使用从反射向量(R = reflect(view_dir, vertex_normal))计算的纹理坐标。
    可能吗 ?或者是否有另一种方法来执行此查找而无需计算环境立方体贴图(由于我的环境是动态的,而且我必须在每帧计算6个纹理,因此成本太高)

    我整个下午一直想找个方法而且我真的被卡住了......

    感谢您的帮助!

0 个答案:

没有答案