unity物体设置透明度_URP自学笔记5. 透明度混合与透明度测试
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/UnityShaderMagicBookgithub.com
unity物体设置透明度_URP自学笔记5. 透明度混合与透明度测试相关推荐
- unity物体设置透明度_透明度混合(Alpha blending)
文章目录 前言 一.混合模式 1.说明 2.常用公式 二.问题 总结 参考 前言 本文介绍unity渲染中的透明度混合,和透明度混合相关问题. 一.混合公式 1.说明 unity上,Blend Src ...
- Unity官方教程Ruby大冒险的自学笔记
Unity官方教程Ruby大冒险的自学笔记 一. //正确例子: void Update(){//获取运动矢量moveX = Input.GetAxisRaw("Horizontal&quo ...
- 【V-REP自学笔记(八)】控制youBot抓取和移动物体
[V-REP自学笔记(八)]控制youBot抓取和移动物体 [导读] 在这一系列的V-REP自学笔记中,我们定了一个小目标,完成一个Demo.使用官方提供的KUKA公司的YouBot机器人模型来实验机 ...
- 【FlexSim2019】自学笔记:交通工具路径设置 | NetworkNode | 操作员固定路径 | 叉车固定路径
路径设置是基本需求.实现起来也很简单. 只有三步: 将点放好,并将能连通的两点间建立A连接: 将与实体连接点与实体进行A连接(如上图,即最左侧的黑点与左侧传送带的灰点建立A连接.最右侧的黑点与右侧传送 ...
- 微信小程序自学笔记-----文本和字体样式设置
微信小程序自学笔记-----文本和字体样式设置 用于自己自学微信小程序知识点总结,新手小白一枚,请大佬勿喷 知识要点 · 各种字体样式属性命名及含义 · 利用style和class设置字体样式的方法 ...
- 【无标题】Unity随手记——给Scene窗口内的物体设置SelectIcon
由于开发项目,某个Scene场景内会有很多的静态物体.我们在Hierarchy窗口中选中后,虽然有三维坐标显示在物体上,但是也很难分辨. 于是unity提供了给编辑物体设置icon. 这些icon大家 ...
- 《Unity Shader入门精要》笔记02 第1章+第2章
基础篇 第1章+第2章 --本系列是基于人民邮电出版社<Unity Shader入门精要>(冯乐乐著 )的自学Unity Shader笔记,如果您发现了本文的纰漏,还望不吝指正. 基础篇 ...
- 《Unity Shader入门精要》笔记:高级篇(3)以及扩展
本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...
- Unity API常用方法和类学习笔记2
Unity API常用方法和类学习笔记2 ------Mathf & Input & Vector & Random 类Mathf 一.静态变量 print(Mathf.Deg ...
最新文章
- 软件开发环境-按模型及方法分类
- python keyerror(0)
- 【机器学习基础】机器学习模型的度量选择(下)
- centos6实现kvm嵌套虚拟化
- XML Schema ---complexType-----复合元素
- 安卓系统挂载NTFS格式硬盘_Mac 读写 NTFS硬盘管理开源工具NTFSTool
- 怎么在Windows11上禁用文件资源管理器搜索历史记录
- Chrome 更新导致部分 macOS 的文件系统损坏,无法重启
- IPLAT62--后台返回提示参数
- 有人劫持智能设备报假警,并直播出警画面
- 如何迎接新的 .NET 时代
- c语言实用教程第四版pdf,C语言大学实用教程(第4版)
- VC知识库大讲堂C++系列教程(目前最新)
- html中嵌入flvplayer.swf播放器,播放视频
- 【3dsmax插件】FBX转Bip插件 Bippy.ms
- java put 语句_Java put语句
- 微信小程序java python node医疗微服务系统医院预约挂号系统
- python微信投票该用户被锁定、恢复时间_因投票微信账号出现异常被封禁7天的解封方法讲解...
- 2017年10米分辨率全球土地覆盖产品(FROM-GLC10)Python下载爬虫
- xposed微信插件大全
热门文章
- MATLAB及工具箱计算特点汇总及图形工作站配置探讨202007
- 改写《魔塔》后篇01:在地图上绘制怪物
- Win10安装GCC/G++运行环境
- java打包jdk版本问题
- 日本iPad手术导航 帮医生把握血管及器官相对位置
- MySQL 导出数据select into outfile用法
- linux上传替换文件报错,linux上搭建nginx+ftp,实现文件的上传与访问
- 放烟花的python程序
- 如何根据sessionID获取session
- assertequals() php,对比两个不同版本的assertEquals()