vao相关内容

将顶点缓冲区转换为顶点数组

我正在开发 OpenGL 程序,我必须计算一个边界框.我编写了代码来执行此操作,但我无法从 vertex buffer 获取顶点坐标.有人可以向我解释一种从顶点缓冲区获取数据的简单方法吗?我将 Java 用于 android 和 OpenGL es 解决方案 如果你使用 OpenGL ES 3.0 或更高版本,你可以使用 glMapBufferRange() 直接访问缓冲区数据.有关功能的 ..
发布时间:2022-01-09 09:46:09 移动开发

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

我有以下代码,它应该简单地在屏幕上绘制一个绿色三角形.它使用顶点数组对象和索引缓冲区进行绘制,并拥有我能制作的最简单的着色器. 起初我没有使用索引缓冲区,只是使用 glDrawArrays 进行绘制调用,效果很好,但是当我将其更改为使用 glDrawElements 时,没有任何绘制到屏幕(全黑). 来自 OpenGL.GL 导入着色器从 OpenGL.arrays 导入 vbo从 Ope ..
发布时间:2021-12-19 18:40:12 Python

OpenGL 顶点数组/缓冲对象

问题 1 在某个 VAO 下创建的顶点缓冲对象会在该 VAO 被删除后删除吗? 示例: glGenBuffers(1, &bufferObject);glGenVertexArrays(1, &VAO);glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, bufferObject);glBufferData(GL_ARRAY_BU ..
发布时间:2021-12-19 18:34:58 其他开发

C++/OpenGL VAO 问题

#define GLEW_STATIC#include #include #include #include #include #include #include #define 宽度 800#define 高度 600#define TITLE "动态"GLFWwindow* 窗口;内部标识符;浮动顶点[] = {-0.5f, 0.5f, 0, -0.5f, -0.5f, 0, ..
发布时间:2021-12-19 18:16:58 C/C++开发

OpenGL 多少个 VAO

我正在编写一个 OpenGL3+ 应用程序,但对 VAO 的使用有些困惑.现在我只有一个 VAO,一个围绕原点的标准化四边形集.这个单一的 VAO 包含 3 个 VBO;一个用于位置,一个用于表面法线,一个 GL_ELEMENT_ARRAY_BUFFER 用于索引(因此我只能存储 4 个顶点,而不是 6 个). 我已经设置了一些辅助方法来将对象绘制到场景中,例如 drawCube() 它接受 ..
发布时间:2021-12-19 18:08:05 其他开发

OpenGL VAO 最佳实践

我面临一个我认为依赖于 VAO 的问题,但我不确定.. 我不确定 VAO 的正确用法,我过去在 GL 初始化期间所做的很简单 glGenVertexArrays(1,&vao) 后面跟着一个 glBindVertexArray(vao) 后来,在我的绘图管道中,我只是调用了glBindBuffer()、glVertexAttribPointer()、glEnableVertexAtt ..
发布时间:2021-12-19 17:44:54 其他开发

LWJGL glGenVertexArrays()阻止执行

我最近在论坛上问了一个问题,为什么ExecutorService在获得期货后为何阻止我的程序: ExecutorService和Future阻止了主线程 问题是经过大量调试后,罪魁祸首不是将来.get()而是 int vaoID = GL30.glGenVertexArrays(); 我将总结我想做的事情,然后发布代码.基本上,随着玩家的移动,我正在生成地形.为了避免每当发生这种情况时就冻 ..
发布时间:2021-05-30 21:48:41 Java开发

指示灯亮起,但没有出现立方体

我试图在立方体上使用照明,但是我不明白哪里出了问题.我可以查看光源,但是屏幕的其余部分显示为黑色,所以我不明白为什么立方体消失了. 这是代码: /*标题包含*/#include#include#include//GLM数学包含#include#include ..
发布时间:2021-04-19 20:19:44 C/C++开发

渲染一个包含两个VBO的VAO

我试图在OpenGL 3.3的窗口中绘制两个三角形.我正在将GLFW库用于窗口系统. 据我了解,我应该有两个VBO (每个三角形一个)和一个VAO ,其中包含这两个VBO.那就是我所做的. 但是,我无法弄清楚应如何渲染这两个VBO.确实,无论我做什么,都会仅绘制第一个 VBO(第一个三角形).第二个永远不会出现. int main() { GLFWwindow *wind ..
发布时间:2020-07-13 18:54:11 其他开发

如何使用多个VAO和VBO在OpenGL中绘制多个对象?

我正在尝试使用多个VAO和VBO在OpenGL中渲染多个对象.使用相同的顶点来渲染多个对象,但是我要为每个对象使用不同的顶点,例如绘制一个正方形和一个圆形.对于一个正方形,我只需要6个顶点,但是对于圆形,我需要360个顶点. 我在读取或创建着色器时出错. 这里是顶点着色器: #version 330 core layout (location = 0) in vec4 positio ..
发布时间:2020-07-13 18:54:09 C/C++开发

为什么在glEnableVertexAttribArray中需要index参数?

使用glVertexAttribPointer,opengl实现已经知道顶点着色器中的属性位置/索引绑定了顶点属性对象,那么为什么又需要在glEnableVertexAttribArray中提供属性索引呢?我认为在使用glBindVertexArray(VAO)之后;仅使用glEnableVertexAttribArray()就足够了吗?为什么需要两次提供属性索引; glVertexAttribP ..
发布时间:2020-05-21 00:06:01 其他开发

glDrawElements抛出GL_INVALID_VALUE错误

我正在尝试绘制部分平铺图像,但是调用glDrawElements函数时出现GL_INVALID_VALUE错误.当我使用glDrawArrays更改此函数时,没有问题.问题是索引计数参数不是负数. 有一个代码: #define BUFFER_OFFSET(i) ((char *)nullptr + (i)) #define VERTEX_ATTR_PTR(loc, count, me ..
发布时间:2020-05-20 23:45:18 C/C++开发

Opengl顶点数组对象

VRam中是否存储了OpenGL的顶点数组对象? 我真正要问的是:如果我加载模型(例如,使用Assimp),然后将顶点和索引数据读取到“顶点数组对象"中;我将在Ram中复制数据,还是将其复制到GPU? 解决方案 这里似乎缺乏对OpenGL术语的理解. 您不能将“顶点和索引数据"读入顶点数组对象.他们实际上并没有存储数据;数据数组存储在缓冲对象中. VAO仅引用. VAO描述了如 ..
发布时间:2020-05-20 23:43:58 其他开发

OpenGL顶点数组/缓冲区对象

问题1 在某个VAO下创建的顶点缓冲对象是否会被删除? 一个例子: glGenBuffers(1, &bufferObject); glGenVertexArrays(1, &VAO); glBindVertexArray(VAO); glBindBuffer(GL_ARRAY_BUFFER, bufferObject); glBufferData(GL_ARRAY_BUFFE ..
发布时间:2020-05-20 22:36:50 其他开发

GL_TRIANGLES有效,但GL_QUADS不显示任何内容

所以我正在从一个程序交换到另一个程序,我不知道为什么,但是GL_QUADS将不再显示相同的代码.为了弄清楚为什么旧代码不起作用,我制作了这个新的简单代码,它仍然不起作用. 设置: vector squarepoints; vec3f temper(-0.5f, 0.5f, 0.5f); squarepoints.push_back(temper); temper.x + ..
发布时间:2020-05-20 22:20:03 其他开发

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

我有以下代码,应该在屏幕上简单地绘制一个绿色三角形.它使用顶点数组对象和索引缓冲区进行绘制,并且具有我能制作的最简单的着色器. 起初,我不使用索引缓冲区,而只是使用glDrawArrays进行绘图调用,它可以正常工作,但是当我将其更改为使用glDrawElements时,则屏幕上没有任何内容(全黑). /p> from OpenGL.GL import shaders from OpenG ..
发布时间:2020-05-20 22:16:23 Python

OpenGL顶点数组对象是存储顶点缓冲区名称和索引,还是仅存储索引?

创建后,VAO是否仅跟踪VBO索引(通过 glBindVertexBuffer )哪些VBO名称绑定到这些索引?如果我在VAO创建过程中使用 glVertexAttribBinding 指定的绑定索引为0,我可以在绘制调用之前将另一个VBO绑定到索引0,并使其使用该VBO的内容,还是在创建VAO时始终使用绑定到索引0的任何VBO? 我之所以问,是因为我找到了很多示例,这些示例是在 glVer ..
发布时间:2020-05-20 22:11:06 其他开发