搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
IT小白
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
[附源码]Java计算机毕业设计SSM航空订票系统
2
Spring boot Druid 多数据源JDBC和注解事务_mybatisplus druid多数据源
3
GitHub打不开解决办法
4
python获取app信息的库_python爬取 “得到” App 电子书信息
5
【SQL】一文详解嵌入式SQL(建议收藏)_嵌入式sql编程
6
零基础手把手教你如何使用Laf免费玩转Midjourney
7
安全模型和业务安全体系_ipdrr 安全模型
8
零基础入门:使用Python pyWinAuto自动化你的Windows任务_windows pyton automatic
9
QProgressBar+中间显示文本
10
你必须要掌握的大数据计算技术,都在这了
当前位置:
article
> 正文
【风宇冲】Unity3D教程宝典之Shader篇:第十三讲 Alpha混合_shader,alpha值设为0,结果看起来是白色的
作者:IT小白 | 2024-02-16 21:13:20
赞
踩
shader,alpha值设为0,结果看起来是白色的
原创文章如需转载请注明:转载自
风宇冲Unity3D教程学院
Shader第十三讲
Alpha混合
Alpha Blending,中文译作Alpha混合
Blending就是控制透明的。处于光栅化的最后阶段。
这里例如我们给一个模型贴一个材质,那么在某个点计算出来颜色值称为源,而该点之前累积的颜色值,叫目标。
语法
Blend Off
不混合
Blend SrcFactor DstFactor
SrcFactor是源系数,DstFactor是目标系数
最终
颜色
= (Shader计算出的点颜色值 * 源系数)+(点累积颜色 * 目标系数)
属性(往
SrcFactor,
DstFactor 上填的值
)
one
1
zero
0
SrcColor
源的RGB值,例如(0.5,0.4,1)
SrcAlpha
源的A值, 例如0.6
DstColor
混合目标
的RGB值
例如(0.5,0.4,1)
DstAlpha
混合目标
的A值
例如0.6
OneMinusSrcColor
(1,1,1) -
SrcColor
OneMinusSrcAlpha
1-
SrcAlpha
OneMinusDstColor
(1,1,1) -
DstColor
OneMinusDstAlpha
1-
DstAlpha
运算法则示例:
(注:r,g,b,a,x,y,z取值范围为[0,1])
(r,g,b) * a = (r*a , g*a , b*a)
(r,g,b) * (x,y,z) = (r*x , g*y , b*z)
(r,g,b) +
(x,y,z)
= (r+x , g+y , b+z)
(r,g,b) -
(x,y,z)
= (r-x , g-y , b-z)
在树叶使用的Shader中添加Blend代码
Blend zero one:
仅
显示背景的RGB部分,
无Alpha透明通道处理。
Blend one
zero:
仅
显示贴图的RGB部分,无Alpha透明通道处理。
A通道为0即本应该透明的地方也渲染出来了。
Blend one
one:
贴图和背景叠加,
无Alpha透明通道处理。仅仅是颜色rgb数值的叠加更趋近于白色即(1,1,1)了。
Blend SrcAlpha
zero:仅仅显示贴图
,贴图含
Alpha透明通道处理。但是贴图中的透明部分,即下图黑色部分没有颜色来显示,因为源颜色乘以alpha值0,为0;而混合目标的颜色乘以zero 0,也是0。所以透明部分显示的颜色为(0,0,0)
Blend SrcAlpha
OneMinusSrcAlpha:
最终颜色 = 源颜色 * 源透明值 + 目标颜色*(1 - 源透明值)
最常用的透明混合方式。贴图alpha值高的部分,显示得实,而混合的背景很淡。而alpha值高的部分,贴图显示得淡,而背景现实得实。
举例:
(1)假设贴图有一个不透明红色点
, Color(1,0,0,1),该点背景色为不透明蓝色
Color(0,0,1,1)
最终颜色 =
(1,0,0)* 1+(0,0,1)*(1-1) = (1,0,0)
结论一:贴图alpha值为1时,仅显示贴图,不显示背景
(2)假设贴图有一个透明红色点
, Color(1,0,0,0),该点背景色为透明,但B通道值为1,即Color(0,0,1,0)
最终颜色 =
(1,0,0)* 0+(0,0,1)*(1-0) = (0,0,1)
结论二:贴图alpha值为0时,仅显示混合目标即背景,不显示贴图
但是目标alpha值为0,即其实这个点的背景是透明的,而我们却把它显示出来了,这就不对了。
经验:带A通道的贴图中,空的地方不只A值为0,RGB值也要为0,不然容易出错。
(3)假设贴图有一个半透明红色点
, Color(1,0,0,0.8),该点背景色为不透明蓝色
Color(0,0,1,1)
最终颜色 =
(1,0,0)* 0.8+(0,0,1)*(1-0.8) = (0.8,0,0.2)
而假如0.8变为0.2时,
最终颜色 =
(1,0,0)* 0.2+(0,0,1)*(1-0.2) = (0.2,0,0.8)
结论:贴图alpha值越大,颜色
越
偏向贴图;
alpha值越小,颜色越偏向混合目标
Blend组合的情况就先讲这么多了,更多的组合需要自己去试去用,现在请再回过头看看第五讲的引言,是不是有一种恍然大悟的感觉呢?
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/IT小白/article/detail/96708
推荐阅读
article
「
Unity3D
」(
10
)
自定义
属性
面板
Inspector
详解_
unity
propertyfiel...
https://zhuanlan.zhihu.com/p/34234315EditorGUILayout.Propert...
赞
踩
article
unity3d
All
compiler
error
s
have
to be fixed befor...
unity3d
All
compiler
error
s
have
to be fixed before you can ...
赞
踩
article
GameFrameWork
框架(
Unity3D
)使用笔记(九)
AssetBundle
和游戏打包_u...
如果使用了
GameFrameWork
框架的话,你会发现你点击Build And Run按钮打包运行大概是运行不起来的。本...
赞
踩
article
Unity
Shader——
CGInclude
文件
cginc
...
CGInclude
文件,后缀为.
cginc
的文件,顾名思义就是CG的包含文件,有点类似于C/C++的头文件,我们可以将常...
赞
踩
article
Unity Assetbundle、
Shader
和
Keyword
_
unity
shader
keyw...
0x001:问题引出很早以前,我们遇到了这样的问题 : 打包成AssetBundle后,移动端现实的效果异常,具体怎么个...
赞
踩
article
Unity
Shader
基础_
shader
基础知识
unity...
Unity
Shader
概述_
shader
基础知识
unity
shader
基础知识
unity ...
赞
踩
article
Unity
Shader
入门学习(三)——
Unity
的
Shader
_
unity
shader
...
Pass里面可以定义Pass名称Pass里面
的
Tags还可以有额外
的
设置还有CG语言所写
的
代码,主要是顶点片元着色器,使...
赞
踩
article
Unity3d
数字
模型
制作
规范
_
unity
拍的视频怎么数字化
模型
...
数字
模型
制作
规范
本文提到的所有
数字
模型
制作
,全部是用3D MAX建立
模型
,即使是不同的驱动引擎,对
模型
的要求基本是相同的...
赞
踩
article
Unity3D
打包Assetbundle丢失
Shader
问题_
unity
assetbundle
s...
Unity looks at your scenes and lightmapping settings to figu...
赞
踩
article
Unity3D
AssetBundle
打包与加载_
unity
packassettemp
...
Unity3D
简单的
AssetBundle
打包与加载转载:Unity
AssetBundle
从入门到掌握(适合初学者...
赞
踩
article
Unity3d
C#开发
WebGL
平台转
微信
小游戏
保姆级教程(喜大普奔)_
unity
webgl
微信
...
前言之前馋与wx
小游戏
的大流量的广告分成,用cocos creator拼拼凑凑的搞了两个
小游戏
上线,结果反响平平,个人感...
赞
踩
article
Unity3D
官方教程:
WebGL
(一)_
unity
-
webgl
-
utilities
...
Unity3D
官方教程:
WebGL
什么是 Unity
WebGL
?创建一个Unity
WebGL
项目_
unity
-web...
赞
踩
article
Unity3d
微信
小
程序
(
小
游戏)项目实现流量主接入功能(含源码)_
unity
接入
微信
小
程序
...
很早之前编写了Unity导出
微信
小
游戏的博客,也尝试自己做了个Demo上线了,基本没更新过,不过几个月的时间,用户超过了...
赞
踩
article
Unity3d
2020.3.10总是出现
Hold
on...(
busy
for xxx)... I...
问题如题的问题,总是时不时出现下图的
进度条
,在打开vs(2019)工程时一定会出现,而且等待很长时间也不会结束。进度不会...
赞
踩
article
Unity3d
发布打包后无法
运行
exe 报错
Failed
to
load
mono
解决...
问题点击
运行
发布后的.exe就会出现如下错误:解决原来生成的包里的文件夹在拷贝时少拷了MonoBleedingEdge文...
赞
踩
article
Unity3d
微信
小
程序
游戏_
unity
微信
小
程序
广告...
下载 Unity 插件Plugin for wx game申请小
程序
微信
小
程序
记下 APPIDUnity示例项目1.新建...
赞
踩
article
Unity3D
官方教程:
WebGL
(二)
_
webgl
有
日志
吗...
部署压缩工程调试及问题捕获
_
webgl
有
日志
吗
webgl
有
日志
吗 ...
赞
踩
article
【
Unity
3D
】
Unity
脚本 ④ (
游戏
物体
GameObject
的
坐标
| 修改
游戏
物...
一、
游戏
物体
GameObject
的
坐标
、二、 修改
游戏
物体
GameObject
的本地
坐标
_
unity
获取对象...
赞
踩
article
Unity
shader
Reflect
取反问题
_
shader
取相反...
float3view
_
dir=normalize(
_
WorldSpaceCameraPos.xyz-i.pos
_
worl...
赞
踩
article
unity
shader
中的
矩阵
变换
知识_
unity
shader
矩阵
...
提要 在图形的计算中,比如旋转、缩放、平移、投影等操作,
矩阵
都扮演着极其重要的角色,它是操作图元的基本工具。虽然很多的图...
赞
踩
相关标签
unity
游戏开发
2d游戏
GameFrameWork
UGF
c#
AssetBundle
shader
CGInclude
cginc
Shader
Keyword
Unity Shader
着色器
数字模型制作规范
assetbundle
1024程序员节
Unity微信小游戏
u3d微信小游戏
unity3d
WebGL