笑狗图

实现原理
  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. python_socket
  2. mysql5.7 生成列 generated column
  3. 【随想】_无关技术_你是合格的项目经理人吗?
  4. python下载大文件-使用请求在python中下载大文件
  5. 一点点学习PS--实战四
  6. 全球及中国皮裤行业消费需求及未来产销前景预测报告2022-2027年
  7. 《训练指南》——6.10
  8. 百度SEO站群腾讯短网址w.url.cn生成源码|仿红源码
  9. 关于Js下拉导航的解释
  10. 基于CentOS7,MySQL5.7的 读写分离
  11. python处理json文件_python处理json文件
  12. 随想录(谈谈软件架构)
  13. [置顶] 怎么对待重复的代码
  14. 如何更好对数据做分析
  15. mysql wait_timeout=_Mysql的wait_timeout解决_MySQL
  16. php这么把pdf转为world,php pdf如何转word
  17. fpgrowth算法c语言,关联分析:Apriori和FPgrowth算法原理
  18. 几种RIA技术(富互联网应用程序)比较
  19. linux查看硬盘插槽_Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
  20. Win10磁盘管理教程:新建、合并分区,添加和修改盘符

热门文章

  1. 不会画动漫眼睛没关系,8个步骤100%学会
  2. JAVA毕设项目个性化推荐的扬州农业文化旅游管理平台(java+VUE+Mybatis+Maven+Mysql)
  3. 基于system generator的整除除法设计
  4. 数据库保存表情符号(emoji)
  5. 【Python】PyQT5+爬虫实现简单音乐下载器
  6. 海康设备网络SDK开发NET_DVR_GetDeviceConfig
  7. Eclipse ShotCut[From internet]
  8. 使用sklearn库学习线性回归(二)
  9. scanf函数用%s参数时的注意事项
  10. vue中使用vuex(超详细)