问题标签 [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.
c++ - OPENGL:使用 VBO 的方形类
因此,我正在尝试制作一个基本的“可绘制”类,它在后台为我处理大量绘图,并且我想使用现代 OpenGL(没有开始和结束语句)。当我运行 draw() 时,我总是得到一个空白屏幕。
我已经运行调试器并检查了,我的数组已正确初始化,位置为 3xFLOAT,颜色为 4xFLOAT。知道出了什么问题吗?我对这个图书馆很陌生。我的示例尝试在 (+-0.5, +-0.5, 0.0) 处绘制一个红色立方体,因此 indexData 数组只是 { 0, 1, 2, 3 }。
GLSL 顶点着色器:
GLSL 片段着色器:
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 更多地视为参考而不是阅读书籍)。
根据在线文档,我最好的猜测是我应该应用以下代码:
但是,我似乎看不到我的网格。只是想知道是否有一种更新的方法来处理我可能忽略的元素数组?
干杯!
opengl - 如何在一个顶点数组对象中有多个存储布局?
当我说存储布局时,我的意思是我用glVertexAttribPointer
. 这个状态是保存在当前绑定的 VAO 还是我绑定的缓冲区中GL_ARRAY_BUFFER
?
android - 在x或y轴上反射顶点后如何恢复CCW缠绕顺序?
我在 OpenGL 中渲染一个多边形,其中一个顶点数组被调用vertices
,一个final
索引缓冲区被称为DRAW_ORDER
CCW 绕组。我启用了背面剔除,并使用glDrawElements(GL_TRIANGLES, DRAW_ORDER.capacity(), GL_UNSIGNED_SHORT, DRAW_ORDER)
.
当我vertices
通过矩阵变换在 x 或 y 轴上反射时,多边形被剔除,因为反射反转了顶点的方向,因此它们不再匹配DRAW_ORDER
.
我可以通过禁用剔除来防止该问题,但为了性能起见,我宁愿找到一种方法来恢复vertices
通过排列的方向。例如,如果多边形是三角形,我可以简单地在反射后交换第二个和第三个顶点以恢复 CCW 方向。如何将此方法扩展到具有任意数量的顶点和索引的多边形?
编辑:这是一个似乎适用于凸多边形但不适用于凹多边形的解决方案。
您可以在下图中看到该解决方案如何适用于椭圆(凸形)而不是星形(凹形)。
c++ - OpenGL 数组切换不起作用
我正在尝试使用 OpenGL 编写一些游戏并阅读一大堆教程。不幸的是,我遇到了一个小问题,它只是打断了我的进步。
我创建了一个“Mesh”类,我在其中移交了一组GLfloats。这些浮点数包含在 VAO 和 VBO 中。只要我在构造函数中创建数组(使用整个初始化函数),它就可以正常工作。但是,如果我想将数组作为参数移交,OpenGL 就不会绘制。我是不是忘记了什么?
这是我的主要代码:
网格.cpp
主文件
c++ - 在 SFML 顶点数组中组合基元
SFML的文档指出您可以组合基元来创建顶点数组。我认为他们所指的是 multipleTriangles
可以组合成 a TriangleFan
or的事实TriangleStrip
。
我想知道是否有一种方法可以将两种现有的原始类型组合在一个顶点数组中。例如,我可以将一堆顶点定义为 aTriangleFan
然后切换到 aLineStrip
吗?或者这需要两个单独的数组吗?
ios - OpenGL ES:顶点结构是否需要 x、y 和 z?
这可能是一个愚蠢的问题,但我一直想知道——OpenGL 中的顶点结构是否需要有 x、y 和 z?我在 2D 中绘制,但我见过的所有教程似乎在其结构中都有 az 变量,即使它总是 0。这不会减慢渲染速度吗?
此外,它们似乎总是有 r、g、b 和 a 作为颜色变量,但我不需要 alpha,因为我的项目始终为 1。我真的需要每次都说它是1吗?
我只是想知道 glVertexAttribPointer 允许您将第二个参数设置为任何值,并且我尝试将其设置为 2,因为我只使用 x 和 y,并且它有效。
c++ - 带有 SFML 的动态照明程序,1.6 到 2.x 转换
我发现这个 sfml教程写于 2009 年,我正在尝试将其转换为 2.4。
我无法转换这 2 行:
我一直在尝试按照 SFML 论坛上的建议使用 sf::RectangleShape 进行转换,但我就是找不到合适的参数。这是转换为 2.x 的完整代码,但那两行除外。
如果有人愿意“完成”转换,我将不胜感激,我相信本教程会对其他人有所帮助。
主要的:
光引擎.h
光引擎.cpp
块.hpp