我在glsl中实现折射。我正在使用frag着色器中提供的折射功能来获得所需的效果。但是我得到的折射,它的颠倒。我认为这是错误的......任何想法为什么会如此?
这是我在顶点着色器中所做的:
vec3 worldView = normalize(vec3(WorldCameraPosition-worldPos));
refractor = refract(-worldView, worldNorm, Eta); // eta = 0.66;
然后使用frag shader:
vec4 refractColor = textureCube(cubeMap, refractor);
答案 0 :(得分:25)
如果你在谈论这些领域的折射,我很确定你得到的是正确的结果,它应该是颠倒的。由于光线折射球面的方式,您在球体中看到的图像是相反的:
真实世界的例子: