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

举报
CoderZ1010 发表于 2022/09/25 05:23:05 2022/09/25
【摘要】 效果图: 模型为Asset Store资源商店中免费资源Robot Kyle机器人 实现原理:         通过法线方向和视线方向的夹角来判断点是否处于边缘,从而给其增加边缘光,视线方向和法线方向垂直时,则该点在当前视角来看处于边缘。夹角的判断需要通过向量dot点积,点积结果为0时,...

效果图:

模型为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节点:

  

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/121978547

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。