Articles of 抗锯齿

闪烁,滚动/平移纹理

闪光 我了解,纹理中的闪烁是由画面上画面上像素的规则网格的亚像素精度混叠引起的。 我在这里有一个很好的例子,我试图通过修改纹理坐标而不是通过移动一些实际的几何来滚动/平移2d纹理。 纹理是“包裹”的,我的想法是填充从左边(或右边)掉落的位,填充到另一边,以实现(几乎)无限大小的单个滚动/平移表面。 不幸的是,随着纹理的随机噪声,当我放大到一路的时候,闪闪发光是一种可怕的。 当我放大一点的时候,似乎没问题,这让我感到困惑。 但无论如何,有没有我可以把我的着色器,以防止这种闪烁的filter? 我在这里有一些损失。 (使问题复杂化,我的纹理实际上只是L16亮度,我在着色器中使用它 – L16采用LINEAR进行采样,调色板纹理是POINT,但我确信这对闪烁没有什么影响)。 请注意,对于video,YouTube已经尽了最大努力去除任何细节,这意味着在编码工件下很难看到闪光。

如何实施CMAA

首先,链接到描述CMAA的实际文章以及如何操作。 https://software.intel.com/en-us/articles/conservative-morphological-anti-aliasing-cmaa-update 我的问题是,我几乎不能理解所涉及的步骤。 要么措辞不好,要么我的阅读理解不好,英文不是我的母语。 难道有人可以用简单的术语来expression(或者,如果对你更容易,也许是伪代码),这样我就可以理解和实现它了吗? 具体步骤1至4。

在Windows上渲染扭曲文本的最高质量方式是什么?

我需要渲染高度可读的文本,与DirectWrite + Cleartype + Truetype相提并论。 Cleartype系统使用子像素抗锯齿。 DirectWrite使事情更进一步,并略微移动字母(亚像素定位,像素捕捉等),以最大限度地提高可读性和最小化失真。 这非常重要,每个主要的Web浏览器都在Windows上使用DirectWrite。 明显的计划(主要缺点)是将DirectWrite渲染为禁用了明文types的纹理(因为子像素AA不适用于变换)并且禁用了像素捕捉(因为该像素“网格”在变换后没有意义)。如果字形放大或缩小,文字看起来会更糟糕,当然,像素捕捉的缺乏会影响可读性。 忽略性能,是否有更高质量的方式来在Windows中绘制扭曲的文字? 编辑:删除关于禁用AA(DWRITE_RENDERING_MODE_ALIASED)的评论。

在DirectX 11中无法启用4X MSAA抗锯齿

我目前正在学习如何使用DirectX11,但我无法使用4X MSAA。 这里是我的代码(因为我只是学习我没有使用任何标题或类,对于乱码)抱歉如果任何人可以指出我需要做的或修复,这将是伟大的。 #define SCREEN_WIDTH 800 #define SCREEN_HEIGHT 600 // include the basic windows header files and the Direct3D header files #include <windows.h> #include <windowsx.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dx10.h> #include <DirectXMath.h> using namespace DirectX; // include the Direct3D Library file #pragma comment (lib, "d3d11.lib") #pragma comment (lib, "d3dx11.lib") #pragma comment (lib, "d3dx10.lib") // […]

GraphicsAdapter缺lessCheckDeviceMultiSampleType的定义

MSDN对此很困惑,XNA的所有不同版本都为我的谷歌search结果混杂在一起。 我想要做的就是在XNA 4.0中找出显示适配器支持哪些抗锯齿模式。 据说,这涉及调用GraphicsAdapter.CheckDeviceMultiSampleType(),但该函数没有定义。 我应该用什么来代替它?

为什么抗锯齿不能应用于Unity中的2D对象?

我在Unity中绘制2D对象。 其中一些对象是使用Unity内置的标准sprite方法绘制的。 其他的在着色器中被计算为距离函数。 在这两种情况下,尽管设置了设置,但我无法让Unity使用抗锯齿。 是否有一个额外的步骤,我错过了需要抗锯齿才能正常工作? 在着色器中实现我自己的AAforms会更好吗?

超采样 – 像素颜色平均计算

我目前正在尝试了解超采样。 维基百科说(或者至less维基百科告诉我 )从一个像素取多个颜色样本来计算最终结果。 但是在我看来,一个像素只有一种颜色,逻辑上,无限量的相同颜色的平均值保持不变。 那么,怎样才能使得到的颜色与原始像素的颜色不同呢?

Java中的反锯齿

在我的游戏中,我想要有不同的反锯齿选项,如:无,X2,X4,X8和X16。 我知道你可以在下面的方式使用Graphics2D的抗锯齿,有没有什么办法可以使用不同的抗锯齿水平(x2,x4,x8和x16)? RenderingHints rh = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); rh.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHints(rh);

即使有抗锯齿8倍多重采样的锯齿边

我有一个室内场景,我已经为公寓和许多内部物体(如灯,窗户等)导入了一个模型。不幸的是,在场景中的几乎所有物体上都有很多锯齿状的边缘,即使是在“Fantastic Quality”反锯齿推到最大。 我还能做些什么来减less在这里看到的锯齿: 这是我的质量设置: 这里是我的模型导入设置:

使用2个不同深度的叠加相机,并在层间切换其剔除掩模,以实现对象select性抗锯齿:

我们叠加了两个相机,其中一个使用AA作为后处理效果(取消AA滤镜)。 具有AA效果的相机具有深度0,并且没有效果的相机具有深度1,如可以在第5和第6张照片中看到的那样。 左边看到的物体在第一层,右边的物体在第二层。然后,我们写了一个脚本,分别按下button1和2,在两层之间切换摄像机的剔除遮罩,并完成对象select抗锯齿在第一个三个图片中看到。 (两张照相机分别在层间切换剔除掩模的方式如图7,8和9所示) 然而,在制作环境3D(参见图1-4)之后,通过对第一人称控制器下的两个摄像头进行教育,我们开始在环境中移动,偶然遇到了一个大问题:当我们从这样一个角度就像在第4张图片中一样,我们要对第一个物体(左边的物体)进行抗锯齿,而第一个物体的深度为0的第一个相机的剔除掩模必须切换到该物体的图层第二个物体必须位于深度为1的第二个摄像机的剔除掩模中。并且由于两个叠加的摄像机的两个图像输出相互重叠, 我们可以得到背面距离摄像机较远的物体的错误/不切实际的结果(见第4张图)。 我们已经尝试切换摄像机的深度,以便第一台摄像机(带有AA-现在具有深度1,第二个摄像机具有深度0) 但是具有AA效果的相机以这样的方式工作,即将AA效果应用于其全景。 所以; 具有AA效果的相机总是必须保持在最低深度,然后将要抗锯齿的物体层分配给AA相机的剔除掩模; 否则在AA相机的视图中的所有对象(在我们的情况下是两个立方体)变成antialised,这是我们不想要的。 所以; 我们如何解决这个问题? 图片如下,在评论中,因为每个职位可以有2个图片: 图1.没有button被按下:两个对象看起来都有别名。 图2.button1被按下:左(1st)对象被反锯齿。 第二个对象仍然是别名。 图3.button2被按下:右(第二)对象被反锯齿。 第一个对象仍然是别名。 图4.使用两个不同深度的叠加摄像机时,3D中出现问题的结果 图5.可以看到摄像机1的属性:使用AA后处理,其深度为0 图6.可以看到相机2的属性:不使用AA后处理,其深度为1 图7.当没有button被按下时,两个对象都在Camera 2的剔除掩码中并被别名化 图8.按下1时,摄像机1(底部)显示第1个物体,摄像机2(顶部)显示第2个 图9按2时,摄像机1(底部)显示第2个物体,摄像机2(顶部)显示第1个