vulkan - 多采样输入和输出 (vulkan)
问题描述
我想在其他多采样图像上混合多采样图像。图像具有相同数量的样本和相同的大小。我尝试了两种方法:
- 多重采样纹理。片段着色器:
#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);
}
- 输入附件。片段着色器:
#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
功能,设置minSampleShading
为1.0f
和。结果有些不同,但它仍然是一些矩形垃圾。在输入附件的情况下,混合图像的形式看起来像原始图像,但好像原始图像的像素被替换为垃圾块。sampleShadingEnable
VK_TRUE
我已经在非多重采样图像上测试了我的渲染通道和管道(但我对非多重采样图像使用了其他着色器)并且一切正常。
我究竟做错了什么?
解决方案
推荐阅读
- angular - 无法使用下拉列表中的搜索过滤器显示具有初始值的 mat-select
- sql - 将所有列取消透视(或替代)成行
- javascript - 逐类导入还是整个模块导入,哪个最好?
- css - 小屏时在正文后显示浮动侧边栏
- python - Python 3.6.7 - OpenCV(4.1.2) 模板匹配
- fortran - 声明 CHARACTER 变量时出错:这是 gfortran 错误还是我自己的错误?
- python - 修改 matplotlib 复选按钮
- android - 如何从协程后台线程更新 UI 线程?
- mysql - MySQL 数据库结构:我应该为每个用户创建一个表还是将所有数据保存在一个表中(小型数据库。<20 个用户)
- swift - 有没有办法在 switch 语句中访问不匹配的值?