问题标签 [vertex-array]

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 投票
0 回答
474 浏览

java - jogl中带有glDrawElements的顶点数组不渲染

我已经尝试按照这个这个从 jogl 获取顶点数组来工作,虽然它不再抛出任何错误,但它也没有渲染任何东西,只是一个空白屏幕。这是代码:

当我取消注释茶壶代码时,我可以看到它,所以我很确定它特定于 glDrawElements。我对使用正确的 gl.GL_TYPE 常量的信心几乎为零,但我尝试过的那些都没有奏效。

0 投票
1 回答
495 浏览

c++ - OPENGL:使用 VBO 的方形类

因此,我正在尝试制作一个基本的“可绘制”类,它在后台为我处理大量绘图,并且我想使用现代 OpenGL(没有开始和结束语句)。当我运行 draw() 时,我总是得到一个空白屏幕。

我已经运行调试器并检查了,我的数组已正确初始化,位置为 3xFLOAT,颜色为 4xFLOAT。知道出了什么问题吗?我对这个图书馆很陌生。我的示例尝试在 (+-0.5, +-0.5, 0.0) 处绘制一个红色立方体,因此 indexData 数组只是 { 0, 1, 2, 3 }。

GLSL 顶点着色器:

GLSL 片段着色器:

0 投票
0 回答
161 浏览

c++ - OpenGL 4.3+ 元素数组

我正在使用核心 OpenGL 4.3 后端的 C++14 构建自己的游戏引擎。

我正在关注以下教程:

我也关注这些书:

  • OpenGL超级圣经(第六版)
  • OpenGL 4 着色语言食谱(第二版)

这两本书都适用于 OpenGL 4.3,但 learnopengl.com 教授的是 OpenGL 3.3。这不是问题,因为我遵循 OpenGL 3.3,并在我的其他资源引入新方法时进行修改。

我目前在将顶点数组从旧的 OpenGL 3.3 方式移植到新的 OpenGL 4.3 方式时遇到了一些麻烦,如 Wolff 在第 31 页的书中所见。

老办法:

新方式:

希望这能让您快速了解我在说什么。我真正的问题是关于元素数组,Wolff 没有详细说明。此外,我似乎无法在 SuperBible 中找到元素数组,并且该索引具有误导性(请注意,我将 SuperBible 更多地视为参考而不是阅读书籍)。

根据在线文档,我最好的猜测是我应该应用以下代码:

但是,我似乎看不到我的网格。只是想知道是否有一种更新的方法来处理我可能忽略的元素数组?

干杯!

0 投票
2 回答
375 浏览

opengl - 如何在一个顶点数组对象中有多个存储布局?

当我说存储布局时,我的意思是我用glVertexAttribPointer. 这个状态是保存在当前绑定的 VAO 还是我绑定的缓冲区中GL_ARRAY_BUFFER

0 投票
1 回答
651 浏览

android - 在x或y轴上反射顶点后如何恢复CCW缠绕顺序?

我在 OpenGL 中渲染一个多边形,其中一个顶点数组被调用vertices,一个final索引缓冲区被称为DRAW_ORDERCCW 绕组。我启用了背面剔除,并使用glDrawElements(GL_TRIANGLES, DRAW_ORDER.capacity(), GL_UNSIGNED_SHORT, DRAW_ORDER).

当我vertices通过矩阵变换在 x 或 y 轴上反射时,多边形被剔除,因为反射反转了顶点的方向,因此它们不再匹配DRAW_ORDER.

我可以通过禁用剔除来防止该问题,但为了性能起见,我宁愿找到一种方法来恢复vertices通过排列的方向。例如,如果多边形是三角形,我可以简单地在反射后交换第二个和第三个顶点以恢复 CCW 方向。如何将此方法扩展到具有任意数量的顶点和索引的多边形?

编辑:这是一个似乎适用于凸多边形但不适用于凹多边形的解决方案。

您可以在下图中看到该解决方案如何适用于椭圆(凸形)而不是星形(凹形)。

在此处输入图像描述

0 投票
1 回答
132 浏览

c++ - OpenGL 数组切换不起作用

我正在尝试使用 OpenGL 编写一些游戏并阅读一大堆教程。不幸的是,我遇到了一个小问题,它只是打断了我的进步。

我创建了一个“Mesh”类,我在其中移交了一组GLfloats。这些浮点数包含在 VAO 和 VBO 中。只要我在构造函数中创建数组(使用整个初始化函数),它就可以正常工作。但是,如果我想将数组作为参数移交,OpenGL 就不会绘制。我是不是忘记了什么?

这是我的主要代码:

网格.cpp

主文件

0 投票
1 回答
467 浏览

c++ - 在 SFML 顶点数组中组合基元

SFML的文档指出您可以组合基元来创建顶点数组。我认为他们所指的是 multipleTriangles可以组合成 a TriangleFanor的事实TriangleStrip

我想知道是否有一种方法可以将两种现有的原始类型组合在一个顶点数组中。例如,我可以将一堆顶点定义为 aTriangleFan然后切换到 aLineStrip吗?或者这需要两个单独的数组吗?

0 投票
3 回答
174 浏览

ios - OpenGL ES:顶点结构是否需要 x、y 和 z?

这可能是一个愚蠢的问题,但我一直想知道——OpenGL 中的顶点结构是否需要有 x、y 和 z?我在 2D 中绘制,但我见过的所有教程似乎在其结构中都有 az 变量,即使它总是 0。这不会减慢渲染速度吗?

此外,它们似乎总是有 r、g、b 和 a 作为颜色变量,但我不需要 alpha,因为我的项目始终为 1。我真的需要每次都说它是1吗?

我只是想知道 glVertexAttribPointer 允许您将第二个参数设置为任何值,并且我尝试将其设置为 2,因为我只使用 x 和 y,并且它有效。

0 投票
1 回答
491 浏览

c++ - 带有 SFML 的动态照明程序,1.6 到 2.x 转换

我发现这个 sfml教程写于 2009 年,我正在尝试将其转换为 2.4。

我无法转换这 2 行:

我一直在尝试按照 SFML 论坛上的建议使用 sf::RectangleShape 进行转换,但我就是找不到合适的参数。这是转换为 2.x 的完整代码,但那两行除外。

如果有人愿意“完成”转换,我将不胜感激,我相信本教程会对其他人有所帮助。

主要的:

光引擎.h

光引擎.cpp

块.hpp

0 投票
1 回答
142 浏览

c++ - 如何在 VertexArray 中翻转纹理?

我有一个使用顶点数组绘制的 spritesheet 动画。例如,假设我有一个指向右侧的箭头,带有一个简单的动画。我希望能够在 x 轴上翻转纹理,以便箭头也可以指向左侧,而无需将我的 spritesheet 的大小加倍。

我知道这可以通过使用负比例因子来实现,但是在我必须使用 vertexarray 的情况下,我想知道这是怎么可能的。我尝试给 texcoords 一个负宽度,但它不起作用。这是我尽可能隔离问题的示例代码:

示例的精灵表:

箭