c# - Direct2D 模糊渲染

标签 c# c++ drawing direct2d sharpdx

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

Sample

最佳答案

三年后仍然没有答案,所以这里是:

将抗锯齿设置为 AntiAliasMode.PerPrimitive 将允许在没有像素化或锯齿的情况下绘制非垂直或水平的线条。这解决了椭圆的问题,但不能防止直线模糊。

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

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

关于c# - Direct2D 模糊渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33691816/

相关文章:

c# - List 和 IEnumerable 之间的实际区别

c# - 在 Linux 和 Windows 上使用 C# 进行进程间通信

c++ - 检测 MFC 应用程序中的内存泄漏

delphi - delphi中的图像缓冲区实现

c# - 在 C#6 中使用命名参数进行字符串插值

java - Unity 是否使用 Xamarin?

c++ - 在 rdbuf 之后重用 stringstream

c++ - 优化特定功能?

android - Libgdx:在特定矩形中绘制 Actor

jquery - 使用 jQuery 在图像上绘制 "draw"简单线条并保存到 Rails DB 的最简单方法是什么?