- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个小型的 2D 游戏演示,从我读过的内容来看,最好使用 drawElements()
绘制索引三角形列表而不是使用 drawArrays()
绘制一个无索引的三角形列表。
但据我所知,使用 drawElements()
在单个绘制调用中绘制未连接的多个元素似乎是不可能的。 .
因此,对于我只绘制由两个三角形组成的正方形的 2D 游戏演示,最好的方法是什么,这样我就不会结束每个对象的一次绘制调用?
最佳答案
是的,在许多情况下最好使用索引,因为您不必存储或传输重复的顶点,也不必处理重复的顶点(顶点着色器只需要为每个顶点运行一次)。在四边形的情况下,您将 6 个顶点减少到 4 个,再加上少量索引数据。三分之二确实是一个很好的改进,特别是如果您的顶点数据不仅仅是位置。
总之,glDrawElements
结果是
GL_TRIANGLE_STRIP
你可以用
glPrimitiveRestartIndex
用一个
glDrawElements
绘制多条三角形称呼。在您的情况下,使用
GL_TRIANGLES
很容易并为每个四边形引用具有 6 个索引的 4 个顶点。然后,您的顶点数组需要存储所有四边形的所有顶点。如果它们在移动,您仍然需要每帧将这些数据发送到 GPU。您可以将所有移动的四边形放置在阵列的前面,并且只更新事件的四边形。您还可以将静态顶点数据存储在单独的数组中。
关于OpenGL-drawarrays 还是 drawelements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636054/
在我的程序中,我基本上将所有对象放在一个缓冲区中,现在当我想绘制多个对象时遇到问题,如果我只绘制一个它仍然有效。 当我粗略地将所有 glDrawArrays 更改为 glDrawElements 调用
我正在制作一个小型的 2D 游戏演示,从我读过的内容来看,最好使用 drawElements()绘制索引三角形列表而不是使用 drawArrays()绘制一个无索引的三角形列表。 但据我所知,使用 d
我正在尝试学习 WebGL,所以我从 webgl 教程中获取了一些代码,并尝试添加我自己的行,但是每当我运行它时,它都会给我这个错误: .WebGLRenderingContext: GL ERROR
我的问题是:为什么相同的示例 WebGL 代码会在不同平台/浏览器上产生不同的输出? 在 Windows 上的 Firefox 30.0(以及最新的 32)中,但在 Mac 上则不然,在渲染点时进行多
在绘制之前清除屏幕时,RenderingContext.drawElements 是否正确? 考虑这些屏幕截图,这些屏幕截图显示了调用 drawElements 的一个步骤,其中已绘制的对象被删除。
这样的OpenGL ES序列可用于一次渲染多个对象: glVertexPointer(...params..., vertex_Array ); glTexCoordPointer(...params
提前谢谢你。 我是 Webgl 的新手,我不太了解 drawElements 方法和我要绘制的当前顶点缓冲区之间的联系。我大致了解 drawArray 方法发生了什么(例如创建缓冲区,将其绑定(bin
这是一个相当特定于 WebGL 的问题。我无法理解 drawElements 的特定于 WebGL 的实现。这是 API 规范。 From the WebGL specification . 我究竟如
现在我正在按照 Jamie King Qt OpenGL 教程学习 OpenGL。 (他们很好)。 在其中一个教程中,我遵循它但无法使用 DrawElemets 绘制两个顶点缓冲区三角形。它适用于 G
编辑:我应该澄清一下...... 这就是我计划的工作方式: 每次我的应用程序渲染(60hz)时,我都想将所有要渲染的顶点放入一个巨大的缓冲区中。然后,该缓冲区将上传到 GPU。 (glBufferda
今天下午,当我从使用 VBO 转向 VAO/VBO 时,我一直在努力说服我的 openGLES2.0 代码正确执行。基本上,我正在按照 Apple 关于 openGLES 的“专家”建议进行工作,并转
我想从 model.json 文件中绘制一个 3d 模型(例如房子)。我用蓝色等单一颜色绘制房子没有问题。但是,当我尝试使用纹理而不是颜色时,我收到一个错误: WebGL: DrawElements:
我目前正在学习 android 开发以编写基于图 block 的游戏,但我无法让 OpenGLES 正常工作。 所以我尝试使用索引数组渲染四边形,但它只渲染了四边形的第一个三角形,第二个三角形丢失了,
我正在尝试绘制一个简单的三角形数组。它们都是相连的,所以我目前正在使用 DrawArrays 和 GL_TRIANGLE_STRIP。但是,在检查 XCode 分析器时,它建议改用 DrawEleme
本文整理了Java中com.google.gwt.webgl.client.WebGLRenderingContext.drawElements()方法的一些代码示例,展示了WebGLRenderin
所以,我开始了一段相当即时的视觉化 3-D 编程世界之旅。我目前在 webgl 上投入了大量资金,在 JavaScript 和大多数面向 Web 的语言方面有很强的背景,但这是我的第一种图形语言。 在
我实现了简单的 OBJ 解析器并使用平行六面体作为示例模型。我添加了基于四元数的旋转功能。下一个目标 - 添加光。我解析法线并决定将法线绘制为“调试”功能(以进一步更好地理解光)。但在那之后我坚持了下
大家好,我这几天一直在学习 webgl。 有两个片段可以完成相同的事情 - 绘制一个正方形。一种是对 6 个顶点使用 gl.drawArrays,一种是对 4 个顶点使用 gl.drawElement
我是一名优秀的程序员,十分优秀!