ios - Metal alphaBlendOperation .max 奇怪的行为
问题描述
我正在使用金属来绘制一些线条,我的绘图画布中有纹理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 为零。
这是我褪色的刷子,你可以看到有一个渐变的颜色,但我不知道它是否有问题
请与我分享您必须解决的任何想法
解决方案
推荐阅读
- java - 向多个收件人发送电子邮件时,Java Mail API 需要很长时间
- android - 如果我尝试在 android 8.1 下使用 GPU 委托会发生什么
- javascript - 根据选定的搜索条件和搜索关键字显示结果表
- android - 是否可以将原生库/移动 SDK 与 Flutter 集成?
- sql-server - 查找员工的缺勤日期和当前前后的一个日期
- python - python乌龟的while循环内的键绑定
- linux - 在bash中运行多个并行sqlplus连接一段时间
- python - 如何更改数百个基因组中的染色体名称?
- javascript - 单击其他视频后,我试图专注于我的主要 iframe 视频,但它不起作用
- python - 读取excel文件时权限被拒绝错误