问题标签 [vao]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2592 浏览

c - 为 OpenGL 生成顶点数组

我想使用一些方便的方法来生成用于对象的顶点和颜色数组。根据我在生成数组时所见,这是我目前使用的一个示例:

}

但是当我在这样的事情上使用它时:

渲染不成立,渲染过程中会出现随机问题,例如闪烁、颜色失真等。在使用正常定义的数组(删除生成的顶点及其相关代码)时使用相同的代码进行初始化和渲染时,不会出现问题。

有谁知道我要去哪里错?

0 投票
4 回答
45527 浏览

opengl - OpenGL VAO 最佳实践

我面临一个我认为与 VAO 相关的问题,但我不确定..

我不确定 VAO 的正确用法,我在 GL 初始化期间所做的很简单

其次是

后来,在我的绘图管道中,我只调用了 glBindBuffer()、glVertexAttribPointer()、glEnableVertexAttribArray()等等......而不关心最初绑定的 VAO

这是正确的做法吗?

0 投票
2 回答
4278 浏览

android - Android顶点数组对象?

我正在编写一些 android 代码,为我计划开发的图形密集型应用程序做准备。自 2004 年以来我没有做过任何 OpenGL。我偶然发现了http://www.opengl.org/wiki/Vertex_Array_Object和 PC 平台的多个来源声称使用 vertex-array-objects 是最好的渲染方式。

我的目标平台是搭载 Android 2.3 的 Motorola Atrix 2 智能手机。

我似乎找不到对应于 GL_OES_vertex_array_object 的函数的包含。我想调用类似于 glGenVertexArraysOES 的函数。

如何在 Android 中使用 VAO?

我目前的包括

0 投票
4 回答
73042 浏览

opengl - 什么是顶点数组对象?

我今天刚开始从本教程中学习 OpenGL:http: //openglbook.com/the-book/
我到了第 2 章,在那里我画了一个三角形,除了 VAO(这个首字母缩写词可以吗?),我理解了所有内容。本教程有以下代码:

虽然我知道代码是必要的,但我不知道它的作用。尽管我从未使用过 VaoId(除了销毁它),但没有它,代码将无法运行。我假设这是因为它需要绑定,但我不知道为什么。这个确切的代码是否只需要成为每个 OpenGL 程序的一部分?本教程将 VAO 解释为:

顶点数组对象(或 VAO)是描述顶点属性如何存储在顶点缓冲区对象(或 VBO)中的对象。这意味着VAO不是存储顶点数据的实际对象,而是顶点数据的描述符。顶点属性可以由 glVertexAttribPointer 函数及其两个姊妹函数 glVertexAttribIPointer 和 glVertexAttribLPointer 来描述,我们将在下面探讨第一个函数。

我不明白 VAO 如何描述顶点属性。我没有以任何方式描述它们。它是否从 glVertexAttribPointer 获取信息?我想这一定是它。VAO 仅仅是来自 glVertexAttribPointer 的信息的目的地吗?

附带说明一下,我遵循的教程是否可以接受?有什么我应该注意的或更好的教程吗?

0 投票
1 回答
1985 浏览

opengl - Opengl 顶点数组对象

OpenGL 的顶点数组对象是否存储在 VRam 中?

我真正要问的是:如果我加载模型,例如使用 Assimp,然后将顶点和索引数据读入顶点数组对象;我会在 Ram 中复制数据,还是将其复制到 GPU?

0 投票
2 回答
4272 浏览

opengl - OpenGL 顶点数组/缓冲区对象

问题 1

在某个 VAO 下创建的顶点缓冲区对象是否会在该 VAO 被删除后被删除?

一个例子:

以后调用glDeleteVertexArrays(1, &VAO);时,也会bufferObject被删除吗?

我问的原因是我在网上看到了一些没有删除那些缓冲区对象的例子。

问题2

我可以为缓冲区对象分配的最大内存量是多少?当然,它必须取决于系统,但我似乎无法找到它的估计值。当显存不够大时会发生什么?我怎么会知道?

0 投票
2 回答
1282 浏览

opengl - 使用顶点数组对象需要什么?

我正在尝试在我的一个程序中使用顶点数组对象,但我的电脑似乎不支持此功能。

当我执行这个函数glewIsSupported("GL_ARB_vertex_array_object")时,它返回 false。

如果我尝试更新我的视频驱动程序,这可以使顶点数组对象可用吗?

如何检查我的显卡支持的 OpenGL?

从 OpenGL 3.0 开始可以使用顶点数组对象吗?

0 投票
1 回答
13981 浏览

python - 如何在 PyOpenGL 中使用顶点数组对象和 glDrawElements 进行绘制

我有以下代码,它应该只是在屏幕上绘制一个绿色三角形。它使用顶点数组对象和索引缓冲区进行绘制,并拥有我能制作的最简单的着色器。

起初我没有使用索引缓冲区,只是简单地进行了绘制调用,glDrawArrays但当我将其更改为使用时glDrawElements,屏幕上没有任何内容(它完全是黑色的)。

如果我只是注释掉glDrawElements并取消注释该glDrawArrays行,那么它可以正常工作,因此至少顶点 VBO 被正确输入。

我在这里做错了什么?我能够找到的所有 OpenGL 文档都表明我这样做是正确的,所以我显然误解了关于 OpenGL 本身或 PyOpenGL 包装器的一些东西。

编辑

更改 VAO 设置以使用更直接的 OpenGL 函数而不是 VBO 包装器,例如:

没什么区别。glDrawArrays仍然有效,glDrawElements但仍然无效。

0 投票
1 回答
411 浏览

opengl - Swizzling Vertex Arrays, Vertex Buffer Objects and Shaders

我对顶点数组、顶点缓冲区对象和着色器有基本的了解。但是,我不确定是否可以重用它们或关联是否是双射的。

例如:

  • 我可以在不同的顶点数组中使用相同的顶点缓冲区对象吗?
  • 我可以在不同的着色器中使用相同的顶点数组吗?
0 投票
1 回答
3573 浏览

opengl - 如何获取当前绑定的顶点数组对象?

如何获取当前绑定的顶点数组对象的名称?

我查看了手册,但找不到与 glGet() 一起使用的枚举。