在我最小的 vulkan 三角形应用程序中,硬编码的蓝色值是黑色的
Hard coded blue values are black in my minimal vulkan triangle application
我正在按照 vkguide.dev 上的指南进行操作,目前我的屏幕上只显示一个小三角形。但是,似乎我搞砸了颜色的表示方式。
当我将三角形硬编码为蓝色(fragColor = vec4(0.f, 0.f, 1.f, 1.f)
并通过渲染通道中的 ClearValue 将背景设置为红色时,我的三角形看起来像这样:
另一个奇怪的行为是,在蓝色背景下(如果我将它用作 clearValue,它会起作用),我的红色三角形(fragColor = vec4(1.f, 0.f, 0.f, 1.f)
变成粉红色:
我正在使用的教程推荐 vk-bootstrap 库来设置 Swapchain-、Device-、Queue- 和 Vulkan 实例创建,因此其中可能还有一个默认值不适用于我的设置.
我正在 Linux 使用专有的 Nvidia 驱动程序,但希望 none 是这里的问题。
如评论中所述:问题是由错误设置的管道颜色混合附件状态引起的,其中颜色写入掩码中的蓝色通道缺少一位。这导致三角形看似根据渲染通道的清晰颜色改变颜色。
我正在按照 vkguide.dev 上的指南进行操作,目前我的屏幕上只显示一个小三角形。但是,似乎我搞砸了颜色的表示方式。
当我将三角形硬编码为蓝色(fragColor = vec4(0.f, 0.f, 1.f, 1.f)
并通过渲染通道中的 ClearValue 将背景设置为红色时,我的三角形看起来像这样:
另一个奇怪的行为是,在蓝色背景下(如果我将它用作 clearValue,它会起作用),我的红色三角形(fragColor = vec4(1.f, 0.f, 0.f, 1.f)
变成粉红色:
我正在使用的教程推荐 vk-bootstrap 库来设置 Swapchain-、Device-、Queue- 和 Vulkan 实例创建,因此其中可能还有一个默认值不适用于我的设置. 我正在 Linux 使用专有的 Nvidia 驱动程序,但希望 none 是这里的问题。
如评论中所述:问题是由错误设置的管道颜色混合附件状态引起的,其中颜色写入掩码中的蓝色通道缺少一位。这导致三角形看似根据渲染通道的清晰颜色改变颜色。