如何在Vulkan中创建渐变背景?

时间:2017-06-14 20:59:24

标签: background gradient vulkan

我一直在修补Vulkan Triangle演示。我试图获得渐变背景而不是纯色。在OpenGL中,通过渲染四边形并保持背景像素可以轻松完成。当我在Vulkan中执行此操作时,四边形会覆盖三角形。任何人都知道如何做到这一点?我尝试了单独的渲染通道,但不知道如何保持第一个渲染通道(背景)的像素任何帮助或示例代码将不胜感激。谢谢,

3 个答案:

答案 0 :(得分:1)

不需要单独传递,您可以在hello三角形之前渲染渐变四边形。

如果你有一个单独的着色器,那么你可以绑定它。如果数据位于单独的VBO中,则根据需要绑定它。

答案 1 :(得分:0)

如果您只想要一个全屏四边形来显示渐变,则不需要单独的渲染过程。实际上它与你在OpenGL中的表现几乎相同。使用渐变渲染覆盖整个屏幕的三角形或四边形,然后绘制三角形。如果四边形隐藏三角形,即使三角形更靠近观察者(在z轴上),也可能禁用了深度测试。

答案 2 :(得分:0)

好的,我让深度缓冲区清除工作正常。这是代码片段。将此命令放在背景渲染和三角形之间。

    VkClearDepthStencilValue val;
        val.depth = 1.0f;
        val.stencil = 0;
        VkImageSubresourceRange range;
        range.layerCount = 1;
        range.levelCount = 1;
        range.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT;
        range.baseArrayLayer = 0;
        range.baseMipLevel = 0;
        vkCmdClearDepthStencilImage(m_drawCmdBuffers[i], m_depthStencil.image, VK_IMAGE_LAYOUT_GENERAL, &val, 1, &range);