首页 > 解决方案 > 以相同的 Alpha 混合金属

问题描述

我正在画三个正方形,如图所示在此处输入图像描述

我正在添加带有 alpha 0.2 的红色。

在重叠区域中,我也希望这些区域处于 0.2 的 alpha 中。现在它以 0.6 的形式出现。我怎么能这样做。目前我的管道描述符是

 pipelineDescriptor.colorAttachments[0].isBlendingEnabled = true
 pipelineDescriptor.colorAttachments[0].rgbBlendOperation = .add
 pipelineDescriptor.colorAttachments[0].alphaBlendOperation = .add
 pipelineDescriptor.colorAttachments[0].sourceRGBBlendFactor = .one
 pipelineDescriptor.colorAttachments[0].sourceAlphaBlendFactor = .one
 pipelineDescriptor.colorAttachments[0].destinationRGBBlendFactor = .oneMinusSourceAlpha
 pipelineDescriptor.colorAttachments[0].destinationAlphaBlendFactor = .oneMinusSourceAlpha

我需要在 Pipeline Descriptor 或 In Shader 中执行此操作吗?

标签: iosswiftmetalmetalkit

解决方案


如果您希望最终结果与您正在绘制的 alpha 具有相同的 alpha,则需要将它们设置为:

 pipelineDescriptor.colorAttachments[0].sourceAlphaBlendFactor = .one
 pipelineDescriptor.colorAttachments[0].destinationAlphaBlendFactor = .zero

这意味着最终的 alpha 对您正在渲染的目标没有任何贡献。


推荐阅读