标签: msaa

在Delphi中创建可访问的UI组件

我试图从标准的VCL TEdit控件中检索可访问的信息.get_accName()和Get_accDescription()方法返回空字符串,但get_accValue()返回输入TEdit的文本值.

我刚开始尝试了解MSAA,此时我有点迷失了.

我的TEdit是否需要具有可以向MSA公开的其他已发布属性?如果是这样,那就需要创建一个从TEdit下降的新组件,并添加其他已发布的属性,如"AccessibleName","AccessibleDescription"等......?

另外,请注意,我查看了应该可访问的VTVirtualTrees组件,但MS Active Accessibility Object Inspector仍然看不到AccessibleName已发布属性,即使在该控件上也是如此.

在这一点上,我感到茫然,并对此事的任何建议或帮助表示感谢.

...
interface
uses
   Winapi.Windows,
   Winapi.Messages,
   System.SysUtils,
   System.Variants,
   System.Classes,
   Vcl.Graphics,
   Vcl.Controls,
   Vcl.Forms,
   Vcl.Dialogs,
   Vcl.StdCtrls,
   Vcl.ComCtrls,
   Vcl.ExtCtrls,
   oleacc;

const
  WM_GETOBJECT = $003D; // Windows MSAA message identifier
  OBJID_NATIVEOM = $FFFFFFF0;

type
  TForm1 = class(TForm)
    lblFirstName: TLabel;
    edFirstName: TEdit;
    panel1: TPanel;
    btnGetAccInfo: TButton;
    accInfoOutput: TEdit;
    procedure btnGetAccInfoClick(Sender: TObject);
    procedure edFirstNameChange(Sender: TObject);
  private
    { Private declarations }
    FFocusedAccessibleObj: IAccessible;
    FvtChild: Variant;
    FAccProperties: TStringList;
    FAccName: string;
    FAccDesc: string;
    FAccValue: string;
    procedure DoGetAccessibleObjectFromPoint(aPoint: TPoint); …
Run Code Online (Sandbox Code Playgroud)

delphi accessibility delphi-2006 msaa delphi-xe3

20
推荐指数
2
解决办法
3868
查看次数

在iPad/iOS上启用4x MSAA抗锯齿时的工件

我使用Apple网站上的示例在我的iPad OpenGL ES 2.0应用程序上启用了4x MSAA.在模拟器上,这种方法效果很好,图像也很漂亮,但是在设备上边缘有颜色的伪像应该是抗锯齿的.这存在于iPad/iPad2和iPhone4上,但不存在于模拟器中.我在下面附上了一个神器看起来像什么的图片.谁知道这可能是什么?

例

opengl-es antialiasing ios msaa

6
推荐指数
1
解决办法
4733
查看次数

Vulkan API:支持的最大 MSAA 样本为 VK_SAMPLE_COUNT_8_BIT

我正在编写基于 Vulkan API 的渲染器。目前我正在尝试为颜色附件添加 MSAA。我很确定我可以使用VK_SAMPLE_COUNT_16_BIT ,但 limits.framebufferColorSampleCounts返回允许 MSAA 级别高达VK_SAMPLE_COUNT_8_BIT(含)的位标志

我在全新的 NVIDIA QUADRO RTX 3000 卡上运行。我还使用最新的 NVIDIA 驱动程序:441.28 我检查了 OpenGL 和 GPU 上限查看器显示中的限制

GL_MAX_FRAMEBUFFER_SAMPLES = 32

这有什么意义呢?该限制仅由 Vulkan API 规定吗?如果硬件不支持超过 x8,那么这是否意味着 OpenGL 驱动程序在 CPU 上模拟它,例如通过超级采样之类的东西?这就是 khronosdev.slack 的几位渲染开发人员对我所说的话?是否有意义?供应商是否必须按照标准进行编译,然后要么以正确的方式实施 MSAA,要么根本不实施?

有没有可能 OpenGL 并不“真正”支持超过 x8 MSAA,但驱动程序通过超级采样之类的东西来模拟它?

更新

本页解释了 OpenGL 的 MSAA 实现的整个状态,实际上,从中可以清楚地了解为什么 Vulkan 不在我的卡上提供超过 x8 的样本。这是妙语:

一些 NVIDIA 驱动程序支持多重采样模式,这些模式在内部实现为多重采样和自动超级采样的组合,以获得比硬件直接支持的更高级别的抗锯齿效果。

nvidia msaa vulkan

6
推荐指数
1
解决办法
1248
查看次数

具有D3DImage共享资源的DirectX11/DirectX10的多重采样(MSAA)

我试图使用D3DImage在DX11中获得MSAA,但似乎是不可能的,因为不允许共享多重采样纹理,如下所述:http://msdn.microsoft.com/en-us/library/windows/桌面/ ff476531(v = vs.85)的.aspx

实际上,我使用了D3DImage的SharpDX实现,它可以很好地用于DX11和DX10,因为只要有人反对就可以离开.

解决这个问题的方法在这个主题中描述:http://sharpdx.org/forum/5-api-usage/1000-d3d11-problem-with-usage-of-texture2d,这些方法都没有成功.还有另一个线程提出了类似的问题:多重采样和Direct3D10/D3DImage互操作

最后,问题实际上是,如果有人能够确认,那么绝对不可能使用D3DImage来渲染DX10/DX11的抗锯齿内容吗?

directx wpf msaa sharpdx d3dimage

5
推荐指数
1
解决办法
2414
查看次数

openGL MSAA 在带有 nouveau 驱动程序的 linux 上不起作用

最近我尝试在 Linux 下使用 MSAA(多样本抗锯齿)。结果令人惊讶:对于 Nvidia 专有驱动程序,一切都像魅力一样工作,但是对于 nouveau 驱动程序,它不起作用。奇怪的是,glxingo 说支持 GLX_ARB_multisample 并且我能够在 GLX_SAMPLE_BUFFERS 设置为 1 和 GLX_SAMPLES 设置为 4(或 8)的情况下获得适当的 FBConfig。但是在渲染时,图片没有应用抗锯齿。我的项目和 freeglut 都存在这个问题,所以我将提供一个基于 glut 的小程序来演示这个问题:

/*
 * Test multisampling and polygon smoothing.
 *
 * Brian Paul
 * 4 November 2002
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <GL/glut.h>


static GLfloat Zrot = 0;
static GLboolean Anim = GL_TRUE;
static GLboolean HaveMultisample = GL_TRUE;
static GLboolean DoMultisample = GL_TRUE;


static void
PrintString(const char *s)
{
   while (*s) {
      glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s); …
Run Code Online (Sandbox Code Playgroud)

linux opengl antialiasing mesa msaa

5
推荐指数
1
解决办法
1465
查看次数

MSAA 和顶点插值导致值超出范围

我将GLSL与顶点着色器和片段着色器一起使用。

顶点着色器输出highp float[0,1]范围内的a

当它到达片段着色器时,我看到值(在三角形边缘)不少于 1.1!

这个问题就会消失,如果我...

如果启用了 MSAA,固定的 0 到 1 高精度浮点如何以远大于 1 的值到达片段着色器?

顶点着色器代码:

out highp float lightcontrib2;
...
lightcontrib2 = clamp( irrad, 0.0, 1.0 );
Run Code Online (Sandbox Code Playgroud)

片段着色器代码:

in highp float lightcontrib2;
...
if (lightcontrib2>1.1) { fragColor = vec4(1,0,1,1); return; }
Run Code Online (Sandbox Code Playgroud)

果然,使用 MSAA 4x,这就是 OpenGL 生成的图像。(观察窗口中心的磁铁色像素。)

洋红色像素

我已经排除了非数字值。

GL_版本:3.2.0 NVIDIA 450.51.06

interpolation glsl msaa

5
推荐指数
1
解决办法
389
查看次数

线性过滤可以用于MSAA纹理的FBO blit到非MSAA纹理吗?

我有两个2D纹理.第一个是MSAA纹理,使用的是目标GL_TEXTURE_2D_MULTISAMPLE.第二个非MSAA纹理使用目标GL_TEXTURE_2D.

根据OpenGL 关于ARB_texture_multisample规范,GL_NEAREST在绘制MSAA纹理时,只有一个有效的过滤选项.

在这种情况下,这两个纹理都GL_COLOR_ATTACHMENT0通过各自的Framebuffer对象附加.他们的分辨率也是相同的大小(根据我的知识,这对于将MSAA与非MSAA联系起来是必要的).

因此,考虑到当前的限制,如果我将MSAA保持FBO到非MSAA持有FBO,我仍然需要GL_NEAREST用作过滤选项,或者是否GL_LINEAR有效,因为两个纹理都已经被渲染到?

opengl textures framebuffer blit msaa

3
推荐指数
1
解决办法
743
查看次数

dx12 打开 4x msaa 失败

我正在学习“使用 DirectX 12 进行 3D 游戏编程简介”。在初始化 d3d(第 4 章)中运行示例代码,当我想使用 4xmsaa 时,发生了错误,如下图所示,请帮助我。 错误的数字

msaa directx-12

1
推荐指数
1
解决办法
546
查看次数