使用OpenGL时,C ++优于C#有什么优势

我开始对OpenGL感兴趣了,我试图找出在学习过程中使用哪种语言的最佳方向。 我已经非常熟悉C#,从我读过的内容中,我可以利用Tao API与C#代码中的OpenGL接口。 但是,在我看来,在我看来,那些真正专业的OpenGL开发人员也是C ++程序员。

我很好奇在使用OpenGL中的3D图形时,C ++可能比C#有什么优势。 任何输入都会很棒,因为我完全不知所措。

通过C#使用OpenGL有一些困难。

  1. 获取最新的SDK。 Tao自2008年以来一直没有更新.OpenTK自2010年6月以来一直没有稳定版本。自2010年6月以来,OpenGL已经发布了两个版本。这是很多你无法从C#访问的function。 我不知道OpenTK的寂静有多稳定,但我一般不相信夜莺。 使用C / C ++,您可以获得要加载的任何函数指针。 使用C#,您只能使用工具包提供的内容。

  2. 在C#中处理缓冲区对象可能非常痛苦。 是的,有一些方法可以将统一值数组上传到缓冲区对象。 但是在C#中构建交错的顶点数据(其中不同的组件具有不同的类型)要困难得多。 在C和C ++中,您可以直接访问内存。 所以很容易有一个3向量的浮点数后跟一个4向量的字节,所有存储在每个顶点16个字节。 在C#中相当困难。

  3. 图形代码通常是性能更关键的代码区域之一。 如果您正在制作像游戏这样的高性能渲染应用程序,通常需要C ++提供的控件。 很多C#的优秀function都在这里起作用。

使用C#提供的唯一真正优势是……它是C#。 在某种程度上,你觉得你有优势,那么这是一个优势。

与您最直接相关的优势是使用C语言编写的示例代码的优势教程,C ++编译器将很乐意接受。

最广泛适用的优势是可移植性:C#是微软的宝贝,在非微软平台上对该语言的支持至多是粗略的。 维基百科目前声称最新的C#ISO标准是2.0,而微软已发布4.0并且已经开发5.0了!