如果您正在用 C# 编写下一个 3D 图形密集型应用程序(例如 3D 建模和动画软件),那么哪一个是更好的选择?
如果我们认为 C# 是独立于平台的,那么 OpenGL 似乎很诱人,但是性能等呢?
由于使用的语言是C#,因此性能是需要考虑的非常重要的因素。
编辑:您还可以考虑 SlimDX 和 TAO、OpenTK、csGL 等。
我推荐 OpenGL 的原因如下:-
- 跨平台 - OpenGLES 如今与移动平台特别相关
- OpenGL 着色语言实现本质上优于 DirectX 着色器。
- OpenGL 更容易学习,因为可以用很少的代码行设置基本渲染
- 从哲学上讲,OpenGL 被设计为通用渲染引擎,而 DirectX 始终面向游戏,因此 OpenGL 似乎更适合您的问题。
- OpenGL 是一种稳定的技术,已经存在了一段时间,并将继续如此。 DirectX 更依赖于微软的突发奇想,如果微软愿意的话,它可能会立即被弃用。
也就是说,您的系统要求和您的个人喜好可能会以任何一种方式倾斜,因为这两种方法都是可靠的实现。缺点是 OpenGL 在很大程度上是一个状态机,很难适应 OO,尽管这当然不是不可能的。
编辑:添加是为了澄清我对 OpenGL 着色器模型本质上优于 DirectX 的评论。这是因为 DirectX 着色器是在开发时针对通用 GPU 模型与程序一起编译的,而 OpenGL 着色器则作为源代码保存并由 OpenGL 驱动程序在运行时编译。因此,从理论上讲,驱动程序编写者可以利用 GPU 的特定(或运行旧程序时更新的)功能并创建运行速度比 DirectX 着色器更快的编译代码。这是一个小问题,但可能非常重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)