我绘制了以固定间隔重叠的小方块,因此在“绘图应用程序”中感觉就像纹理笔刷。
当前,我使用管道描述符
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模式添加剂
我附了一张我现在得到的照片。
当笔划穿过时,它应该显示为白色。
建议一种实现方式
答案 0 :(得分:0)
您似乎没有在MTLRenderPipelineColorAttachmentDescriptor上设置blendingEnabled属性。另外,请确保您使用的是sRGB纹理,以便采样器将知道如何在混合时将8位值解码为线性光。