我开始对学习OpenGL感兴趣,想要了解在学习过程中使用哪种语言会更好。我已经非常熟悉C#,根据我的阅读,我可以使用Tao API从C#代码中与OpenGL进行接口交互。然而,从我阅读的内容来看,真正专业的OpenGL开发者通常是C++程序员。
当使用OpenGL处理3D图形时,C++相比C#有哪些优势呢?由于我对这方面是完全的新手,因此希望能得到任何反馈。
我开始对学习OpenGL感兴趣,想要了解在学习过程中使用哪种语言会更好。我已经非常熟悉C#,根据我的阅读,我可以使用Tao API从C#代码中与OpenGL进行接口交互。然而,从我阅读的内容来看,真正专业的OpenGL开发者通常是C++程序员。
当使用OpenGL处理3D图形时,C++相比C#有哪些优势呢?由于我对这方面是完全的新手,因此希望能得到任何反馈。
获取最新的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#。如果你认为这是一个优势,那么它就是一个优势。