笑狗图

实现原理
  1. 将像素的法线和 从镜头到像素位置的方向 转为世界空间坐标
  2. 计算镜头到位置方向 和 法线的夹角
  3. 最终像素输出的颜色 = 夹角 * 颜色
效果适用范围
  1. 适用于穿透显形
  2. 毛玻璃
Shader代码
Shader "Custom/Depth" {  Properties{//贴图入口_MainTex ("Texture", 2D) = "white" {}_AlphaValue("_AlphaValue",Range(0.01,1)) = 1//线段颜色_Color("Color",COLOR) = (0,1,0,1)}SubShader {  // 关闭深度写入 会解决一些模型破面的问题ZWrite OffCull OffBlend SrcAlpha OneMinusSrcAlpha// 透明队列Tags{ "RenderType" = "Transparent"  "Queue" = "Transparent"}Pass{  CGPROGRAM  // 定义顶点、片片渲染器,并引入shader相关的宏#pragma vertex vert  #pragma fragment frag  #include "UnityCG.cginc"  sampler2D _MainTex;fixed4 _Color;float _AlphaValue;// 片元渲染器的输入结构 struct v2f {  // 像素的坐标、视口方向、世界法线float4 pos : SV_POSITION;  float3 viewDir:TEXCOORD0;float3 worldNormal:NORMAL;float2 uv:TEXCOORD1;};  //顶点渲染器v2f vert (appdata_base v){  v2f o;  // 将顶点坐标模型空间转为裁剪空间o.pos = UnityObjectToClipPos (v.vertex);  // 将法线从模型空间转为世界空间o.worldNormal =  UnityObjectToWorldNormal(v.normal);//先把顶点转为世界空间float4 worldPos = mul(unity_ObjectToWorld, v.vertex);//获取从摄像机 到 世界顶点坐标 的方向o.viewDir = normalize(UnityWorldSpaceViewDir(worldPos));o.uv = v.texcoord;return o;  }  //片元渲染器half4 frag (v2f i) : COLOR{  half4 a = tex2D(_MainTex, i.uv);//计算 世界空间中的法线 与 世界中的相机到像素坐标的方向的 角度half normalAngle = 1 - abs(dot(i.worldNormal, i.viewDir));return _Color * normalAngle*a;   }  ENDCG  }  }
}

unity shaderlab 毛玻璃效果 周围发光效果 代码+详细注释相关推荐

  1. 手写YOLOv3|代码详细注释

    手写YOLOv3|代码详细注释 一. 数据预处理 一. Yolov3网络 一. Train 一. Detection 源代码:https://github.com/eriklindernoren/Py ...

  2. 【Python】python初学者应该知道与其他语言差异化的高效编程技巧(附测试代码+详细注释)

    目录 1. 交换变量 2. 集合去重 3. 列表推导.集合推导和字典推导 4. 统计字符串中各个字符出现的次数 5.优雅地打印JSON数据 6.行内的if语句 6. 符合正常逻辑的数值比较 7. 田忌 ...

  3. 【综合评价分析】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列

    [综合评价分析]熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列 文章目录 1. 熵权法确定指标权重 (1)构造评价矩阵 Ymn (2)评价矩阵标准化处理 (3)计算指标信息熵值 Mj ...

  4. 【综合评价分析】topsis评价 原理+完整MATLAB代码+详细注释+操作实列

    [综合评价分析]topsis评价 原理+完整MATLAB代码+详细注释+操作实列 文章目录 1.TOPSIS法的原理 2.TOPSIS法案例分析 3.建立模型并求解 3.1数据预处理 3.2代码实现数 ...

  5. c语言期中项目实战二—简易扫雷,思路分析加代码详细注释

    c语言期中项目实战二-简易扫雷,思路分析+代码详细注释 游戏介绍 项目步骤 模块化编程 设置菜单 设置棋盘 打印棋盘 布置雷 排查雷 总结及总代码和详细注释 游戏介绍 扫雷这个经典游戏,直到现在仍有很 ...

  6. Unity Shader Graph 制作Emission发光效果

    效果图: Graph中用到了一个重要的节点,Fresnel Effect菲涅尔效果,在画面渲染中菲涅尔效果是一种很实用的技术手段,在Unity中则经常用它来实现边缘照明. 模型用到的依然是Asset ...

  7. 鬼影3样本Mbr之后保护模式代码详细注释(最精华的地方啦)

    今天和明天是最后两天宿舍有空调的日子啦,暑假宿舍没空调啊,悲催T__T 好吧,今天是最精华的部分啦对于鬼影3的分析,剩下的都是浮云啦,alg.exe不准备分析了,能用OD调试的货.分析起来只是时间问题 ...

  8. 使用Python编写爬虫程序(代码详细注释),获取彼岸图网的图片

    文章目录 一.要求 二.设计 1.彼岸网站URL规则 2.程序流程图 三.代码(详细注释) 四.所遇到过的问题 一.要求 1.抓取目标 彼岸图网(http://pic.netbian.com)上的4K ...

  9. 图注意网络GAT理解及Pytorch代码实现【PyGAT代码详细注释】

    文章目录 GAT 代码实现[PyGAT] GraphAttentionLayer[一个图注意力层实现] 用上面实现的单层网络测试 加入Multi-head机制的GAT 对数据集Cora的处理 csr_ ...

最新文章

  1. ImageView 控制图片大小
  2. 怎样取SAP中的业务对象状态
  3. Auto Lisp 标注子样式_FAIR 开放大规模细粒度词汇级标记数据集 LVIS,连披萨里的菠萝粒都能完整标注...
  4. git schnnel failed to receive handshake, SSLTLS connection failed
  5. IntelliJ IDEA 详细图解最常用的配置
  6. eleemnt-ui修改主题颜色
  7. 马斯克:大量特斯拉汽车将会在年底前交付
  8. 添加ejs后页面空白解决办法
  9. Flutter实战之Stepper入门
  10. pandas 日期比较大小_如何计算不同pandas列中两个日期之间的年数
  11. 奇怪的 Win10 输入法问题
  12. 微信 语音识别_微信语音识别_微信语音识别api - 云+社区 - 腾讯云
  13. mysql瀑布流布局插件_瀑布流JS插件
  14. 韩寒等50名作家3.15联袂声讨百度侵权
  15. python 基础语法--print,input,open的内置函数的操作
  16. 在线直播源码评论弹幕是如何“练”成的?
  17. mongodb数据同步到elasticsearch的中间件,支持全量,增量,实时同步等多种同步情景。(syncs MongoDB to Elasticsearch in realtime) (Mong
  18. 改善磁带存储性能的五种方法
  19. Python 1. 如何选择python版本,以及如何选择开发环境(IDE)
  20. QTableView 设置行间距

热门文章

  1. 阿里P8大牛亲自教你!树莓派docker
  2. 经济学人信息部:2012年大数据研究报告:商业领袖们的经验
  3. 拍卖小程序直播功能扩展之翻转摄像头、美颜
  4. 美颜sdk磨皮与瘦脸功能代码分析
  5. Error: Cannot find module ‘wx-server-sdk’ 异常问题
  6. C语言输入Aa1Bb2Cc3,《C语言基础知识》PPT课件.ppt
  7. python--20行代码爬取【全职高手】小说
  8. 糖豆大小的真无线耳机,续航还挺长,Jeet Air 2体验
  9. Effective Modern C++ 条款1 理解模板类型推断
  10. 别怕,遇到Map源码面试题这样答就对了