use*_*590 3 c++ opengl abstraction immediate-mode
我正在为OpenGL构建一个图形API,它基于基本的调用绘图图形样式.基本上,不是将数据存储到GPU中,而是使用它的句柄调用它,而是提供信息以绘制每次更新应该绘制的内容.我知道它很慢,但它很简单,适用于非性能关键应用程序.无论如何,有没有现代的glBegin/glEnd?它不需要调用每个顶点,但我可以在每次更新时发送数据,而不将顶点存储在gpu中?
你几乎回答了自己的问题.
是否有任何现代等效于glBegin/glEnd?它不需要调用每个顶点,但我可以在每次更新时发送数据,而不将顶点存储在gpu中?
基本上没有,现代的方法是使用VAOs与驻国际中心组织(和企业家们).
如果您要更改VBO中的数据,请记住您可以更改glBufferData中的mode参数.
GL_STREAM_DRAW - 数据存储内容将被修改一次并最多使用几次.
GL_STATIC_DRAW - 数据存储内容将被修改一次并多次使用.
GL_DYNAMIC_DRAW - 数据存储内容将被重复修改并多次使用.
然后GL_STATIC_DRAW使用GL_DYNAMIC_DRAW它会比使用时更多地增加FPS GL_STATIC_DRAW,尽管这取决于数据量以及更改频率的频率.但是尽可能多地限制它,就像你不需要更新缓冲区中的数据一样.
您可以在此处阅读有关OpenGL Wiki上不同缓冲区的更多信息.