首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Unity Shader Graph 制作Rim Light边缘光效果

Unity Shader Graph 制作Rim Light边缘光效果

作者头像
CoderZ
发布2022-08-29 16:18:36
发布2022-08-29 16:18:36
1.2K0
举报

效果图:

模型为Asset Store资源商店中免费资源Robot Kyle机器人

实现原理:

通过法线方向和视线方向的夹角来判断点是否处于边缘,从而给其增加边缘光,视线方向和法线方向垂直时,则该点在当前视角来看处于边缘。夹角的判断需要通过向量dot点积,点积结果为0时,法线方向与视线方向垂直,则该点处于边缘,给其增加边缘光。

新建PBR Graph,创建以下属性:

Main Texture(Texture2D 类型):用于模型贴图

Rim Power(Vector1 类型):用于控制边缘光强度

Rim Color(HDR类型 Color):用于控制边缘光颜色

创建Normal Vector法线向量节点,View Direction视线向量节点,Space空间都选择Object,二者通过Dot Product点积节点求得点积值:

点积值通过One Minus节点求得 1 - dot点积 的值,若该值小于 1 - Rim Power属性的值则取0,若大于1则取1,否则取0和1之间的平滑插值,通过Smoothstep节点实现:

关于Smoothstep节点的官方文档介绍:

将Smoothstep的输出值与Rim Color属性值相乘后输出至PBR Master主节点中的Emission节点:

最终将Main Texture通过Sample Texture 2D节点输出到PBR Master主节点中的Albedo节点:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档