1.概述

本节中我们回顾一下两种透明方法,透明度混合与透明度测试。透明度混合用于实现半透明,透明度测试则用于实现消融效果之类“消失”效果。

2.透明度混合

透明度混合是一种混合方式,所谓混合,就是将两种颜色按照一定的公式混合在一起,对于两个重叠的物体A和B来说,如果A的颜色采一点,B的颜色拿一点,两者叠加起来,就是透明度混合。

虽然透明度混合一种算法,但是基本上不用我们自己手动计算,只需要设定好物体的渲染方式与渲染队列,以及设置混合模式就可以了。

在片元着色器中,我们虽然一直要输出一个half4类型的变量,但是其实第四个分量是不起作用的。因为我们设置的渲染类型为Opaque。所以首要的任务是设置渲染标签。

Tags

有了以上条件之后,之后设置混合模式就可以了。

Blend 

之后我们可以通过传入一个透明度值来控制透明度。以下是完整的代码

Shader 

下面是透明度混合的效果

不过这样渲染出来的效果是没有双面渲染的,也就是透过模型,我们没有办法看见模型的内部。为了解决这个问题,我们可以将模型剔除关闭。

Blend 

之后透过模型就可以看到模型的后面了。

3.透明度测试

透明度测试就是一种用于剔除透明像素的手段,它严格来说不是透明效果。而且把一部分像素挖掉。(也可以理解为把这部分像素的透明度设置为0),它本身还是不透明的,而且整个效果只依赖一个叫做clip的函数。

clip

一般,我们可以将value设置为​,这样就可以剔除alpha值低于threshold的像素了。除了这个函数的使用,复制一个基础的着色器过来就可以了。下面是全部的代码。

Shader 

下面是最终的效果。

带有透明通道的素材绘制到一个四边面上,透明像素还是会绘制出来。所以我们增加一个透明度测试来提出掉透明的像素,只留下不透明的部分。

这里用的是自己画的素材,(逃

4.总结

该部分比较简单,主要是回顾一下Blend,ZWrite,Cull操作符。

另外,本次使用到的所有代码都已经上传到了我的github,在下面的链接中可以找到。如果你喜欢这个系列的文章,欢迎关注该专栏,或者给我的github贡献一颗⭐,感谢阅读。

github.com/529324416/UnityShaderMagicBook​github.com

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

  1. unity物体设置透明度_透明度混合(Alpha blending)

    文章目录 前言 一.混合模式 1.说明 2.常用公式 二.问题 总结 参考 前言 本文介绍unity渲染中的透明度混合,和透明度混合相关问题. 一.混合公式 1.说明 unity上,Blend Src ...

  2. Unity官方教程Ruby大冒险的自学笔记

    Unity官方教程Ruby大冒险的自学笔记 一. //正确例子: void Update(){//获取运动矢量moveX = Input.GetAxisRaw("Horizontal&quo ...

  3. 【V-REP自学笔记(八)】控制youBot抓取和移动物体

    [V-REP自学笔记(八)]控制youBot抓取和移动物体 [导读] 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo.使用官方提供的KUKA公司的YouBot机器人模型来实验机 ...

  4. 【FlexSim2019】自学笔记:交通工具路径设置 | NetworkNode | 操作员固定路径 | 叉车固定路径

    路径设置是基本需求.实现起来也很简单. 只有三步: 将点放好,并将能连通的两点间建立A连接: 将与实体连接点与实体进行A连接(如上图,即最左侧的黑点与左侧传送带的灰点建立A连接.最右侧的黑点与右侧传送 ...

  5. 微信小程序自学笔记-----文本和字体样式设置

    微信小程序自学笔记-----文本和字体样式设置 用于自己自学微信小程序知识点总结,新手小白一枚,请大佬勿喷 知识要点 · 各种字体样式属性命名及含义 · 利用style和class设置字体样式的方法 ...

  6. 【无标题】Unity随手记——给Scene窗口内的物体设置SelectIcon

    由于开发项目,某个Scene场景内会有很多的静态物体.我们在Hierarchy窗口中选中后,虽然有三维坐标显示在物体上,但是也很难分辨. 于是unity提供了给编辑物体设置icon. 这些icon大家 ...

  7. 《Unity Shader入门精要》笔记02 第1章+第2章

    基础篇 第1章+第2章 --本系列是基于人民邮电出版社<Unity Shader入门精要>(冯乐乐著 )的自学Unity Shader笔记,如果您发现了本文的纰漏,还望不吝指正. 基础篇 ...

  8. 《Unity Shader入门精要》笔记:高级篇(3)以及扩展

    本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...

  9. Unity API常用方法和类学习笔记2

    Unity API常用方法和类学习笔记2 ------Mathf & Input & Vector & Random 类Mathf 一.静态变量 print(Mathf.Deg ...

最新文章

  1. 软件开发环境-按模型及方法分类
  2. python keyerror(0)
  3. 【机器学习基础】机器学习模型的度量选择(下)
  4. centos6实现kvm嵌套虚拟化
  5. XML Schema ---complexType-----复合元素
  6. 安卓系统挂载NTFS格式硬盘_Mac 读写 NTFS硬盘管理开源工具NTFSTool
  7. 怎么在Windows11上禁用文件资源管理器搜索历史记录
  8. Chrome 更新导致部分 macOS 的文件系统损坏,无法重启
  9. IPLAT62--后台返回提示参数
  10. 有人劫持智能设备报假警,并直播出警画面
  11. 如何迎接新的 .NET 时代
  12. c语言实用教程第四版pdf,C语言大学实用教程(第4版)
  13. VC知识库大讲堂C++系列教程(目前最新)
  14. html中嵌入flvplayer.swf播放器,播放视频
  15. 【3dsmax插件】FBX转Bip插件 Bippy.ms
  16. java put 语句_Java put语句
  17. 微信小程序java python node医疗微服务系统医院预约挂号系统
  18. python微信投票该用户被锁定、恢复时间_因投票微信账号出现异常被封禁7天的解封方法讲解...
  19. 2017年10米分辨率全球土地覆盖产品(FROM-GLC10)Python下载爬虫
  20. xposed微信插件大全

热门文章

  1. MATLAB及工具箱计算特点汇总及图形工作站配置探讨202007
  2. 改写《魔塔》后篇01:在地图上绘制怪物
  3. Win10安装GCC/G++运行环境
  4. java打包jdk版本问题
  5. 日本iPad手术导航 帮医生把握血管及器官相对位置
  6. MySQL 导出数据select into outfile用法
  7. linux上传替换文件报错,linux上搭建nginx+ftp,实现文件的上传与访问
  8. 放烟花的python程序
  9. 如何根据sessionID获取session
  10. assertequals() php,对比两个不同版本的assertEquals()