在WPF中绘制3D线条

10

我正在开发一个CAD应用程序,考虑使用WPF渲染实体。

但是似乎WPF不支持绘制3D线条。有没有办法在WPF中绘制3D线条?

我不想为每个要绘制的线条实体创建网格,因为我担心这会导致主要性能问题,因为我需要在应用程序中创建大量的线条实体。

如果WPF不能实现这一点,那么是否可以在DirectX 9或10中实现呢?我可以混合使用DirectX和WPF吗?我的意思是使用一些Interop的方式?

非常感谢!

4个回答

3

WPF可以进行3D渲染,而且做得很好

你需要使用Viewport3D类来创建3D效果。

自从WPF 3.5 SP1以来,你可以将DirectX和WPF组合在一起,从而可以制作相当复杂的3D应用程序。


1
非常感谢。如果您能提供一些示例代码来展示我如何与WPF和DirectX进行互操作,我将不胜感激。一个绘制3D线条的例子将会非常有帮助。 - Ram
关于 WPF 3D,WPF SDK 代码示例是一个很好的起点。这个网站也有很好的示例:http://windowsclient.net/downloads/folders/wpfsamples/default.aspx至于 DX->WPF 集成,Dr. WPF 在 CodeProject 上有一个很好的例子:http://www.codeproject.com/KB/WPF/D3DImage.aspx - codekaizen
谢谢。我会尝试一些东西,并稍后再问更多问题。 - Ram
2
我不明白这个回答与线条绘制的问题有什么关系。 - StayOnTarget
这是因为问题不是关于线条绘制的。 - codekaizen

0

我记得几年前WPF的3D工具表现相当不错。我已经很长时间没有在WPF中进行任何3D方面的工作了,所以可能其他库已经超越了它,但我不能确定。

如果您对使用它不感兴趣,您也可以考虑尝试在WPF中使用XNA。这样,您将保持您的托管环境(因为XNA已经取代了托管DirectX)。这里有一篇文章介绍如何做到这一点,尽管我实际上还没有尝试过。


8
一个大大改进、扩展和积极开发的WPF 3D库是Helix Toolkit (http://helixtoolkit.codeplex.com/)。 - Govert
HelixToolkit已被移至GitHub https://github.com/helix-toolkit/helix-toolkit - M.Kumaran
更新:XNA现在已被弃用(http://www.gamasutra.com/view/news/185894/Its_official_XNA_is_dead.php) - Nic
我不明白这如何回答有关线条绘制的问题。 - StayOnTarget

-1

3DTools 库实际上是个糟糕的解决方案。这不仅是我的看法。 例如,将 100-150 个对象从 3DTools 库添加到场景中并尝试旋转场景进行测试,就可以得出关于 3D 工具的答案。 如果您希望在 WPF 3D 中获得快速性能,则必须构建自己的网格。这不是一项复杂的任务,因为您是 3D CAD 开发人员。如果您的任务涉及场景内大约 1000-5000 个简单的 3D 对象,请使用 WPF 3D,没有问题。如果超过此数量(或非常复杂):请使用 XNA、DirectX 或 OpenGL 的 NET 封装。


我不明白这如何回答有关线条绘制的问题。 - StayOnTarget

-1

我不明白这如何回答有关线条绘制的问题。 - StayOnTarget
也许是这样,但也有不止一个问题被问到。 - PeskyGnat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接