Shader Graph18-反射、折射函数

一、打开Unreal,新建Material叫做DemoReflectionRefraction

        首先是看一下引擎内置的反射,Base Color设置为1是白色,Metallic设置为1金属强度为最大,Roughness为0粗糙度为最小,那么最后的结果球面上显示的就是周围环境。

        N表示表面的法线方向,Reflection表示反射方向,Refraction表示折射方向,右上角摄像机表示人眼。

 下面使用一张hdri图片,自定义反射效果。

二、Refraction和Reflection组合=玻璃效果

玻璃的特点是既有反射又有折射。

 有两个Texture Sample,上面的那个还是房间的cubemap,下面用的是这个图

这里用到Refract节点,4个参数第一个参数Ray Direction是折射后的方向,所以连接到CameraDirectionVector,不管你从哪个方向看都会出现折射效果。第二个参数是Surface Normal就是法线方向,第三个参数是入射介质为空气的折射值1,第四个参数是射出介质为玻璃折射值1.54,下面配个图看看。

Lerp的作用是混合两个图的效果,但是我们想要的是边缘反射,中间折射的效果,所以增加Fresnel节点,Fresnel的作用是边缘接近于1,中间接近于0,正是我们需要的。

折射值可以查表,百度一下

三、Unity的版本

将hdr文件拖拽到Assets->Textures文件夹下,修改纹理形状为Cube,点击Apply接受。

这里我们用自定义函数来实现Refraction节点的功能,这里注意Type改为String,直接将代码写在Body中,Refraction与Outputs的名称一致,代码结尾要有分号否则报错,报错后要关闭该ShaderGraph然后重新打开。

最后的效果

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艺菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值