问题标签 [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 回答
162 浏览

java - VAO does't render in color with shaders

I recently started learning OpenGL and I have been trying to write a program that displays a diamond on the screen using VAOs and VBOs with shaders. My code is mostly based on this tutorial: https://www.opengl.org/wiki/Tutorial2:_VAOs,_VBOs,_Vertex_and_Fragment_Shaders_%28C_/_SDL%29 and I also used the shaders from the tutorial. The diamond is supposed to be drawn using the color information from the vertex array object but instead it is just drawn in white. The shaders seem to be loading fine so I think it is a problem with my vertex and buffer array objects. Can someone please explain why my code is not working how I expected or show a clear example of how to render VAOs using colors from an array of color attributes.

}

ShaderControl2 code:

Shader Code

f.txt:

v.txt:

0 投票
1 回答
813 浏览

c++ - OpenGL VAO VBO 着色器混淆

我正在编写一个渲染器,并且正在选择一种处理 vao/vbo/shader 管理的最终方法。在网上,我发现关于实际推荐的信息高度矛盾。目前思路如下:

-一个VBO连续存储所有网格。

- 每个“着色器映射”创建一个 VAO 以将特定的指针映射存储到 VBO。(“着色器映射”,在具有相同输入的不同着色器中保持一致)

然后通过“着色器映射”对实体进行排序,并使用主 VBO 中的偏移量进行渲染,从而最大限度地减少着色器和 VAO 开关。就像是:

因为这将包括大量的重构,所以我想问一下这个解决方案是否是最优的。我还想知道是否有可能在单个 VBO 中具有多种交错格式。

0 投票
4 回答
1806 浏览

c++ - 在 OpenGL 中设置 VAO 的过程

我可以得到更全面/一般的描述吗?

我整个星期都在尝试研究这些东西,但我只涉及到超级技术的解释或示例。

有人可以解释这些 VAO 的整体过程或目标吗?也许概述了在 OpenGL 中设置 VAO 的“逐步”流程图?

我从来都不是通过例子学习的人......所以到目前为止我在网上找到的所有东西都真的没有帮助。

0 投票
1 回答
616 浏览

opengl - 为什么这个 OpenGL 代码没有给出错误但没有打印到屏幕上

作为序言,我正在使用 Derelict 在 D 中编写我的 OpenGL。但是,它应该与使用 C++ 的 OpenGL 几乎相同,因为函数调用是相同的。无论如何,我不知道为什么我的代码不会在屏幕上打印任何内容,因为我的着色器程序没有给出错误。对于大代码转储,我很抱歉,但我无法找出问题所在。我的着色器类如下:

我的网格课是:

0 投票
0 回答
822 浏览

opengl - glDrawElements 导致访问冲突读取

我已修复它 - 可以在页面底部找到有效的解决方案。

我正在尝试使用交错的 vbo 和 vao。我在一个简单的三角形上对其进行测试——这就是我的索引数据和顶点数据的样子:

这是 vertex_col 结构:

这就是我将数据加载到 vao 和 vbo 中的方式:

这就是我绘制 vao 的方式:

最后一个操作导致此错误“访问冲突读取位置 0x00000000”,我不知道为什么。此外,如果它与问题相关,我正在使用库 glew 和 glfw。

固定版本:

0 投票
0 回答
108 浏览

opengl - OpenGL VAO 总是从原点绘制第一个顶点

标题总结了我的问题,但无论我将第一个顶点设置为什么,OpenGL 总是在原点绘制它。我在学校的电脑上试过这个,这不是问题,但我不在学校,我改变的东西可能会导致问题。无论如何,我认为没有理由发生这种情况。如果语法看起来很奇怪,这段代码是用 D 编写的,但应该是 C 的几乎无缝移植。

我的代码是:

0 投票
1 回答
2046 浏览

opengl - OpenGL 顶点缓冲区绑定点可以在不同的 VAO 之间重复使用吗?

假设我使用新的(从 OpenGL 4.3 开始)glBindVertexBuffer 机制设置了两个 VAO:

...

...

并假设两者是独立的,除非它们存在于相同的 OpenGL 上下文中;它们绑定不同的缓冲区,并将用于绘制不同的东西。

bindingIndex0 是否需要与 bindingIndex1 不同?两个指数的相等(或不相等)有什么意义吗?

...

编辑:

收到答案后,我开始明白,对于真正知道“顶点缓冲区绑定点”是什么的人,特别是它的范围是什么,我的问题似乎是在问一些与我的意图不同的东西。也许更好的措辞是“为了防止冲突,是否需要不遗余力地防止 OpenGL 顶点缓冲区绑定点索引被重用,甚至跨多个 VAO 重用?” 但无论如何,现在似乎这两个问题都得到了回答:不,你不能重用“绑定点”,不,你不需要以这种方式避免索引冲突。

0 投票
1 回答
625 浏览

c++ - glDrawArrays 导致内存不足

我正在使用 VAO 和 VBO 使用 OpenGL 构建 Qt 应用程序。我有一个简单的参考网格,我想用以下代码绘制

问题是调用 glDrawArrays 后会返回一个错误(GL_OUT_OF_MEMORY)。我无法理解发生了什么。

有没有人已经遇到过这个问题并有解决方案?

0 投票
1 回答
1491 浏览

java - LWJGL 3、VAO 和着色器未渲染

我正在使用 LWJGL 3 和带有 VAO 的着色器。我当前的实现在使用着色器时不绘制 VAO。然而,当不使用着色器时,VAO 将绘制,但 VAO 将是白色的。我的问题是我在着色器设置中遗漏了什么,导致我在使用着色器时看不到 VAO?

主班。
着色器和 VAO 设置在 gameStart() 方法中。


着色器类。


顶点和片段着色器。

0 投票
0 回答
106 浏览

c++ - OpenGL VAO 不渲染网格

我正在尝试使用 OpenGL 和 SDL2 窗口在我的屏幕上绘制一个简单的形状。我的着色器没有错误,而且 glGetError() 没有打印出任何东西,所以我不知道问题出在哪里。这是我的网格类,它加载 .OBJ 文件并解析它们以供 OpenGL 渲染。

我认为这里一定有什么东西,因为我的着色器正在正确编译和链接,只是当我调用我的 draw 方法时实际上没有绘制任何内容。如果有人有任何见解,将不胜感激。谢谢