C#WPF和抗锯齿中的3D渲染

时间:2015-08-25 17:44:39

标签: c# wpf antialiasing

对不起,我的英文不好!

我在Viewport3D中创建了一些行。这些行由parallelipipeds表示。

问题:当我创建具有相同特征(宽度/高度/ depht)的多个行时,有些行比其他行宽。

解决方案:我通过设置

的附加属性来使用Anti-Aliasing
viewport3D => RenderOptions.SetEdgeMode(myViewport, EdgeMode.Unspecified); 

线条现在完全一样。要找出上述解决方案,首先我:

  • 检查线条是否具有相同的特性(如果我在编程中出错)。

    结果:这些线具有完全相同的特性(除了它们有不同的坐标)。

  • 检查是否是因为我代表一行parallelipiped。我认为如果parallelipiped稍微旋转,那么投影线的宽度可能会改变。

    所以:我更改了parallelipiped for cylinder =>无论旋转的是什么,圆柱体的投影总是具有相同的宽度。但即使有圆柱体,一些线条也比其他线条宽。

我意识到我的编程不是问题,而是渲染。我发现我可以使用附加属性EdgeMode更改渲染。

当我将EdgeMode设置为Unspecified(= Anti-Aliasing enabled)时,所有线条都完美呈现,它们都具有相同的width。但是,如果我将EdgeMode设置回Aliased(= Anti-Aliasing disabled),那么问题就在那里。

我的问题是:为什么我有这个问题?我可以做其他事情,而不是更改EdgeMode吗?

感谢您的帮助。

0 个答案:

没有答案