glsl折射被颠倒映射

min*_*der 7 opengl shader glsl

我正在glsl中实现折射.我正在使用frag着色器中提供的折射功能来获得所需的效果.但是我得到的折射,它的颠倒.我认为这是错误的......任何想法为什么会如此?

这是我在顶点着色器中所做的:

vec3 worldView = normalize(vec3(WorldCameraPosition-worldPos));
refractor = refract(-worldView, worldNorm, Eta); // eta = 0.66;
Run Code Online (Sandbox Code Playgroud)

然后我做的碎片着色器:

vec4 refractColor = textureCube(cubeMap, refractor); 
Run Code Online (Sandbox Code Playgroud)

http://www.cse.ohio-state.edu/~duttas/Images_5542/Capture.PNG http://www.cse.ohio-state.edu/~duttas/Images_5542/Capture.PNG

Tim*_*Tim 25

如果你在谈论这些领域的折射,我很确定你得到的是正确的结果,它应该是颠倒的.由于光线折射球面的方式,您在球体中看到的图像是相反的:

https://summerexplorations.files.wordpress.com/2011/07/marbles2.jpg?w=584

现实世界的例子:

http://www.physicscentral.com/explore/pictures/images/crystal-ball_2.jpg http://www.physicscentral.com/explore/pictures/images/crystal-ball_2.jpg

  • 很好.这个问题的所有者可能忘记了它不是反射(落后的东西)而是折射(落后的东西).不错的选择:P +1 (2认同)