Shader "Unlit/半透明"
{Properties{_Diffuse("Diffuse",Color) = (1,1,1,1)  //  漫反射_MainTex("MainTex",2D) = "white"{}  //  2D纹理贴图_AlphaScale("Alpha Scale",Range(0,1)) = 1  //  控制Alpha参数}SubShader{Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }   //  渲染顺序设置TransparentLOD 100Pass  //  用两个pass通道来处理,防止出现渲染错误,第一个pass通道  每个pass通道都会渲染一次{ZWrite On  //  写入深度  为了确认渲染顺序ColorMask 0  //  掩码遮罩  代表这个pass通道不写入任何颜色值}Pass  //  第二个pass通道{Tags{"LightMode" = "ForwardBase"}ZWrite Off  //  关闭ZWrite(深度写入)Blend SrcAlpha OneMinusSrcAlpha  //  源颜色因子  正常透明混合CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#include "Lighting.cginc"struct v2f {float4 vertex :SV_POSITION;  //  输出顶点信息fixed3 worldNormal : TEXCOORD0;float3 worldPos:TEXCOORD1;float2 uv:TEXCOORD2;};fixed4 _Diffuse;float _AlphaScale;sampler2D _MainTex;float4 _MainTex_ST;  //  是MainTex的Tiling和Offset两个属性  不需要在外面定义v2f vert(appdata_base v)  //  顶点着色器{v2f o;  //  用这个结构体o.vertex = UnityObjectToClipPos(v.vertex);  //  顶点信息从模型转到裁剪空间再放到输出结构体fixed3 worldNormal = UnityObjectToWorldNormal(v.normal);  //  法线从模型变换到世界坐标o.worldNormal = worldNormal;o.worldPos = mul(unity_ObjectToWorld, v.vertex);  //  顶点信息从模型转到世界坐标系//o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;  //  为了让MainTex的Tiling和Offset两个属性能影响到uvo.uv = TRANSFORM_TEX(v.texcoord, _MainTex);  //  unity纹理函数,和上面效果一样return o;}fixed4 frag(v2f i) : SV_Target  //  片元着色器  片元高光反射{fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;  //  环境光fixed4 texColor = tex2D(_MainTex, i.uv);  //  采样这个图//  漫反射//fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);fixed3 worldLightDir = UnityWorldSpaceLightDir(i.worldPos);fixed3 diffuse = texColor.rgb * _LightColor0.rgb * _Diffuse.rgb * max(0, dot(worldLightDir,i.worldNormal) * 0.5 + 0.5);  //  漫反射公式  图的纹理采样乘进来,纹理属于漫反射fixed3 color = ambient + diffuse;return fixed4(color, texColor.a * _AlphaScale);  //  texColor的a值就是颜色通道的值  乘上_AlphaScale来控制}ENDCG}}FallBack "Transparent/VertexLit"
}

unity 半透明效果shader相关推荐

  1. unity shader 入门 全透明与半透明效果实现

    片元函数的fixed4类型的返回值的第4位即为阿尔法值,0代表完全不显示(透明),1代表完全显示.中间的数值代表半透明.但只修改这个值是不能直接修改透明度的,因为还要对队列等进行修改. 本文介绍透明度 ...

  2. unity 半透明混合问题_Unity Shader教程 八、半透明物体的初步探索

    我必须要宣布一个不幸的消息:我们得抛弃跟随我们许久的Sakura.shader,而创建一个新的shader了.它已经完成了自己的使命. 重新写一个shader吧,可以是一个在附加篇写的那种,这次我不会 ...

  3. Unity镜子效果的实现(无需镜子Shader)

    Unity镜子效果制作教程 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

  4. Unity从零开始实现一个全息效果Shader

    Unity从零开始实现一个全息效果Shader 前言 开始捣鼓 一.准备阶段 二.先从透明效果开始 三.顶点故障效果 四.扫描线效果 五.菲尼尔反射效果 六.颗粒效果 七.颜色故障效果 CustomE ...

  5. Unity ASE制作彩色流光马赛克 像素风 舞池DJ台效果Shader

    Unity ASE制作彩色流光马赛克 舞池DJ台效果 Shader@TOC 项目需求想写一个舞池DJ台的效果,尝试写了发现制作出好玩的效果. 首先想要得到这种棋盘格的效果,想到了马赛克像素平铺,平铺数 ...

  6. Unity半透明特效原理讲解(为什么半透明设置渲染顺序和深度写入这么重要)

    Unity半透明特效原理讲解(为什么半透明设置渲染顺序和深度写入这么重要 写在前面 实验场景 实验1:红(不透明)+蓝(不透明)+默认渲染顺序(先渲染蓝Cube) 实验2:红(不透明+优先渲染)+蓝( ...

  7. Unity 透明效果

    文章目录 透明度测试(Alpha Test) 透明度混合(Alpha Blending) 深度写入的半透明效果 Unity预定义渲染队列 混合 Unity 中实现透明效果一般有两种方法 透明度测试(A ...

  8. 透明效果 -- Shader入门精要学习(7)

    透明效果 对于不透明的物体,不考虑其渲染顺序也能得到正确的结果,这是由于强大的深度缓冲的存在 几个概念: 深度缓冲(z-buffer):用于解决可见性问题,它可以决定哪个物体的哪些部分会被渲染在前面, ...

  9. Unity学习之Shader

    Shader 是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序.其中Vertex Shader(顶点着色器)主要负责顶点的几何关系等的运算,Pixel Shader(像素着色器)主要负责片元颜色 ...

最新文章

  1. 2018年中国高被引学者榜单发布,清华入榜学者数位列高校第一
  2. 大学考试计算机基础应用试题及答案,大学计算机基础考试试题及答案
  3. SQL、LINQ、Lambda 三种用法
  4. 【面向对象】实现继承的正确实践和不当实践
  5. Linux常用命令—文件处理命令—链接命令
  6. Spark团队开源新项目MLflow发布0.2版本,内置TensorFlow集成
  7. iteritems python3_python3 items() 与 python2 中iteritems()的区别
  8. 设计模式---工厂方法模式(c++实现)
  9. SQL:从入门到“精通”
  10. 百度富文本ueditor实现导入word并将内容显示到编辑器中
  11. Unity 无法识别视频
  12. 什么是生命?演讲原稿
  13. 原版win7 install.wim在哪?
  14. 实验11-1-7 藏头诗 (15分)
  15. 将被雪藏的AI算法,抛开快手和火山,YouTube的儿童APP值得学习吗?
  16. MySQL数据库——SQL函数
  17. Docker 启动Redis
  18. 【bzoj4605】崂山白花蛇草水 权值线段树套KD-tree
  19. 3.2 项目(多肉)
  20. 压力传感器的四个初始误差

热门文章

  1. 【大爱】C++STL 常用 函数 用法(转载自duoduo3_69)
  2. 案例研究:使用 ETW 和 Netmon 解决未知 USB 设备的问题
  3. Linux on IBM Cloud - Port Knocking
  4. html书写表单laber,day02_HTML表格列表表单
  5. Vue3+Vite项目配置Eslint+Prettier+Husky+Lint-Staged+Commitlint
  6. No installations recognized以及nvm use失败问题
  7. C#方法讲解——飞行棋画地图
  8. 基因功能分析——哈佛大学
  9. Java集成Hutool实现导出Excel功能
  10. 今日头条视频地址提取 谷歌插件