关于 Alpha is Transparency 到底需不需要勾的最终结论

结论当然是需要勾的!

原因要从透明混合模式说起,我们知道 unity shader 里有2种透明混合模式

Blend SrcAlpha OneMinusSrcAlpha // 传统透明度
Blend One OneMinusSrcAlpha // 预乘透明度

传统透明模式颜色混合正确是有前提的,就是做混合的目标,它是不透明的,也就是alpha=1。不透明物体的有效颜色即其颜色本身。

如果有那种半透明的情况,就是 alpha 在 0~1 之间,其实结果可能是不正确的,最直接表现就是,在混合结果中,在透明和不透明区域的边缘,会产生黑边

对于这种问题,其实预乘透明度模式其实是可以解决的,因为它具有更好的纹理过滤特性。

但是它也不是没有缺陷的,在实践中,我们的纹理的数据源大多是 RGBA32,即单通道 8 比特,只能表示 0-255 的整数,同时游戏资产还会根据目标平台做纹理压缩。

由于精度问题,原本相近的颜色在预乘后会存储为更相近,甚至相同的颜色,经压缩后很容易产生大量 artifacts。要使用预乘 alpha 的纹理,一般会建议采用单通道 16 位的存储。

由于这种情况,即使预乘有很好的纹理过滤特性,也没有被广泛采用。

理论推导可以看这篇文章,写的很清楚了:关于理解 Premultiplied Alpha 的一些 Tips - 知乎

现在,就又说回来 Alpha is Transparency 的意义了,具体可以看官方文档:Texture Import Settings - Unity 手册

勾上以后,引擎会把边界处透明的颜色设置成和临近的不透明区域相近的值,这样边缘的不透明像素在Texture Filtering或计算mipmap时,就不会和黑色混合了(透明=黑色),从而避免产生黑边。

因此,但凡用alpha来表示透明的纹理,都应该把这个勾上。这样才能确保我们在用传统透明模式混合时的正确性。

Google行为透明度是指Google公司在其服务和运营过程中公开透明其行为和决策的程度。作为全球最大的搜索引擎和互联网技术公司之一,Google的行为透明度具有重要意义。 首先,Google积极向用户展示了广告的来源和针对性。它通过显示广告的前几个字母,让用户了解广告的来源,以便用户可以对广告的可信度进行判断。同时,Google还提供用户偏好设置,让用户决定他们是否愿意接收针对性广告。 其次,Google会定期公布透明度报告,详细列出政府和其他机构要求查询用户数据的全球数据。这些报告揭示了Google政府数据请求的数量和类型,以确保用户知道他们的隐私权。 此外,Google还通过透明度中心向用户提供关于其产品和服务的信息。用户可以了解到Google的数据收集方式和使用目的,以及Google如何保护用户的隐私和安全。 最后,Google积极回应用户的隐私和安全问题。如果用户对广告或搜索结果的相关性有疑问,Google提供了举报机制,允许用户向其报告问题。Google会对收到的投诉进行调查,并采取必要的措施来解决问题。 总的来说,Google在行为透明度方面取得了一定的成绩。通过向用户展示广告来源和提供透明度报告,用户可以更好地了解Google在数据收集和使用方面的做法。然而,Google仍然需要不断努力,进一步提高其行为透明度,以满足用户对隐私和安全的不断增长的担忧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值