2

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

4

2 回答 2

3

更新:OP 已澄清他想使用支持 NVidia 3D Vision 的 API

SlimDX 是 DirectX 的 C# 包装器,非常完整。事实上 - 这是一篇关于在 NVidia 3D 中使用 SlimDX 的相关 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 库来说速度较慢,但​​老实说,除非您推动许多百万像素并且对帧速率有高要求,否则这不会引起注意。

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

于 2012-07-19T02:24:57.127 回答
1

你可以试试旧的 GDI+

http://en.wikibooks.org/wiki/Visual_Basic_.NET/GDI%2B

于 2012-07-19T01:34:37.873 回答