首页 > 解决方案 > 多采样输入和输出 (vulkan)

问题描述

我想在其他多采样图像上混合多采样图像。图像具有相同数量的样本和相同的大小。我尝试了两种方法:

  1. 多重采样纹理。片段着色器:
#version 450

layout (set = 1, binding = 0) uniform sampler2DMS textureSampler;

layout (location = 0) out vec4 outFragColor;

void main()
{
    outFragColor = texelFetch(textureSampler, ivec2(gl_FragCoord.xy), gl_SampleID);
}
  1. 输入附件。片段着色器:
#version 450

layout(input_attachment_index = 0, set = 1, binding = 0) uniform subpassInputMS offscreenBuffer;

layout(location = 0) out vec4 color;

void main(void)
{
    color = subpassLoad(offscreenBuffer, gl_SampleID);
}

我启用了sampleRateShading功能,设置minSampleShading1.0f和。结果有些不同,但它仍然是一些矩形垃圾。在输入附件的情况下,混合图像的形式看起来像原始图像,但好像原始图像的像素被替换为垃圾块。sampleShadingEnableVK_TRUE

我已经在非多重采样图像上测试了我的渲染通道和管道(但我对非多重采样图像使用了其他着色器)并且一切正常。

我究竟做错了什么?

标签: vulkanmultisampling

解决方案


推荐阅读