Unity之Shader Alpha 测试 和 8中比较条件 - 七
来源:互联网 发布:域名备案注销 编辑:程序博客网 时间:2024/05/21 04:20
Alpha 测试 和 8中比较条件
通道道是8位的灰度图像,能够显示1-256种灰度,用来表示颜色的RGBA值。R红色,G绿色,B蓝色,A透明值, 其中RGB为原色通道,A为透明通道。在通道中,以白色代替透明表示要处理的部分,以黑色表示不需处理的部分。所有通道取值范围是 [0,255], 但是在Shader里取值范围是[0,1], 0和1分辨对应0和255Alpha 检测用于在 fragment 函数完成最终的计算之后,在即将写入到帧中之前,通过和一个固定的数值比较,来决定当前fragment函数的计算结果到底要不要写入到帧中,从而输出到屏幕上。Alpha检测的具体比较数值可以在运行时确定,而AlphaTest的比较条件有 Greater 点的Alpha值大于 X时渲染, GEuqal 点的Alpha值大于等于 X时渲染,Equal 点的Alpha值等于 X时渲染,NotEqual 点的Alpha值不等于X时渲染,Less 点的Alpha值小于 X时渲染,LEqual 点的Alpha值小于等于 X时渲染,Always 全渲染,Never 全部渲染这8中情况
使用方法如下
AlphaTest Less 0.5
AlphaTest Greater 0.3
注:使用AlphaTest需要贴图带有 Alpha通道
在代码中的实际运用如下
Shader "Custom/PassFour" { Properties { //定义一个贴图 _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags {"RenderType" = "Opaque" "IGNOREPROJECTOR" = "TRUE" "QUEUE" = "Transparent"} LOD 200 Pass { //AlphaTest Greater 0.6 //AlphaTest Less 0.5 AlphaTest Greater 0.4 AlphaTest Less 0.9 // 通过绑定固定通道来使用定点色 BindChannels { Bind "Vertex", vertex // 绑定定点 Bind "Normal", normal Bind "Color", color Bind "Texcoord", texcoord0 Bind "Texcoord", texcoord1 } //给材质设置 贴图 SetTexture [_MainTex] { Combine texture * primary double } } } FallBack "Diffuse"}
效果如下
选择材质
选择贴图信息如下
效果一
效果二
效果三
根据实际情况选择适当的组合
所选贴图要有 RGBA 即需要带有 Alpha通道
0 0
- Unity之Shader Alpha 测试 和 8中比较条件 - 七
- Unity Shader之剔除、深度测试、alpha测试基础示例
- <Shader>Unity Shader 中的 alpha测试
- Unity Shader (四)Alpha测试(alpha test)
- Unity Shader Alpha混合 Blending
- Unity 之 Shader ZTest 深度测试 - 十
- Unity Shader入门精要笔记(七):Unity Shader内置文件、变量和语义
- Unity之Shader过滤掉不带Alpha通道贴图的背景颜色 - 四
- 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
- 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
- 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
- 【浅墨Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
- Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
- Unity Shader 之Geometry Shader
- shader中的z、stencil、alpha测试
- Unity Shader 学习笔记 (七) 根据切线和法线方向设置模型颜色shader
- 【Unity Shaders】Alpha Test和Alpha Blending
- 【Unity Shaders】Alpha Test和Alpha Blending
- TRANCE宏的利用
- 构建源码树----Linux内核剖析(三)
- 两种快速排序算法性能的比较
- WCF学习
- 网络编程socket之bind、Listen 及 accept .
- Unity之Shader Alpha 测试 和 8中比较条件 - 七
- 内核memory barrier学习
- MySQL5.5下载地址
- java中静态代码块的用法 static用法详解
- eclipse 更改编码utf-8
- Web缓存百科
- SOCK_STREAM和SOCK_DGRAM两种数据类型
- C语言运算符优先级
- C/C++的简单几何思想