问题标签 [gl-triangle-strip]

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

opengl - 退化三角形和 GL_TRIANGLE_STRIP 的问题

我正在尝试仅通过一次调用来绘制多个三角形条,glDrawElements我对此事的研究告诉我我需要使用退化三角形。也许我对这个主题的理解是错误的,但我认为这应该让我从一条带“跳”到另一个。

我的整个代码可以在我发布的这个最近的问题上找到,如果你认为它是相关的,可以看看那里。

当然,我基本上是在尝试用 4 个三角形绘制 2 个四边形(为了简化目的),但彼此分开。为此,我使用这样的索引:

第一个条带的第一个顶点从 0 开始,第二条带的第一个顶点从 256 开始。这是该索引的最终结果:

http://i.stack.imgur.com/6Q3FD.jpg

这是正确的还是我认为“连接”两个四边形的线根本不应该存在?

0 投票
4 回答
42685 浏览

c++ - 生成带三角条的平面

生成顶点列表以使用三角形带绘制平面的最佳算法是什么?

我正在寻找一个函数,它接收平面的宽度和高度并返回一个包含正确索引顶点的浮点数组。

width 表示每行的顶点数。

height 表示每列的顶点数。

0 投票
2 回答
3931 浏览

opengl - OpenGL:3d网格和法线的三角形条带问题

我是opengl编程的新手。我目前正在制作洞穴竖井形成的动画。我有一组坐标轴沿 z 轴的轮廓。我的计划是根据这些数据制作一个 3d 网格,并决定使用 TRIANGLE_STRIPS。我这样做的方式是创建了多个这样的条带:

我的问题是:

  1. 这是正确的方法吗?因为现在我的法线有问题。我想使用 GL_SMOOTH 着色,据我所知,我需要计算顶点的法线?但是在我的 cas 顶点 10 和 3 是相同的,所以会有两个法线???那是问题吗?还有其他方法可以创建多个条带吗?

  2. 还有其他方法可以创建多个条带吗?或者带条的解决方案可能不是最好的?

  3. 另一个问题是,这些条带的长度不同。有些比其他的短。谢谢您的帮助 :)

0 投票
2 回答
2613 浏览

opengl-es - 帮助从网格中获取顶点索引

我正在关注这个关于如何从网格中获取索引以构建 GL_TRIANGLE_STRIP 网格的小教程http://dan.lecocq.us/wordpress/2009/12/25/triangle-strip-for-grids-a-construction/

我以正确的顺序获得了一些索引,但我无法在顶点 7 和 8 上锻炼逻辑,正如他在最后一个图中显示的那样

这是我的代码:

这是我的输出:

更新: 在评论之后,我锻炼了另一种算法来获取索引,这就是我到目前为止所拥有的:

这段代码告诉我什么时候需要前进,什么时候需要后退,通过执行i % (cols*2)我得到一个类似 0、1、2、3、4、5、6、7、0 的列表, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7,所以理论上我现在需要做的就是+4 -3前进和+4 - 5 后退

更新 2: 取得了一些进展,这些是新结果 0、4、1、5、2、6、3、7、7、11、6、10、5、9、4、8、14、18、15 、 19、16、20、17、21最后一组数字还是错的

更新 3:

我终于明白了!这是新代码

0 投票
1 回答
2782 浏览

iphone - 如何绘制没有索引的立方体?OpenGL ES 2.0

我想绘制没有索引并使用 VBO 的立方体。我在互联网上找不到任何东西(教程、示例)。我尝试了什么:

但事实证明,有些奇怪,但不是立方体

0 投票
2 回答
18365 浏览

algorithm - 将多边形三角剖分为 OpenGL ES 的三角形条带

我正在寻找一种快速多边形三角剖分算法,该算法可以将不太复杂的 2D 凹多边形(无孔)三角剖分成三角形条带,准备发送到 OpenGL ES 以使用GL_TRIANGLE_STRIP.

我知道一些算法,但我找不到适合我需要的算法:

  • http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml
    • 这个算法工作正常,但问题是它返回简单的三角形,你不能用它来绘制GL_TRIANGLE_STRIP,你需要使用GL_TRIANGLES它在大量顶点上不是很有效。
  • http://code.google.com/p/iphone-glu/
    • 它没有任何关联的示例,我找不到任何人在 iOS 上通过 OpenGL ES 2.0 成功使用它
    • 我不知道它返回什么,而且它似乎也调用了我不想要的相应 OpenGL 命令——我只需要返回三角形
    • 它泄漏内存

我正在开发的平台是:iOS、OpenGL ES 2.0、cocos2d 2.0。

任何人都可以帮助我使用这样的算法吗?或任何其他建议将不胜感激。

0 投票
1 回答
3835 浏览

andengine - 在手指滑动下方添加视觉效果,像水果忍者和引擎一样的三角形条

当用户在屏幕上交换手指时,我想显示一个三角形条。我不确定如何使用 AndEngine、使用粒子系统或使用 sprite 或使用 Triangle Strip 算法来做到这一点......

我没有写任何代码,因为我很震惊该做什么。我正在上传图片,请分享您的想法。

三角带

更新

有人在 Iphone 中完成了此操作,但不幸的是我不熟悉语言语法请帮助我理解此代码的算法https://github.com/hiepnd/CCBlade

**我想要的效果** 水果忍者效果

完整的 Android 项目下载

http://www.andengine.org/forums/resources/complete-runnable-project/1301

我已经完成了这段代码,但无法获得预期的效果......

我在这段代码中使用的图像

我与此代码一起使用的图像也附上了

更新

实现了部分效果..但是快速刷卡的问题..所有完整的项目都在这里上传http://www.andengine.org/forums/post31772.html#p31772

部分效应

0 投票
1 回答
895 浏览

ios - 如何将 GL_TRIANGLES 转换为 GL_TRIANGLE_STRIP?

我有来自 *.obj 文件的数据。

我知道如何用GL_TRIANGLES. 我如何转换数据GL_TRIANGLE_STRIP

glDrawArrays(GL_TRIANGLE_STRIP, 0, numberOfFaces);

谢谢!

0 投票
1 回答
256 浏览

algorithm - graph - 即使在最坏的情况下,如何在线性时间内构建三角形条带图?

在 Graph 中,存在一个三角带问题。基本上,我们有一组相邻的三角形,我们希望将每个三角形视为一个新顶点,如果两个新顶点后面的两个三角形有一条共同的边,那么它们之间就会有一条边。

我的问题是关于读取每个三角形并为它们构建新的条形图。

例如,我们有这些三角形(A、B 和 C):

A - 0, 1, 3

B - 1、2、3

C - 2、3、4

所以 A 和 B 有一个共同的边缘,B 和 C 也是如此。新的条带从 A 到 B,然后到 C。

好的。我认为这里的关键之一是,每次阅读一个新三角形时,我们都想知道哪些三角形与新三角形有共同边。

一个愚蠢的方法是我们只扫描所有旧三角形并将它们的三个顶点与新的顶点进行比较,如果两个顶点匹配,则存在邻接。

一种更好的方法(在 The Algorithm Design Manual中描述)是每次我们为每个三角形顶点创建一个列表时。该列表包含通过顶点的所有三角形。比如上面的三角形,顶点0有{A}的列表,顶点1有{A,B}的列表等等。所以当一个新的三角形来的时候,我们只需要检查3个顶点并尝试找到哪些旧三角形与新三角形有两个共同顶点。

这里有一些问题:

  1. 更好的方式是线性的吗?如何定义这种阅读和构建图的“线性”?例如,以更好的方式,一个新三角形需要遍历 3 个旧三角形列表。这足够线性吗?我认为它是线性的,因为它最多只能读取所有旧三角形。但是如果我的想法是真的,那么愚蠢的方式也是线性的,对吧?所以我想我可能错了,但很困惑。

  2. 会有更好的方法吗?算法设计手册要求这是一种消费税,即使在最坏的情况下,消费税也要求纯线性算法。

我对更好方法的解决方案是,我不是为每个顶点构建一个列表,而是为每个边构建一个列表。一个顶点可以有许多三角形通过,但是如果有一条边,则最多有两个三角形通过,假设所有三角形的边不相互交叉并且最多合并(共同)。

然后每条边都有一个最多包含两个项目的列表。而对于一个新出现的三角形,它最多需要检查 3 个边。我认为这比上面更好的方法更好

我对吗?还是我更好的方法是纯粹的最佳线性解决方案?

0 投票
2 回答
2595 浏览

ios - 使用 GL_Trianglestrip OpenGL ES 2.0 绘制四边形元素

我想在 OpenGL ES 2.0 中解析模型并渲染 4 顶点多边形(矩形),而不是使用两个三角形,我想为每个四边形/矩形使用一个三角形条。

问题是我的矩形没有在整个模型中连接。如果我有三个四边形(12 个顶点),我想像这样绘制它们(numOfQuadFaces = 3):

对顶点数组进行排序,以便每四个顶点开始一个新的四边形。但是当然 OpenGL 将其解释为对于数组中第三个顶点之外的每个新顶点都开始一个新三角形。我可以在某个地方指定我想要长度为 4 的单个三角形条/四边形吗?- 这样我就可以画出类似的东西(如果当然只在 glDrawArrays- 调用):