我开始对OpenGL感兴趣了,我试图找出在学习过程中使用哪种语言的最佳方向.我已经非常熟悉C#,从我读过的内容中,我可以利用Tao API与C#代码中的OpenGL接口.但是,在我看来,在我看来,那些真正专业的OpenGL开发人员也是C++程序员.
我很好奇在使用OpenGL中的3D图形时,C++可能比C#有什么优势.任何输入都会很棒,因为我完全是新手.
通过C#使用OpenGL有一些困难.
获取最新的SDK.Tao自2008年以来一直没有更新.OpenTK自2010年6月以来一直没有稳定版本.自2010年6月以来,OpenGL已经发布了两个版本.这是很多你无法从C#访问的功能.我不知道OpenTK的寂静有多稳定,但我一般不相信夜莺.使用C/C++,您可以获得要加载的任何函数指针.使用C#,您只能使用工具包提供的内容.
在C#中处理缓冲区对象可能会非常痛苦.是的,有一些方法可以将统一值数组上传到缓冲区对象.但是在C#中构建交错的顶点数据(其中不同的组件具有不同的类型)要困难得多.在C和C++中,您可以直接访问内存.所以很容易有一个3向量的浮点数后跟一个4向量的字节,所有存储在每个顶点16个字节.在C#中相当困难.
图形代码通常是性能更关键的代码区域之一.如果您正在制作像游戏这样的高性能渲染应用程序,通常需要C++提供的控件.很多C#的优秀功能在这里起作用.
使用C#提供的唯一真正优势是......它是C#.在某种程度上,你觉得你有优势,那么这是一个优势.