我目前正在使我的个人引擎适应 Vulkan,并且我想重新实现透明窗口,我已经在 OpenGL 中实现了这一点。
我认为我需要做的就是选择正确的颜色格式(带有 alpha 通道)并将compositeAlpha属性设置VkSwapchainCreateInfoKHR为VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR。
然而,用完全透明的颜色清除窗口并不能提供预期的结果。它是完全不透明的。
当然,我的窗口系统(自从我拥有 OpenGL 以来没有改变)支持它,当我只是禁用渲染时,我也无法在窗口的假定位置点击,这告诉我它在那里。
是否有任何其他必要的更改来使这项工作?
图像格式是VK_FORMAT_B8G8R8A8_UNORM我在Sascha Willems 示例中找到的 vulkan 设置。
该功能(与大多数其他功能一样)在使用之前必须查询是否受支持。否则无效。
此特定功能由vkGetPhysicalDeviceSurfaceCapabilitiesKHRas查询pSurfaceCapabilities->supportedCompositeAlpha。它是位域/标志集,因此可以支持多种模式或不支持。
我认为结果/功能支持可能会受到 VkSurface 的影响。也就是说,平台窗口是如何创建的。或者也许驱动程序制造商还没有实现它(尽管该功能是可支持的)。
由于它之前在 OGL 中对您有用,因此后者更有可能。但是玩平台窗口创建参数并不会受到伤害......
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |