我绘制了以固定间隔重叠的小方块,因此在“绘图应用程序”中感觉就像纹理笔刷。
目前,我使用管道描述符
pipelineDescriptor.colorAttachments[0].rgbBlendOperation = .add
pipelineDescriptor.colorAttachments[0].alphaBlendOperation = .add
pipelineDescriptor.colorAttachments[0].sourceRGBBlendFactor = .sourceAlpha
pipelineDescriptor.colorAttachments[0].sourceAlphaBlendFactor = .one
pipelineDescriptor.colorAttachments[0].destinationRGBBlendFactor = .oneMinusSourceAlpha
pipelineDescriptor.colorAttachments[0].destinationAlphaBlendFactor = .oneMinusSourceAlpha
我的目标是当两个笔触相互交叠时,我想要一种白色,如OpenGL中的Blend模式添加剂
我附了一张我现在得到的照片。
当笔划交叉时,它应显示为白色。
提出实现方法
最佳答案
似乎您没有在MTLRenderPipelineColorAttachmentDescriptor上设置blendingEnabled属性。另外,请确保您使用的是sRGB纹理,以便采样器将知道如何在混合时将8位值解码为线性光。