• 欢迎来到莫知我哀的博客,日常不定时更新C++、C#、Unity、OpenGL、游戏开发相关文章。同步博客: CSDN
  • 网站左下角可以开启好听的背景音乐~~
  • 如果您觉得本博客很有看点,那么赶紧使用Ctrl+D 收藏吧

[Shader] 模型轮廓高亮

Unity3D wahh 1445次浏览 0个评论 扫描二维码

1. 前言

最近在做毕设中,遇到一个功能,就是当玩家的准星选中动物的时候,想让动物表面轮廓高亮起来。大概效果如下图:

其实核心就是实现一个轮廓高亮的Shader,这类效果的Shader网上有许多实现的方法,下面给出几种种解决方案。

 

2.  基于几何生成方法的描边效果

这个方法是在慕容小匹夫 - 陈嘉栋的Git上学习到的一个方法,具体步骤如下:

  1. 绘制模型时用两个pass,第一遍正常绘制模型。
  2. 第二遍绘制则要将模型正面剔除,先在vs将顶点沿着法线方向膨胀一定距离,然后在fs中将模型用纯色输出。

这里之所以要开启正面剔除是因为,在第二个Pass膨胀后的模型就像是一个"壳子"套在第一个模型表面,如果直接输出纯色就会将第一个Pass中输出的物体覆盖,所以这里需要开启正面剔除。下面是没有打开正面剔除的错误效果图:

下面是Shader示例代码:


莫知我哀 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[Shader] 模型轮廓高亮
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Title - Artist
0:00