LearnGL - 15.2 - Refraction - 折射效果

本文深入探讨了折射现象的物理原理,介绍了如何在Shader中实现折射效果,包括使用refract函数、调整材质属性和计算折射光。同时,提供了详细的代码示例,展示了如何在OpenGL环境中实现天空盒反射和折射的融合效果。


LearnGL - 学习笔记目录

前些篇:

这一篇:实现类似折射的效果

本人才疏学浅,如有什么错误,望不吝指出。


扯一些闲话:

前几天和小舅子玩了玩 PS4:

  • 《Hell Driver》(地狱老司机,这个游戏数值做得太渣,想不通一个游戏数值制作这么差)
  • 《Alienation》(异化,和 我比较喜欢的《Dead Nation》同开发商的产品,操作手感很不错)
  • 《God of War III》(战神3,之前没空玩,然后花了两天通关中等难度,总体感觉战神3操作手感不是很好,战神4之前视频通关过,但也没时间去玩,战神4的剧情、渲染、操作手感,都有着非常大的提升、序幕也很期待与雷神索尔之战:God of War V,战神5)

现在回过头来看看这些以前很羡慕游戏开发,现在感觉渲染技术上来说越来越简单了,因为有了一些基础积累(注意是:基础)。

但是要制作这些大作,对场景、特效、动作/动画、音效、剧情、关卡、数值有着巨量工作,最后是调试也是巨量的、反复的。

战神3 我连最后所有的 谢幕信息都看完了,开发阵容真的强大,投入很大!


先看看效果

在这里插入图片描述

下面是反射+折射 各50%,再加上半透明 Blend SrcAlpha OneMinusSrcAlpha 的融混效果
在这里插入图片描述

目前这个效果是只对 Skybox 天空盒 作为环境贴图的反射、折射的效果,所以可以看到,气球猫 与 球体 之间没有反射 和 折射


折射现象

引用 百度百科:折射 一段话:

光的折射:光从一种透明介质斜射入另一种透明介质时,传播方向一般会发生变化,这种现象叫光的折射。理解:光的折射与光的反射一样都是发生在两种介质的交界处,只是反射光返回原介质中,而折射光则进入到另一种介质中,由于光在在两种不同的物质里传播速度不同,故在两种介质的交界处传播方向发生变化,这就是光的折射。注意:在两种介质的交界处,既发生折射,同时也发生反射。反射光光速与入射光相同 ,折射光光速与入射光不同。

引用 wiki 斯涅尔定律 的一段话:

当光波从一种介质传播到另一种具有不同折射率的介质时,会发生折射现象,其入射角与折射角之间的关系,可以用斯涅尔定律(Snell’s Law)来描述。斯涅尔定律是因荷兰物理学家威理博·斯涅尔而命名,又称为“折射定律”。
在光学里,光线跟踪科技应用斯涅尔定律来计算入射角与折射角。在实验光学与宝石学里,这定律被应用来计算物质的折射率。对于具有负折射率的负折射率超材料(metamaterial),这定律也成立,允许光波因负折射角而朝后折射。
斯涅尔定律表明,当光波从介质1传播到介质2时,假若两种介质的折射率不同,则会发生折射现像,其入射光和折射光都处于同一平面,称为“入射平面”,并且与界面法线的夹角满足如下关系:
n 1 sin ⁡ θ 1 = n 2 sin ⁡ θ 2 n 1 sin ⁡ θ 1 = n 2 sin ⁡ θ 2 {\displaystyle n_{1}\sin \theta _{1}=n_{2}\sin \theta _{2}}n_{1}\sin \theta _{1}=n_{2}\sin \theta _{2} n1sinθ1=n2sinθ2n1sinθ1

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值