什么是 PixelOffsetMode?
What is PixelOffsetMode?
MSDN 不会为还不知道它是什么的人解释它。我搜索过,但只发现它设置了渲染质量。但是以什么方式呢?例如,
是做什么的
Specifies that pixels are offset by -.5 units, both horizontally and
vertically, for high speed antialiasing. (MSDN)
是什么意思?
在绘画过程中,您使用双精度值来呈现您的逻辑图形对象,例如线条、圆圈等。
但是在渲染期间,框架应该将您的逻辑双精度转换为物理整数像素。
在此过程中,框架使用了某种舍入、平滑 (anti-aliasing)
因此,在抗锯齿过程中,您可以使用不同的算法来提供不同的结果;通常他们需要在逻辑像素和它的物理坐标之间计算"distance",所以这个设置的不同模式会影响这个距离的精度。
这是不同模式的很好的例子(基本上是不同的灰色阴影 - 不同的距离):
注意:.net 框架也有实际平滑设置 (SmoothingMode),这基本上意味着 - 我们如何平滑,而不是我们如何在内部计算距离
渲染图像时,PixelOffsetMode 指定像素的各个中心点结束的位置:
- PixelOffsetMode.Half表示坐标(0.5,0.5)与左上像素的中间(=half)对齐,或者说得更清楚一点:(0,0)就是top的左上左像素。
- PixelOffsetMode.None表示坐标(0.5,0.5)与左上角像素的左上角对齐。
MSDN 不会为还不知道它是什么的人解释它。我搜索过,但只发现它设置了渲染质量。但是以什么方式呢?例如,
是做什么的Specifies that pixels are offset by -.5 units, both horizontally and vertically, for high speed antialiasing. (MSDN)
是什么意思?
在绘画过程中,您使用双精度值来呈现您的逻辑图形对象,例如线条、圆圈等。
但是在渲染期间,框架应该将您的逻辑双精度转换为物理整数像素。
在此过程中,框架使用了某种舍入、平滑 (anti-aliasing)
因此,在抗锯齿过程中,您可以使用不同的算法来提供不同的结果;通常他们需要在逻辑像素和它的物理坐标之间计算"distance",所以这个设置的不同模式会影响这个距离的精度。
这是不同模式的很好的例子(基本上是不同的灰色阴影 - 不同的距离):
注意:.net 框架也有实际平滑设置 (SmoothingMode),这基本上意味着 - 我们如何平滑,而不是我们如何在内部计算距离
渲染图像时,PixelOffsetMode 指定像素的各个中心点结束的位置:
- PixelOffsetMode.Half表示坐标(0.5,0.5)与左上像素的中间(=half)对齐,或者说得更清楚一点:(0,0)就是top的左上左像素。
- PixelOffsetMode.None表示坐标(0.5,0.5)与左上角像素的左上角对齐。