OpenGL渲染模式

5 opengl

到目前为止,我知道立即,显示列表,顶点缓冲区和顶点缓冲区对象渲染.哪个是最快的?哪个OpenGL版本都需要?我该怎么用?

Bar*_*icz 5

现在渲染的最佳(并且几乎只有)方法是使用通用缓冲区,即AKA顶点缓冲区对象.它们是2.1的核心,如果我是正确的,但通常在1.5(as ARB_vertex_buffer_object)中作为扩展出现.它们具有硬件支持,这意味着它们可以并且可能直接存储在GPU内存中.

向其加载数据时,请指定建议的用法.您可以在glBufferData手册中阅读更多相关信息.例如,GL_STATIC_DRAW与静态显示列表非常相似.这使您的图形卡可以优化对它们的访问.


Rei*_*ica 3

现代(阅读:非古代)硬件确实不喜欢立即模式。通过用顶点数组替换立即模式,我发现性能提高了近 2 个数量级。

OpenGL 3 及更高版本仅支持缓冲区对象,所有其他渲染模式均已弃用。

正确使用显示列表是一件非常痛苦的事情,而且在非古老的硬件上不值得。

总结一下:如果你使用 OpenGL 3+,你就必须使用 (V)BO。如果您的目标是 OpenGL 2,请根据需要使用顶点数组或 VBO。