C++ 不使用VBO在opengl 3.1+中的渲染

C++ 不使用VBO在opengl 3.1+中的渲染,c++,opengl,C++,Opengl,我想知道是否有可能在不使用VBO和VAO的情况下,使用顶点阵列客户端渲染在opengl 3.1+核心配置文件中绘制。我知道在opengl 3.1+核心概要文件中,使用VAO是必不可少的。我想知道是否可以不使用VBO和VAO,通过使用顶点阵列客户端渲染进行绘制。如果我认为不可能,请您也提供一些参考文件。简短回答:否 OpenGL>=3.0不推荐立即模式,尽管某些实现仍然包含部分固定功能管道 OpenGL 3.1删除了即时模式的大部分功能 看 为了在OpenGL 3.1或更高版本的Core Prof

我想知道是否有可能在不使用VBO和VAO的情况下,使用顶点阵列客户端渲染在opengl 3.1+核心配置文件中绘制。我知道在opengl 3.1+核心概要文件中,使用VAO是必不可少的。我想知道是否可以不使用VBO和VAO,通过使用顶点阵列客户端渲染进行绘制。如果我认为不可能,请您也提供一些参考文件。

简短回答:否

OpenGL>=3.0不推荐立即模式,尽管某些实现仍然包含部分固定功能管道

OpenGL 3.1删除了即时模式的大部分功能


为了在OpenGL 3.1或更高版本的Core Profile中绘制某些内容,您必须至少使用一个VBO和VAO

此处的注释可能会有所帮助:我指的是使用vertex array客户端渲染,而不创建VBO和VAO非立即模式。我认为这两个是不同的,尽管我觉得他们都被弃用了。不确定思想注:从技术上讲,不使用VBO绘图是可能的。请注意,这实际上只适用于简单的事情,例如全屏三角形。@PankajBansal客户端渲染,正如您所说,只是驱动程序为您执行glGenBuffers/glBuffer[Sub]数据,而不是您手动执行。它仍然需要上传到GPU,因此在绘制缓冲区之前执行glBuffer[Sub]数据将完成相同但更快的任务,因为应用程序比必须进行猜测的驱动程序更了解如何处理缓冲区!。