Direct2D模糊渲染

时间:2015-11-13 11:33:16

标签: c# c++ drawing direct2d sharpdx

我正在尝试使用Diret2D(SharpDX)渲染一些基元,但结果对我来说并不令人满意 - 所有椭圆都是模糊的(见下文)。是否有一些选项可以使椭圆更平滑?我正在向BitmapRenderTarget渲染几何图形,然后接收Bitmap并将DrawBitmap作为WindowRenderTarget。

Sample

1 个答案:

答案 0 :(得分:0)

三年后仍然没有答案,所以去了:

将抗锯齿设置为AntiAliasMode.PerPrimitive将允许绘制非垂直或水平线,而不会出现像素化或锯齿状。这样可以解决椭圆的问题,但不能防止直线模糊。

OP指的是当细线未与像素位置对齐时发生的模糊性,因此无法完美绘制。一个经典的观察结果是,使用AntiAliasMode.PerPrimitive时,所有线都指定为一个像素粗的网格将出现,其中某些线更宽或更窄,而使用AntiAliasMode.None时,某些线可能会完全消失。

对于垂直和水平线,可以通过在每条线的位置添加或减去0.5像素宽度来解决。此调整将使线条与精确的像素位置对齐,以便可以正确绘制宽度为1的线条。