如何在 macOS 上渲染半透明的 MTKView?

Posted

技术标签:

【中文标题】如何在 macOS 上渲染半透明的 MTKView?【英文标题】:How to render a semi transparant MTKView on macOS? 【发布时间】:2018-11-15 15:04:58 【问题描述】:

我有一个输出为 alpha 0.5 的 Metal 着色器在 iOS 上运行良好,显示了底层视图。 ma​​cOS 上的 Tho 不工作。有一个黑色的背景,即使 MTKView 的图层的背景设置为清除..

我注意到 MTKView.isOpaque 属性在 macOS 上不可设置,但不确定这是否是问题,因为它已经设置为 false

还有其他方法可以实现透明吗?

【问题讨论】:

【参考方案1】:

您需要将CAMetalLayerisOpaque 属性设置为false。 CAMetalLayer.h 头文件(Objective-C)中有一条注释说:

/* Note: The default value of the `opaque' property for CAMetalLayer
 * instances is true. */

【讨论】:

成功了!我正在将 ios 框架移植到 macOS(Mac 上的 UIKit 之前),不习惯通过图层而不是视图访问这些属性。谢谢

以上是关于如何在 macOS 上渲染半透明的 MTKView?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MTKView 中使用多重采样?

渲染半透明/透明叠加

在 OpenGL 中渲染一个*填充的*半透明立方体

如何检测 MTKView 中鼠标按下事件发生的位置?

在复杂场景中渲染半透明对象

在OpenGL中绘制到半透明帧缓冲区时如何抗锯齿? [复制]