c# - VBO 或显示列表 - GPU 兼容性

标签 c# opengl compatibility opentk

我正在开发一个新的 OpenGL 应用程序,我知道显示列表将在 OpenGL 3.1 中弃用(连同许多其他有用的功能,这(对我来说)似乎有点愚蠢)并替换为顶点缓冲区对象。我在 NVidia 卡上使用 VBO 成功地绘制了一个三角形,但该示例无法在我的上网本上的 Intel 芯片上运行,因为它不支持 glGenBuffers。 OpenGL 中似乎存在一个关键缺陷(新旧 GPU/GMA 之间的兼容性破坏)。作为一家小型企业,我的游戏需要与尽可能多的系统兼容,但我不希望我的程序不能在较新的显卡上运行(因为它依赖于显示列表,已从 OpenGL 4.1 中删除)规范)。这将为我提供对图形卡(旧的和新的)最广泛的支持。显示列表,还是顶点缓冲对象?

最佳答案

如果您的应用程序将在 GMA 上运行,那么您的多边形数一定很低。因此,在新视频卡的驱动程序中模拟显示列表的效率低下不会成为问题,它们有空闲的带宽。

如果您仍然担心效率,请确保使用 glVertexPointer/glDrawArray 来最大化批量大小。这可以与显示列表结合使用,但减少了列表中单独操作的数量,因此减少了模拟问题。

最坏的情况,如果某些平台确实不支持显示列表,您可以将 glCallList 替换为函数调用。

关于c# - VBO 或显示列表 - GPU 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876976/

相关文章:

c# - 发布ASP .NET MVC项目时的“The type or namespace name could not be found”

c# - 无法转换 lambda 表达式

opengl - opengl 中的 mipmap 生成 - 是硬件加速吗?

fonts - Tahoma 的字体对网络安全吗?

c# - Web API Put Request 生成 Http 405 Method Not Allowed 错误

c# - 从 SQL 数据库中删除

c++ - C++ RAII 类中的 OpenGL 对象不再有效

c++ - 立方图上的 OpenGL 奇怪的红绿蓝线重复三次

html - IFrame 图像大小调整

visual-studio-2013 - 如何制作在 VS2010/VS2013-preview 上同样工作的 F# 项目?