黑色与透明

简介:

            今天遇到了一个问题 解决了很久。是这样的,美术给的一张图,黑底彩图,RGB,没有alpha通道,使用src:alpha  dst:one的方式进行混合,法线这张图的黑色被滤掉了,出现了alpha透明的效果。如下图

原图

 

混合后的图

 

 

乍一看没什么问题,不过稍微想了一下,我的图是不带alpha通道的,也就是通常认为的没有透明信息的,怎么它就变透明了呢,应该是黑色也会叠加上才对啊。

于是一行行看shader,还是没明白,最后还是用pix截了一帧仔细分析才看出来。

 

原来黑色的rgb是(0,0,0),对于一张没有alpha通道的图,它的a值都为1,这样在混合的过程中,结果的RGB=1*(0,0,0)+dst=dst

也就是说对于那些黑色覆盖的像素,直接就是原先的颜色,就是透明了!!!

 

发现这个问题之后 才发现原来是自己纠结了一个很蠢的问题,那就是黑色覆盖白色不等于黑色,还是白色!这似乎是我的思维定势了,似乎认为黑色叠加给别的表面上会把“黑色”叠上去,其实在图形学里黑色是(0,0,0),叠上去什么也没有。这跟画水彩画可不一样。在这个意义上黑色其实就等同了透明。

 

其实这种美术技巧应用于了很多美术场景,对于一些透明(叠加方式)的效果,美术可以直接在黑底上做画,不用做alpha通道

那么一个问题是,如果想要真的把“黑色”也真的叠上去该怎么办:一种是真的做alpha通道,混合方式使用alpha混合,一种是不做alpha通道,混合的方式采用1-dst ,dst 等混合方式,总之blend是多种多样的,以前一直没有细致的扣每一种方式的表现效果

 

 

目录
相关文章
|
3月前
在图片上的文字背景,颜色是黑色?
在图片上的文字背景,颜色是黑色?
17 0
在图片上的文字背景,颜色是黑色?
设计----背景颜色透明和渐变颜色
设计----背景颜色透明和渐变颜色
|
5月前
给图片添加圆角功能,圆角透明
给图片添加圆角功能,圆角透明
25 0
|
6月前
|
前端开发
rgba、十六进制颜色是什么?如何这两个表达白色、黑色、红色、绿色、蓝色?
rgba、十六进制颜色是什么?如何这两个表达白色、黑色、红色、绿色、蓝色?
|
前端开发
将整个网站变为黑白色
将整个网站变为黑白色
将整个网站变为黑白色
颜色的多种表示方式和应用
颜色的多种表示方式和应用
151 0
|
JSON 搜索推荐 Serverless
iOS绘制物理按钮 - 透明圆角渐变边框
iOS绘制物理按钮 - 透明圆角渐变边框
388 0
iOS绘制物理按钮 - 透明圆角渐变边框