Opengl 无立方体贴图的环境贴图(二维纹理的三维查找) 我正在研究一个带有C++和GLSL(4.1)的项目。 我实现了一个镜像对象,它是高度为0的平面,其工作原理如下: 我使用计算的MVP渲染场景,以反转摄影机位置(cam.x、cam.y、-cam.z) 我将渲染场景存储在帧缓冲区中 我使用普通MVP渲染场景 我使用碎片颜色渲染镜像对象,计算如下:(大小是我渲染到帧缓冲区的纹理的大小) float\u=gl\u FragCoord.x; 浮点数_v=gl_FragCoord.y; _u=_u/size.x; _v=1-(_v/size.y); _uv=vec2(_,_-v); 反射=纹理(tex_-mirror,_-uv).rgb

Opengl 无立方体贴图的环境贴图(二维纹理的三维查找) 我正在研究一个带有C++和GLSL(4.1)的项目。 我实现了一个镜像对象,它是高度为0的平面,其工作原理如下: 我使用计算的MVP渲染场景,以反转摄影机位置(cam.x、cam.y、-cam.z) 我将渲染场景存储在帧缓冲区中 我使用普通MVP渲染场景 我使用碎片颜色渲染镜像对象,计算如下:(大小是我渲染到帧缓冲区的纹理的大小) float\u=gl\u FragCoord.x; 浮点数_v=gl_FragCoord.y; _u=_u/size.x; _v=1-(_v/size.y); _uv=vec2(_,_-v); 反射=纹理(tex_-mirror,_-uv).rgb,opengl,3d,glsl,textures,coordinates,Opengl,3d,Glsl,Textures,Coordinates,这个实现很好,但是我现在需要使用一个不是平面的镜像。因此,我正在寻找一种方法来查找存储在帧缓冲区中的相同纹理,但使用从反射向量计算的纹理坐标(R=reflect(view\u dir,vertex\u normal)) 可能吗?或者有没有另一种方法可以在不计算环境立方体贴图的情况下执行此查找(这太昂贵了,因为我的环境是动态的,我必须在每一帧计算6个纹理) 我整个下午都在找办法,我真的被卡住了 谢谢你的帮助 我已经试过了,但根本不起作用:vec3v=normalize(view\u dir);ve

这个实现很好,但是我现在需要使用一个不是平面的镜像。因此,我正在寻找一种方法来查找存储在帧缓冲区中的相同纹理,但使用从反射向量计算的纹理坐标
(R=reflect(view\u dir,vertex\u normal))

可能吗?或者有没有另一种方法可以在不计算环境立方体贴图的情况下执行此查找(这太昂贵了,因为我的环境是动态的,我必须在每一帧计算6个纹理)

我整个下午都在找办法,我真的被卡住了


谢谢你的帮助

我已经试过了,但根本不起作用:
vec3v=normalize(view\u dir);vec3 n=顶点_法线;Vec4R=MVP*vec4(反射(v,n),1.0);R=R/R.w;vec2_uv=R.xy你可以做
纹理(tex_mirror,_uv)
无论你如何计算_uv。是的,我知道,但问题是如何用R计算_uv?我已经尝试过了,但根本不起作用:
vec3 v=规格化(view_dir);vec3 n=顶点_法线;Vec4R=MVP*vec4(反射(v,n),1.0);R=R/R.w;vec2_uv=R.xy你可以做
纹理(tex\u mirror,\u uv)
无论你如何计算\u uv。是的,我知道,但问题是如何用R计算\u uv?