我应该在VB.Net中使用什么技术用于2D图形? WPF,DirectX,SlimDX?

时间:2012-07-19 00:57:40

标签: wpf vb.net directx slimdx

我最近被聘请帮忙编写一些基于计算机的视觉测试,大部分代码都是用VB.Net编写的。我个人认为用c ++编写它会更好,但我认为这艘船已经航行了。大多数测试在图形上相当简单,例如深度感知测试在黑色背景上只有三个灰色/银色条,并且可以使用nvidia 3D眼镜使中间条看起来弹出或弹出。其他测试不同,但通常涉及简单的2D图形。我的理解是DX9之后没有DirectX支持托管语言。我知道我可以使用XNA但我宁愿不让最终客户下载XNA安装程序。我正在考虑使用WPT但我的理解是WPF基于矢量图形,并且一个WPF Pixel不一定是真正的像素。我需要非常精确地控制对象间距到像素,以便测试准确。我想我的问题归结为我是否应该使用旧版本的DX9 a或b,或者我应该使用像DX一样的DX包装器。我最后的想法是在c ++和directX中创建一个Windows应用程序控件,用于每个测试的图形方面,然后在我的vb.net应用程序中使用该控件,如果可能的话。任何想法都会受到欢迎。

2 个答案:

答案 0 :(得分:3)

更新:OP明确表示他想使用支持NVidia 3D Vision的API

SlimDX是DirectX的C#包装器,非常完整。事实上 - 这是关于使用SlimDX for NVidia 3D的相关SO帖子:Nvidia 3d Video using DirectX11 and SlimDX in C#(如果您阅读后续内容,您会看到海报让它在DX9中运行)

对于仅2D部分,WinForms / GDI +是一个很好的匹配,但是你也可以使用SlimDX对整个事物进行编码,因为你已经有了它。

GDI +:   - 2D图形API   - 您可以使用C#(更接近您想要的C ++)并与传统的VB.Net集成   - 像素级控制

GDI +的唯一缺点是它相对于DX和OpenGL等GPU加速的3D库而言速度很慢,但说实话,除非你推动很多百万像素,并且帧速率要求很高,否则这种情况并不明显。 / p>

Managed DirectX在DX9停止是正确的(并且仅适用于x86目标)。

答案 1 :(得分:1)