我正在画三个正方形,如图所示
我在用alpha 0.2添加红色。
在重叠区域中,我也希望这些区域的alpha值为0.2。现在是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
我需要在管道描述符中还是在着色器中执行此操作?
最佳答案
如果希望最终结果具有与绘制时相同的alpha,则需要将其设置为:
pipelineDescriptor.colorAttachments[0].sourceAlphaBlendFactor = .one
pipelineDescriptor.colorAttachments[0].destinationAlphaBlendFactor = .zero
这将意味着最终的alpha将没有来自您正在渲染的目标的贡献。