透明度测试

依据透明度把指定的像素块剔除掉。

Shader "QStudyShader/AlphaTest"
{Properties{_MainTex("Main Texture",2D) = "white"{}_BaseColor("Base Color",Color) = (1.0,1.0,1.0,1.0)_Alpha("Alpha Threshold",Range(0,1)) = 0}SubShader{//"Queue"可以无视物体实际的位置,随意控制哪个物体显示在前面。渲染队列的值越小 越先被渲染 越先被渲染就会被后渲染的对象挡住//"Queue" = "AlphaTest" 指定渲染队列 使这个对象在其他物体渲染后再渲染 //"IgnoreProjector"="True" 忽略投影器的影响Tags{"Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout"}Pass{Tags{ "LightModel" = "ForwardBase"}CGPROGRAM#pragma include "Lighting.cginc"#pragma vertex Vertex#pragma fragment Fragmentstruct a2v{float4 vertex : POSITION;float3 normal : NORMAL;float4 texcoord : TEXCOORD0;};struct v2f {float4 pos : SV_POSITION;float3 worldNormal : TEXCOORD0;float3 worldPos : TEXCOORD1;float2 uv : TEXCOORD2;};sampler2D _MainTex;fixed4 _BaseColor;fixed _Alpha;v2f Vertex(a2v v) {v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.worldNormal = UnityObjecToWorldNormal(v.normal);o.worldPos = mul(unity_ObjectToWorld,v.vertex);o.uv = v.texcoord;return o;}fixed4 Fragment(v2f i) : SV_TARGET{fixed3 worldNormal = normalize(i.worldNormal);fixed3 lightDir = normalize(UnityWorldSpaceLightDir(v.worldPos));fixed4 texColor = tex2D(_MainTex,i.uv);//将透明度低于_Alpha的剔除掉clip(texColor.a - _Alpha);fixed3 albedo = texColor.xyz * _BaseColor.xyz;fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz * albedo;fixed3 diffuse = _LightColor0.xyz * albedo * saturate(dot(worldNormal, lightDir));return fixed4(diffuse + ambient, 1.0);}ENDCG}}
}

透明度测试-AlphaTest相关推荐

  1. Unity_Shader学习笔记_02_透明度测试,透明度混合,半透明.shader入门精要

    关于透明度测试,主要是通过clip函数来实现裁剪功能 函数:void clip(float4 x);void clip(float3 x);void clip(float2 x);void clip( ...

  2. html透明度_Unity透明效果-透明度测试

    在之前的记录中已经知道了透明度测试的原理.本节主要就在Unity中通过透明度测试实现透明效果进行实践. 原理回顾 透明度测试采用一种"非舍即留"的机制,即,若某片元的透明度不满足条 ...

  3. 【Unity Shader】实现透明度测试和透明度混合

    本篇开始将进行<入门精要>初级篇最后一部分的学习,完成透明效果的学习. 1 Unity中实现透明效果的方法 一个像素的RGBA参数中的最后一项A指的就是透明度Alpha.在之前的实践中,一 ...

  4. unity shader学习---透明度测试,透明度混合

    unity实现透明效果 效果图 理论 Alpha Test Alpha Blend 改进 开启深度写入的半透明效果 双面渲染的透明效果 代码部分 效果图 Alpha Test Alpha Test W ...

  5. Shader-透明效果-透明度测试

    深度缓冲: 渲染每个物体,会将深度值写入深度缓冲. ZWrite: Controls whether pixels from this object are written to the depth ...

  6. unity物体设置透明度_URP自学笔记5. 透明度混合与透明度测试

    1.概述 本节中我们回顾一下两种透明方法,透明度混合与透明度测试.透明度混合用于实现半透明,透明度测试则用于实现消融效果之类"消失"效果. 2.透明度混合 透明度混合是一种混合方式 ...

  7. 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/41923661 作者:毛星云(浅墨) ...

  8. 【Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/41923661 作者:毛星云(浅墨) ...

  9. 【Unity3D Shader编程】之四 热带雨林篇 剔除 深度测试 Alpha测试以及基本雾效合辑

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本系列文章由@浅墨 ...

最新文章

  1. 20145324 《信息安全系统设计基础》第十周学习总结
  2. hdu4814 模拟(黄金分割进制转换)
  3. DCMTK:类OFList和OFListIterator的测试程序
  4. densepose安装_基于DensePose的姿势转换系统,仅根据一张输入图像和目标姿势
  5. 计算机信息导论论文,电子信息导论论文2000字
  6. Oracle 常用sql场景应用(未完待续......)
  7. 处理有外键约束的数据
  8. Java中的析构方法finalize
  9. python写安卓app控制蓝牙_Python脚本利用adb进行手机控制的方法
  10. 11.收货地址模块-新增收货地址①
  11. 史上最全天气数据接口包括环境、气象、预警、水文、预报、实况、格点,落区、等值面、雷达、云图、空气质量实况及预报、气候统计、雷电分布、灾害性天气、短临预报、航空气象、农业气象、旅游气象、生活指数等
  12. 反向代理负载均衡之APACHE
  13. 自动控制系统的典型环节
  14. HTTP 503 error
  15. Win7下硬盘安装Ubuntu-16.04 LTS教程
  16. 使用树莓派进行pH测定
  17. ArcBlock冒志鸿:区块链3.0时代最先应用于政府服务体系|筱静观察
  18. 第三篇 IT 技术支持工程师职业发展路径与技能要求
  19. SCA在得物DevSecOps平台上应用​
  20. 微信里的APK链接接打不开怎么办?微信扫描二维码下载APK的解决方案

热门文章

  1. [风一样的创作]防XSS注入攻击
  2. zuul配置请求拦截_spring cloud网关通过Zuul RateLimit 限流配置
  3. 设计模式 电子书 免费下载
  4. python儿童宣传-2019儿童编程语言大全
  5. 借助cpolar 和大家分享有趣的照片 1 (在本地电脑上部署piwigo网页)
  6. 初级前端程序员接单,私活,指导
  7. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 5笔记
  8. web自动化文件上传--Pywin32库和WinSpy工具
  9. Vue.js实例学习:获取DOM元素
  10. Vue获取DOM元素并修改属性