【问题标题】:Rendering in opengl 3.1+ without VBO在没有 VBO 的 opengl 3.1+ 中渲染
【发布时间】:2016-05-11 19:53:19
【问题描述】:

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

【问题讨论】:

标签: c++ opengl


【解决方案1】:

简短回答:否

立即模式在 OpenGL >= 3.0 中被弃用,尽管一些实现仍然包含部分固定功能管道。

OpenGL 3.1 移除了Immediate Mode 的大部分功能

见Legacy OpenGL

为了在 OpenGL 3.1 或更高版本的核心配置文件中绘制某些内容,您必须至少使用一个 VBO 和 VAO

【讨论】:

  • 我说的是使用顶点数组(客户端渲染)而不创建 VBO 和 VAO,而不是立即模式。我认为这两个是不同的,尽管我觉得它们都已被弃用。虽然不确定
  • 请注意:技术上是可以在没有 VBO 的情况下进行绘制 --- by using gl_VertexID。请注意,这实际上只适用于简单的事物(例如全屏三角形)。
  • @PankajBansal “客户端渲染”,正如您所说,只是驱动程序为您执行 glGenBuffers / glBuffer[Sub]Data,而不是您手动执行。它仍然必须上传到 GPU,因此在绘制缓冲区之前执行glBuffer[Sub]Data 将完成相同的操作(但更快,因为应用程序比必须进行猜测的驱动程序更了解如何处理缓冲区!)。跨度>
猜你喜欢
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多