我正在glsl中实现折射。我正在使用片段着色器中提供的折射功能来获得所需的效果。但是我得到的折射是颠倒的。我认为这是错误的..知道为什么会这样吗?
这是我在顶点着色器中所做的:
vec3 worldView = normalize(vec3(WorldCameraPosition-worldPos));
refractor = refract(-worldView, worldNorm, Eta); // eta = 0.66;
然后我做碎片着色器:
vec4 refractColor = textureCube(cubeMap, refractor);
http://www.cse.ohio-state.edu/~duttas/Images_5542/Capture.PNG http://www.cse.ohio-state.edu/~duttas/Images_5542/Capture.PNG
最佳答案
如果您正在谈论这些领域的折射问题,那么我很确定您得到的是正确的结果,它应该是颠倒的。由于光从球面折射的方式,因此您在球体中看到的图像将被反转:
现实世界的例子:
(来源:physicscentral.com)
关于opengl - glsl折射上下颠倒映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13386003/