问题标签 [msaa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1228 浏览

opengl - 纹理过滤是一种抗锯齿技术吗?

我知道使用 MSAA 的抗锯齿技术,但 MSAA 只能处理边缘,但着色器采样可以处理内部像素。

纹理过滤和着色器采样有什么区别,是不是也是一种抗锯齿技术,比如Bilinear,Trilinear,让图像看起来更平滑?

0 投票
1 回答
71 浏览

split - directx11如何实现分屏效果

嘿,我正在使用 Directx11 中的 msaa,这很容易实现。

但现在尝试制作分屏,例如,屏幕左侧没有 MSAA 渲染,右侧使用 MSAA,所以我可以看到两者之间的差异。

在此处输入图像描述

对于我的想法,我认为,我必须创建两个不同的交换链和不同的场景并并排渲染,因为我们可以在创建交换链时设置 msaa 计数。我的意见是不是太多了?在directx11中是否有任何标准或通用(?!)方式来实现这种效果?只是一些想法将不胜感激!

0 投票
2 回答
216 浏览

directx-12 - 是否可以在 DirectX 12 桌面应用程序中将 HDR 与 MSAA 结合使用?

使用 DirectX 12 的 DirectX 工具包,我能够成功编译和运行各个 MSAA 和 HDR 教程示例。但是,当我将 MSAA 和 HDR 组件的相关代码组合到一个Game.cpp文件中时,编译失败并显示调试层消息:

D3D12 错误:ID3D12CommandList::ResolveSubresource:指定的格式与源资源不兼容。格式:R10G10B10A2_UNORM,源资源格式:R16G16B16A16_FLOAT [RESOURCE_MANIPULATION ERROR #878:RESOLVESUBRESOURCE_INVALID_FORMAT]

我正在为 SDR 显示监视器使用 HDR 示例代码,因此需要应用色调映射。关于调用的顺序,我在尝试解析 MSAA 渲染目标之前调用结束 HDR 场景:

然后在 MSAA 解析块之后,我将色调映射语句放置如下:

我发现在设置描述符堆以绘制 2D 精灵(在 3D 场景上)之前尝试色调映射会导致错误:

D3D12 错误:CGraphicsCommandList::SetGraphicsRootDescriptorTable:包含句柄 0x80000253a82ff205 的描述符堆 (0x0000025428203230:'DescriptorHeap') 与当前设置的描述符堆 0x0000025428203540:'EffectTextureFactory' 不同。[执行错误#708:SET_DESCRIPTOR_TABLE_INVALID] D3D12:为上一条消息启用了BREAK,即:[错误执行#708:SET_DESCRIPTOR_TABLE_INVALID]

我承认这是第一次尝试将 HDR 和 MSAA 结合起来相当天真,但我担心这些功能在 DirectX 12 中可能不兼容和/或相互排斥。我理解为什么在 MSAA 解决过程中会出现资源兼容性问题,因为我们需要为 HDR 使用浮点渲染目标。我应该注意,如果我通过将m_msaa boolean 设置为false来跳过 MSAA 代码块,我的程序将使用 HDR 正确运行和渲染。

期待任何人可能有的任何建议。如果需要足够的代码或有关程序的其他详细信息,我很乐意更新我的帖子。

0 投票
2 回答
62 浏览

opengl - 如何获取 MSAA 中每个样本的深度?

我想知道是否有一种方法可以获取片段着色器中每个样本的深度。我已经尝试过GL_ARB_sample_shading扩展,它可以提供样本 ID 和子像素坐标,但我还没有找到任何深度路径。我试过gl_FragCoord了,但它在一个像素内的所有样本中都是一个常数,给出类似 (?.5,?.5,?,?) 的东西。

假设在 MSAA 中为每个样本计算和测试深度。我的问题是它是否可以在片段着色器中使用。

我想丢弃由两个深度图定义的深度范围之外的片段。这就是为什么我需要每个样本的深度来执行正确的每个样本丢弃。我的深度图也是用 MSAA 生成的,我使用GL_ARB_texture_multisample扩展在片段着色器中获取多采样深度。

这是示例代码,但我不知道如何实现getSampleDepth.

0 投票
0 回答
23 浏览

c# - 为什么 Msaa IAccessible 在多个线程中变得无效?

我在托管 c++ 中实现了一个简单的类(编译成 dll),它在内部使用 IAccessible,如下所示。

我在 C# 中创建了一个 MsaaElement,并尝试获取元素的位置。一切正常。我可以多次获得该位置而没有任何问题。

但是,当我将 C# 中的 MsaaElement 传递给另一个线程并尝试在另一个线程中获取元素的位置时,返回的位置始终是 (0,0,0,0)。

为什么 iAccessible 接口在另一个线程中失败?

谢谢。

0 投票
0 回答
16 浏览

nvidia - 在 nvidia crad 上启用 msaa 时的伪影

当我尝试在 D3D11 中启用 MSAA 4X 时,它有工件。

人工制品

我通过 NVIDIA Frame Debugger 调试程序,然后发现一个奇怪的现象。错误的像素有三个候选片段,但最终的像素不是其中之一,看起来像是“混合”。此外,片段显示其失败通过的未知原因,“未知原因”是什么?

帧调试器

我发现了一个类似的问题https://github.com/helix-toolkit/helix-toolkit/issues/488,启用背面剔除后,大部分伪影消失了,但仍然很少有伪影。