我正在编写一个片段着色器,它(除了其他东西)模仿玻璃球体上的折射效果。
因此,当光线进入球体时,光线会改变方向。到现在为止还挺好。现在,当折射光线离开玻璃物体时,它是否会再次改变方向?我很确定它确实如此,但我一直在互联网上寻找,我发现了不同的意见(例如在this网站的底部,它清楚地表明方向没有变化)。
提前致谢。
答案 0 :(得分:1)
是的它改变了......从空气到玻璃的折射角度从玻璃到空气的角度都是一样的。
您可以非常轻松地实施它。首先,您必须在以球体为中心的立方体贴图中渲染场景。 第二个渲染步骤使用normalvector和相机位置指向矢量,使用它们可以使用函数refract()来计算折射矢量。 您必须计算光线离开球体的位置,您还可以再次使用折射功能。您只需要再次计算outputplace的normalvector。 第三步是使用立方体贴图的texture()函数,并将outputvector作为坐标放在函数内。