介绍

Alpha测试:符合条件的像素显示出来,不符合的丢掉

一、fixed function shader的透明通度测试

ShaderLab: Legacy Alpha Testing

语法
  1. 关闭Alpha测试
AlphaTest Off

渲染所有的像素(默认)或者…
2. 开启Alpha测试

AlphaTest comparison AlphaValue

设置alpha测试,根据alpha值筛选符合条件的像素进行渲染

  1. Comparison Alpha测试的比较命令

    • Greater
      Only render pixels whose alpha is greater than AlphaValue.
    • GEqual
      Only render pixels whose alpha is greater than or equal to AlphaValue.
    • Less
      Only render pixels whose alpha value is less than AlphaValue.
    • LEqual
      Only render pixels whose alpha value is less than or equal to from AlphaValue.
    • Equal
      Only render pixels whose alpha value equals AlphaValue.
    • NotEqual
      Only render pixels whose alpha value differs from AlphaValue.
    • Always
      Render all pixels. This is functionally equivalent to AlphaTest Off.
    • Never
      Don’t render any pixels.
开启alpha测试,只渲染alpha值大于0.5的像素:

Shader "Hidden/alphatest"
{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{// No culling or depthCull Off ZWrite Off ZTest Always// alphatest// AlphaTest OffAlphaTest Greater 0.5Pass{SetTexture[_MainTex]}}
}

二、可编程shader的透明度测试

ShaLab的AlphaTest命令在shader2.0中是不起作用的。
由于可编程shader会对纹理采样,可以直接操作纹理的透明通道值,因此也不需要AlphaTest命令。而fixed function shader不会纹理采样,只能依靠AlphaTest命令进行Alpha测试。

同样,开启alpha测试,只渲染alpha值大于0.5的像素:

Shader "Hidden/alphatest2"
{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{// No culling or depth//Cull Off ZWrite Off ZTest AlwaysBlend SrcAlpha OneMinusSrcAlphaPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}sampler2D _MainTex;fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);if(col.a < 0.5 ){return fixed4(0,0,0,0);}else{return col;}return col;}ENDCG}}
}

【Unity Shader】 Alpha测试相关推荐

  1. Unity Shader 模板测试

    模板测试和深度测试很相似: 1.如果模板测试不通过,则该像素会被舍弃 2.有模板缓冲区,每像素对应存放一个8位整数(0-255) 3.模板测试也是一个比较值的过程,将参考值和模板缓冲的值进行比较 当然 ...

  2. Unity Shader - ddx/ddy偏导函数测试,实现:锐化、高度图、Flat shading应用、高度生成法线

    文章目录 ddx, ddy 说明 DirectX - ddx, ddy OpenGL - dFdx, dFdy 伪代码表示 可用它来做什么 简单的边缘突出应用 Shader 边缘突出-锐化-增加差值 ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. Unity Shader 之 透明效果

    本文引用 Unity Shader入门精要 开启透明混合后,一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,还有--透明度.透明度为1,则完全不透明,透明度为0,则完全不会显示. 在Unity ...

  10. unity shader入门精要_Unity Shader 入门(一):渲染流水线

    一.参考与说明(需要写在开始东西): 1.1 Unity Shader 入门紧要学习 candycat1992/Unity_Shaders_Book​github.com 1.2 还有一些图形学的历史 ...

最新文章

  1. jexus防止产生 *.core文件
  2. 嵌套向量中断控制器NVIC和系统控制块SCB特性
  3. Spring Cloud构建微服务架构(四)分布式配置中心
  4. android怎么关应用程序,如何关闭Android应用程序?
  5. Java客户端操作HBase:创建表代码示例
  6. 周末包邮送书和小红包中奖名单公布
  7. mysql 列 随机数_mysql mmp 某字段插入随机数!(说不定那天就忘记了,存下来再说)...
  8. springcloud服务网关Netflix Zuul入门简介
  9. 右键菜单显示项的可见度控制 c# 1614605595
  10. 机器学习 正则化(regularization)
  11. 从毕业生当中看人与人的差距
  12. 批处理(bat)xcopy详解
  13. 无线局域网和蜂窝移动网络_苹果调整 iPhone 移动数据下载限制:从 150 MB 升至 200 MB...
  14. 修改解锁植物大战僵尸所有模式、关卡、金钱
  15. css border实现渐变
  16. 001电机的分类:不骗你,如果你没读这篇文章,可能都不知道还有这种类型的电机!
  17. Java之颜色工具-yellowcong
  18. 滴滴宋世君:数据分析师究竟是做什么的?
  19. VMware14详细安装带软件
  20. 【整理】C#中GridView隐藏指定列的方法

热门文章

  1. 杜兰大学计算机专业,杜兰大学计算机科学
  2. 华为笔记本电脑home键和end键快捷方式
  3. 核磁共振基本原理——核磁共振现象
  4. P1251 餐巾计划问题 解题报告
  5. 弱电安防监控系统的安装要点
  6. 基于python的饭店点餐外卖管理系统#毕业设计
  7. 乐观的态度使工作充满激情
  8. 搜狗主动推送python脚本(自动登录免验证码)
  9. 用计算机求算术平方根的按键顺序,6.1 .2 用计算器求算术平方根及算术平方根的应用...
  10. java detach_jQuery中detach()方法用法实例