问题标签 [vbo]

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 回答
5035 浏览

android - 为什么 glColorPointer 不为三角形着色 - 以及 opengl es 的其他奇怪的东西

我对 OpenGL 不是很熟悉,但我尝试在屏幕上绘制一个简单的三角形。每个角落都有不同的颜色。类似于基本教程的东西...问题是,

  1. 三角形只是白色的。
  2. 三角形只在模拟器中可见,在我的 HTC Desire 上不可见。

我的 GLView 课程:

有什么建议么?

0 投票
1 回答
1761 浏览

c++ - 如何使用静态 TexCoords 和动态顶点调用 glDrawElements

我正在使用带有 VBO 的 glDrawElements 调用来渲染我的场景。场景是一块带有顶点和纹理坐标的布料——在这个例子中,我正在渲染一个标志。

在我的场景中,顶点是动态的,这意味着我需要每帧都写入 VBO。我的大部分处理都是使用 CUDA 在 GPU 上完成的,所以我不断地将 CPU 内存映射到 GPU 内存。另一方面,纹理坐标是静态的。为了使用 glDrawElements 进行渲染(据我了解),我应该在顶点 VBO 中交错纹理坐标,然后简单地调用 glTexCoordPointer() 和 glEnableClientState()。这不是最优的,因为当我进行 CPU<-->GPU 内存映射时,我需要与我一起绘制所有纹理坐标。

有没有办法安排我的 vbo 以便我可以更新 vbo 中的顶点数据而不接触 vbo 中的纹理数据?下面是我的渲染代码——我目前填充了三个数组:一个索引数组、一个顶点数组和一个纹理数组。

在下面的代码中,indexVbo 已映射到索引数组,而 vbo 已映射到顶点数组。我现在需要合并纹理。任何见解或建议将不胜感激。

0 投票
2 回答
1232 浏览

java - JOGL / OPENGL 中的大型线带管理...?

我试图制作一个 3D 旋转Lorenz Attractor的 Java 屏幕保护程序 我使用 java 和 jogl (OPENGL) 来渲染图形......我有 2 个类,一个是主程序设置 OPENGL 等......另一个只存储一个 LinkedList Point3d 的那是线的顶点.. 每一帧渲染只有一个新点添加到列表中.....

我遇到的问题是渲染速度很慢,我的问题是... 1. 是否有更好/更简单的缓冲屏幕或线条的方法,所以我只需要绘制最后一行.... 2. VBO 可以用于 LINE_STRIP 吗?如果我必须在每一步都向缓冲区添加一个顶点,这真的会加快速度吗……?

它真的很烦人...... glBegin()/glEnd() 可以正常工作到大约 100 行,然后严重崩溃。急需帮助加快渲染速度,并将大大提高......

我在下面添加了工作代码以使其工作,您必须链接到 JOGL opengl lib's


代码

LorenzSim.java

Lorenz.java

导入 java.awt.geom。; 导入 java.util。;

公共类洛伦兹{

}

菲尔

0 投票
2 回答
3354 浏览

objective-c - 交错的 VBO 导致 glDrawArrays() 错误

我最近将我的应用程序从使用 OpenGL ES 1.1 更改为 2.0,在此过程中,我决定使用 VBO 进一步优化我的代码。我认为我必须掌握与 ES 2.0 的主要区别,并且结果表明我在没有 VBO 的情况下正确地做事,但是我被一个问题难住了,这个问题只有在我尝试使用 VBO 时才会出现.

我使用一个包含顶点位置、颜色和大小的自定义结构(加上一点填充来对齐数据),然后在 VBO 中交错这个顶点数据。该数据用于渲染点精灵。问题是我在 glDrawArrays() 调用上得到了 EXC_BAD_ACCESS。此错误的回溯如下:

这是存储顶点数据的结构:

在一组数据存储在这些结构的数组中之后,数据被发送到 VBO 并使用 glDrawArrays() 渲染:

这段代码在我放入 VBO 之前就可以工作,唯一的改变是 glVertexAttribPointer() 调用的最后一个参数显然指向数据而不是偏移量。我错过了什么?我不认为这段代码特别复杂,所以我只能认为我在某个地方犯了一个愚蠢的错误。

谢谢

0 投票
1 回答
901 浏览

opengl - 如何加载一次模型并在 OpenGL 中重用它

我已经加载了一个波前模型文件(.OBJ 和 .MTL)并将顶点/索引存储在 VBO 中以进行渲染。现在我只在加载模型时填充 VBO 一次。我的问题是......重用这个顶点数据来重绘模型的多个实例的最佳方法是什么?目前,我只是为模型的每个实例存储一个变换矩阵(旋转、缩放和平移),并draw()使用相关的变换矩阵为每个实例调用函数。

这是一种完全不正确的方法吗?有哪些更好/替代方法可以达到相同的结果?

显然,这仅适用于对象相对于自身静止的非常基本的模型(即,无论模型的世界方向如何,模型的任何部分都不会移动)。这就是让我相信确实有更好的方法来做到这一点的原因。

希望我的胡言乱语有道理...

0 投票
2 回答
1756 浏览

opengl - 如何为 VBO 生成法线?

我已经为我的 OpenGL 应用程序实现了一个波前 (OBJ) 文件加载器,它为我提供了面部、纹理和顶点信息。但是,要使用照明,我显然需要正常信息。我知道这样做的正确方法是取构成三角形的 3 个顶点的叉积并归一化。这会导致您应用于所有 3 个顶点的法线对吗?

但是,对于不在多边形边缘的面/三角形,每个顶点使用 3 次。所以我猜你只是用之前计算的法线平均每个新计算的法线?

按照我的想法,这似乎是一项非常昂贵的任务;遍历所有顶点并计算使用该顶点的每个面的法线并进行平均。有没有更好/更快的方法来做到这一点?

干杯

克里斯

0 投票
1 回答
5029 浏览

iphone - 如何在 OpenGL ES 1.1 中优化大型模型的渲染?

我刚刚在我的 3D 应用程序中完成了 VBO 的实现,并且看到渲染速度大约提高了 5-10 倍。过去以每秒 1-2 帧的速度呈现的内容现在以每秒 10-11 帧的速度呈现。

我的问题是,我可以做任何进一步的改进来提高渲染速度吗?三角带会有很大的不同吗?当前顶点没有在面之间共享,每个面的顶点都是唯一的但重叠。

我的设备利用率为 100%,Tiler 利用率为 100%,渲染器利用率为 11%,资源字节为 114819072。这是在 CAD 模型上渲染 912,120 个面。

有什么建议么?

0 投票
1 回答
958 浏览

python - 实现渲染到顶点数组,glReadPixels 失败(无效操作)

我正在尝试将顶点数据从纹理复制到顶点缓冲区,然后绘制顶点缓冲区。据我所知,最好的方法是将纹理绑定到 fbo,然后使用 glReadPixels 将其复制到 vbo。但是,我似乎无法让这个工作:glReadPixels 失败并出现错误“无效操作”。

欢迎更正、示例和替代方法。:)

以下是相关代码:

0 投票
3 回答
1716 浏览

opengl - OpenGL 将 VBO 保存到文件(Obj 或其他)

有没有人设法在运行时将 OpenGL VBO 导出为外部文件格式?对于正确方向的任何指示,我将不胜感激,因为我不知道该怎么做。

0 投票
1 回答
2543 浏览

c++ - QGLBuffer 和 VBO

我对 QGLBuffer 有疑问。我正在尝试使用 QT + Opengl 实现动态 VBO。

在 .h 文件中

在.cpp

构造函数。

在程序的执行中,我更改了一些 m_data 值

在绘制方法中。

但它没有被绘制。我检查了 m_data 不为空,并且 m_bufferData->bind() 返回 true。我究竟做错了什么?