您的项目的最佳环境是您以最快的方式完成任务的环境。这 - 特别是对于 3D 图形 - 包括库。
根据任务的不同,您可能会逃脱一些次要的 directx 黑客攻击。然后你可以使用 .NET 和slimdx。托管语言倾向于更快地编程并且更容易调试。
也许您需要一个非常好的 3D 引擎?试试Ogre3D或Irrlicht。你需要商业级的质量(有人可能会说 Ogre3D 提供了)——选择 Cryengine 或 Unreal。使用 Ogre3D 和 Irrlicht,您也可以使用 .NET,尽管端口并不总是最新的,并且插件不像 C++ 版本那样容易包含。对于 Cryengine/Unrealengine,我猜你不会有真正的选择。
你需要它更便携吗?用于救援的OpenGL - 尽管您可能需要一些包装器(例如SDL)。
你也需要一个图形用户界面吗?wxWidgets,QT可能是一种可能性。
你已经有一个工具链?您的库需要能够处理文件格式。
你想写一个库吗?C / C++ 可能是一个解决方案,因为世界上大多数地方都可以使用 C / C++ 库。也许使用COM?
还有很多我没有提到的项目/库(XNA、Boost、...),如果您想创建一些不仅显示 3D 图形的程序,您可能还有其他需求(输入、声音, 网络, 人工智能, 数据库, GUI, ...)
总结一下:编程语言是实现目标的工具。必须在手头任务的背景下看待它。任务有自己的需求,这些需求可能会为您选择语言(例如,您需要某个库来获得需要很长时间编程的功能,并且您只能使用语言 X 访问该库)。
如果您需要一个几乎所有的方法:尝试 C++/CLI(可能与 C# 结合使用,以获得更简单的语法)。