问题描述
我正在使用金属绘制一些线条,我的绘图画布在 MTLRenderPassDescriptor
中有一个纹理,当我在其中绘制时启用了混合 MTLRenderPipelineDescriptor
并且我正在使用 alphaBlendOperation = .max
renderPassDescriptor = MTLRenderPassDescriptor()
let attachment = renderPassDescriptor?.colorAttachments[0]
attachment?.texture = self.texture
attachment?.loadAction = .load
attachment?.storeAction = .store
let rpd = MTLRenderPipelineDescriptor()
rpd.colorAttachments[0].pixelFormat = .rgba8Unorm
let attachment = rpd.colorAttachments[0]!
attachment.isBlendingEnabled = true
attachment.rgbBlendOperation = .max
attachment.alphaBlendOperation = .max
我可以更改画笔的属性(大小、不透明度、硬度“模糊”)。然而,前两个画笔的效果非常好,如下图所示
但是当我使用带有褪色边的模糊画笔时,我只有一种奇怪的行为,其中线条连接褪色区域没有按预期混合,并且在连接之间创建了一条空的小线。下图描述了这个问题,请检查单线和单点,然后检查连接,您可以非常清楚地看到这种行为
MTLRenderPassDescriptor 甚至应该从下纹理或画笔 alpha 中选择波纹管 alpha,但是当点击第二个和第三个点时,它会创建空行而不是选择一个 alpha,就像在这些区域中使 alpha 为零一样。
这是我的褪色画笔,你可以看到有一个渐变色,但我不知道它是否有问题
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)