同一张图像有红、绿、蓝和Alpha四个通道,并不意味着它们始终以同一种关系存放。Blender 4.5词汇表分别列出Straight Alpha与Premultiplied Alpha,又单独解释两者转换可能发生的数据损失。阅读这组定义,重点不只是辨认名称,还要知道一个表示方法能够保留什么,另一个为何未必能接住。

直通Alpha将RGBA存成四个相对独立的通道,RGB不受Alpha影响。手册据此把它理解为一幅RGB颜色图像,另有一张Alpha遮罩。在遮罩完全透明的位置,颜色通道依然可能保存颜色。因此,看不见某处颜色,与文件根本没有保存那处颜色,是两种不同情况。

预乘Alpha则把Alpha乘入RGB,表示成为R乘A、G乘A、B乘A以及A。假设某处A为零,原先颜色通道中不为零的数也会在这种相乘后变成零。手册明确说,直通转换成预乘时,完全透明区域的颜色会成为黑色并丢失。此后只把名称改回直通,不能凭空找回这些原先的颜色。

但不能据此断言,直通一定比预乘保存的信息更完整。手册给出反方向的例子:预乘可以表达一个对象既向观看者发光,又让背景光透过。它以透明火焰渲染说明这种关系:火焰贡献自己的光,同时仍让后方对象的光通过。转成直通之后,这种效果也会丢失。

两段说明关心的条件并不相同。前一段是透明遮罩之下仍存在的颜色;后一段是发光贡献与背景透过同时存在的关系。若把转换描述成一条永远可逆的通道,会同时漏掉这两类例外。更准确的读法是,两种Alpha表示各有能够表达而另一种不能完整表达的数据,损失有时并不显眼。

Alpha Convert节点页说明,它的工作对象是图像Alpha通道的格式,映射方向分别为转成预乘与转成直通。节点提供两个方向,不等于词汇表承诺两个方向互为无损逆运算。方向说明回答正在进行哪种转换,数据损失说明回答转换之后仍保留什么,两者需要结合阅读。

这里依据的是4.5版本手册的定义,未对具体图片、节点结果或文件格式做实测,也未给出合成设置步骤。对渲染与合成资料而言,记录Alpha表示方式之外,注明是否存在透明区域颜色或特殊发光表达,才能把转换的含义说完整。四个通道仍在,并不能单独证明信息也完整地回来了。

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。