问题标签 [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.
c - 为 OpenGL 生成顶点数组
我想使用一些方便的方法来生成用于对象的顶点和颜色数组。根据我在生成数组时所见,这是我目前使用的一个示例:
}
但是当我在这样的事情上使用它时:
渲染不成立,渲染过程中会出现随机问题,例如闪烁、颜色失真等。在使用正常定义的数组(删除生成的顶点及其相关代码)时使用相同的代码进行初始化和渲染时,不会出现问题。
有谁知道我要去哪里错?
opengl - OpenGL VAO 最佳实践
我面临一个我认为与 VAO 相关的问题,但我不确定..
我不确定 VAO 的正确用法,我在 GL 初始化期间所做的很简单
其次是
后来,在我的绘图管道中,我只调用了 glBindBuffer()、glVertexAttribPointer()、glEnableVertexAttribArray()等等......而不关心最初绑定的 VAO
这是正确的做法吗?
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?
我目前的包括
opengl - 什么是顶点数组对象?
我今天刚开始从本教程中学习 OpenGL:http: //openglbook.com/the-book/
我到了第 2 章,在那里我画了一个三角形,除了 VAO(这个首字母缩写词可以吗?),我理解了所有内容。本教程有以下代码:
虽然我知道代码是必要的,但我不知道它的作用。尽管我从未使用过 VaoId(除了销毁它),但没有它,代码将无法运行。我假设这是因为它需要绑定,但我不知道为什么。这个确切的代码是否只需要成为每个 OpenGL 程序的一部分?本教程将 VAO 解释为:
顶点数组对象(或 VAO)是描述顶点属性如何存储在顶点缓冲区对象(或 VBO)中的对象。这意味着VAO不是存储顶点数据的实际对象,而是顶点数据的描述符。顶点属性可以由 glVertexAttribPointer 函数及其两个姊妹函数 glVertexAttribIPointer 和 glVertexAttribLPointer 来描述,我们将在下面探讨第一个函数。
我不明白 VAO 如何描述顶点属性。我没有以任何方式描述它们。它是否从 glVertexAttribPointer 获取信息?我想这一定是它。VAO 仅仅是来自 glVertexAttribPointer 的信息的目的地吗?
附带说明一下,我遵循的教程是否可以接受?有什么我应该注意的或更好的教程吗?
opengl - Opengl 顶点数组对象
OpenGL 的顶点数组对象是否存储在 VRam 中?
我真正要问的是:如果我加载模型,例如使用 Assimp,然后将顶点和索引数据读入顶点数组对象;我会在 Ram 中复制数据,还是将其复制到 GPU?
opengl - OpenGL 顶点数组/缓冲区对象
问题 1
在某个 VAO 下创建的顶点缓冲区对象是否会在该 VAO 被删除后被删除?
一个例子:
以后调用glDeleteVertexArrays(1, &VAO);
时,也会bufferObject
被删除吗?
我问的原因是我在网上看到了一些没有删除那些缓冲区对象的例子。
问题2
我可以为缓冲区对象分配的最大内存量是多少?当然,它必须取决于系统,但我似乎无法找到它的估计值。当显存不够大时会发生什么?我怎么会知道?
opengl - 使用顶点数组对象需要什么?
我正在尝试在我的一个程序中使用顶点数组对象,但我的电脑似乎不支持此功能。
当我执行这个函数glewIsSupported("GL_ARB_vertex_array_object")
时,它返回 false。
如果我尝试更新我的视频驱动程序,这可以使顶点数组对象可用吗?
如何检查我的显卡支持的 OpenGL?
从 OpenGL 3.0 开始可以使用顶点数组对象吗?
python - 如何在 PyOpenGL 中使用顶点数组对象和 glDrawElements 进行绘制
我有以下代码,它应该只是在屏幕上绘制一个绿色三角形。它使用顶点数组对象和索引缓冲区进行绘制,并拥有我能制作的最简单的着色器。
起初我没有使用索引缓冲区,只是简单地进行了绘制调用,glDrawArrays
但当我将其更改为使用时glDrawElements
,屏幕上没有任何内容(它完全是黑色的)。
如果我只是注释掉glDrawElements
并取消注释该glDrawArrays
行,那么它可以正常工作,因此至少顶点 VBO 被正确输入。
我在这里做错了什么?我能够找到的所有 OpenGL 文档都表明我这样做是正确的,所以我显然误解了关于 OpenGL 本身或 PyOpenGL 包装器的一些东西。
编辑
更改 VAO 设置以使用更直接的 OpenGL 函数而不是 VBO 包装器,例如:
没什么区别。glDrawArrays
仍然有效,glDrawElements
但仍然无效。
opengl - Swizzling Vertex Arrays, Vertex Buffer Objects and Shaders
我对顶点数组、顶点缓冲区对象和着色器有基本的了解。但是,我不确定是否可以重用它们或关联是否是双射的。
例如:
- 我可以在不同的顶点数组中使用相同的顶点缓冲区对象吗?
- 我可以在不同的着色器中使用相同的顶点数组吗?
opengl - 如何获取当前绑定的顶点数组对象?
如何获取当前绑定的顶点数组对象的名称?
我查看了手册,但找不到与 glGet() 一起使用的枚举。