我注意到,在OpenGL 4.0列出的新功能中,包括以下内容:
绘制由OpenGL或诸如OpenCL之类的外部API生成的数据,而无需CPU干预。
这到底指的是什么功能?
它谈论的是ARB_draw_indirect。该功能以4.0为核心,允许GL实现直接从缓冲区对象读取图形参数。因此,要传递给glDrawArrays
或glDrawElements
的参数来自缓冲区,而不是Draw调用。
这样,OpenCL或其他GPGPU代码就可以将该结构写入缓冲区。因此,它们可以决定要绘制多少个顶点。
AMD有一个非常漂亮的变体,允许多绘图功能。