unity shaderlab 毛玻璃效果 周围发光效果 代码+详细注释
笑狗图
实现原理
- 将像素的法线和 从镜头到像素位置的方向 转为世界空间坐标
- 计算镜头到位置方向 和 法线的夹角
- 最终像素输出的颜色 = 夹角 * 颜色
效果适用范围
- 适用于穿透显形
- 毛玻璃
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 毛玻璃效果 周围发光效果 代码+详细注释相关推荐
- 手写YOLOv3|代码详细注释
手写YOLOv3|代码详细注释 一. 数据预处理 一. Yolov3网络 一. Train 一. Detection 源代码:https://github.com/eriklindernoren/Py ...
- 【Python】python初学者应该知道与其他语言差异化的高效编程技巧(附测试代码+详细注释)
目录 1. 交换变量 2. 集合去重 3. 列表推导.集合推导和字典推导 4. 统计字符串中各个字符出现的次数 5.优雅地打印JSON数据 6.行内的if语句 6. 符合正常逻辑的数值比较 7. 田忌 ...
- 【综合评价分析】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列
[综合评价分析]熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列 文章目录 1. 熵权法确定指标权重 (1)构造评价矩阵 Ymn (2)评价矩阵标准化处理 (3)计算指标信息熵值 Mj ...
- 【综合评价分析】topsis评价 原理+完整MATLAB代码+详细注释+操作实列
[综合评价分析]topsis评价 原理+完整MATLAB代码+详细注释+操作实列 文章目录 1.TOPSIS法的原理 2.TOPSIS法案例分析 3.建立模型并求解 3.1数据预处理 3.2代码实现数 ...
- c语言期中项目实战二—简易扫雷,思路分析加代码详细注释
c语言期中项目实战二-简易扫雷,思路分析+代码详细注释 游戏介绍 项目步骤 模块化编程 设置菜单 设置棋盘 打印棋盘 布置雷 排查雷 总结及总代码和详细注释 游戏介绍 扫雷这个经典游戏,直到现在仍有很 ...
- Unity Shader Graph 制作Emission发光效果
效果图: Graph中用到了一个重要的节点,Fresnel Effect菲涅尔效果,在画面渲染中菲涅尔效果是一种很实用的技术手段,在Unity中则经常用它来实现边缘照明. 模型用到的依然是Asset ...
- 鬼影3样本Mbr之后保护模式代码详细注释(最精华的地方啦)
今天和明天是最后两天宿舍有空调的日子啦,暑假宿舍没空调啊,悲催T__T 好吧,今天是最精华的部分啦对于鬼影3的分析,剩下的都是浮云啦,alg.exe不准备分析了,能用OD调试的货.分析起来只是时间问题 ...
- 使用Python编写爬虫程序(代码详细注释),获取彼岸图网的图片
文章目录 一.要求 二.设计 1.彼岸网站URL规则 2.程序流程图 三.代码(详细注释) 四.所遇到过的问题 一.要求 1.抓取目标 彼岸图网(http://pic.netbian.com)上的4K ...
- 图注意网络GAT理解及Pytorch代码实现【PyGAT代码详细注释】
文章目录 GAT 代码实现[PyGAT] GraphAttentionLayer[一个图注意力层实现] 用上面实现的单层网络测试 加入Multi-head机制的GAT 对数据集Cora的处理 csr_ ...
最新文章
- ImageView 控制图片大小
- 怎样取SAP中的业务对象状态
- Auto Lisp 标注子样式_FAIR 开放大规模细粒度词汇级标记数据集 LVIS,连披萨里的菠萝粒都能完整标注...
- git schnnel failed to receive handshake, SSLTLS connection failed
- IntelliJ IDEA 详细图解最常用的配置
- eleemnt-ui修改主题颜色
- 马斯克:大量特斯拉汽车将会在年底前交付
- 添加ejs后页面空白解决办法
- Flutter实战之Stepper入门
- pandas 日期比较大小_如何计算不同pandas列中两个日期之间的年数
- 奇怪的 Win10 输入法问题
- 微信 语音识别_微信语音识别_微信语音识别api - 云+社区 - 腾讯云
- mysql瀑布流布局插件_瀑布流JS插件
- 韩寒等50名作家3.15联袂声讨百度侵权
- python 基础语法--print,input,open的内置函数的操作
- 在线直播源码评论弹幕是如何“练”成的?
- mongodb数据同步到elasticsearch的中间件,支持全量,增量,实时同步等多种同步情景。(syncs MongoDB to Elasticsearch in realtime) (Mong
- 改善磁带存储性能的五种方法
- Python 1. 如何选择python版本,以及如何选择开发环境(IDE)
- QTableView 设置行间距
热门文章
- 阿里P8大牛亲自教你!树莓派docker
- 经济学人信息部:2012年大数据研究报告:商业领袖们的经验
- 拍卖小程序直播功能扩展之翻转摄像头、美颜
- 美颜sdk磨皮与瘦脸功能代码分析
- Error: Cannot find module ‘wx-server-sdk’ 异常问题
- C语言输入Aa1Bb2Cc3,《C语言基础知识》PPT课件.ppt
- python--20行代码爬取【全职高手】小说
- 糖豆大小的真无线耳机,续航还挺长,Jeet Air 2体验
- Effective Modern C++ 条款1 理解模板类型推断
- 别怕,遇到Map源码面试题这样答就对了