【发布时间】:2014-03-16 08:52:44
【问题描述】:
我们都知道 WPF 4.5 中没有用于在 viewport3D 上的 3D 空间中绘制纯线的本机功能。
而且我知道有一些用于 WPF 的 3D 工具包。但对于我的硕士论文,我构建了自己的 3D 引擎。它几乎完成了,但我希望能够绘制我的对象的线框(例如显示球体的镶嵌)。 我的引擎几乎可以渲染所有基本的几何形状(立方体、球体、圆锥体、圆柱体、金字塔......)
你知道如何画线吗? (我唯一的想法是使用一个非常薄的圆柱体或立方体......但我认为这不是很有效,因为我必须为一条线渲染至少 8 个点(12 个三角形))
【问题讨论】:
-
你可以使圆柱体每行 6 个点(5 个三角形)。
-
没错。稍微优化一下是画一个有 6 个点的棱镜。但在那种情况下我数了 8 个三角形;)
-
我最好的猜测是使用像素着色器来绘制线框。
-
这就是我正在寻找的想法类型。不幸的是我不喜欢这个话题,我必须先做研究(3年前我在大学做过一次着色器......我不得不承认这不是我最喜欢的话题;-))
-
首先,WPF 目前不支持 3D 像素着色器,其次,即使它支持像素着色器,它也根本没有任何用处,因为它们在光栅化过程中应用,一旦它已经已决定首先要绘制哪些像素。要使用 z 缓冲等进行适当的固定宽度线框几何,您需要指定原始类型,而 WPF 根本不支持。我的建议是为您的 3D 内容切换到 XNA,并使用 Airspace Popup 将您的 XAML 视图呈现在顶部......或者像其他人建议的那样用圆柱体来伪造它。
标签: c# wpf performance 3d line