问题标签 [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 投票
2 回答
318 浏览

java - 得到三角形内的三角形?

我在查找构成给定opengl三角形条带内所有三角形的顶点时遇到问题。我想知道是否有人可以通过一些伪代码或示例来帮助解决这个问题。

这是我绘制每个顶点的示例。我知道我需要将每个顶点分配给包含局部变量 point1、point2 和 point3 的三角形对象。这三个变量是一个向量对象,每个都有一个 x、y 和 z。但是我的问题总是以我在哪里创建三角形对象而告终,而我显然不应该在每个 for 循环的迭代中创建一个?另外,我需要知道每个三角形的点的原因是因为我正在计算表面法线。

另外,如果有任何帮助,我将在 java 中使用 lwjgl。

0 投票
1 回答
312 浏览

java - 用三角形条画法线面?

我必须计算三角形条的法线,并且遇到一个问题,即每个其他三角形都是暗的并且阴影不好。我正在使用平面阴影模型。我不知道它是否与缠绕方向有关。当我查看三角形条下方时,我注意到它与顶部相同,除了黑暗区域或切换。我认为问题可能是我试图计算的表面法线使用共享顶点。如果是这种情况,您会建议切换到 GL_TRIANGLES 吗?你会如何解决这个问题?

这是我现在所拥有的。三角形类中包含 triVerts 数组,其中包含三个 Vert 对象。Vert 对象具有变量 x、y 和 z。

0 投票
2 回答
687 浏览

java - 外观呈三角条状。表面法线?还是绕组?

下面是我的结果的图片。

我正在使用平面阴影并将每个顶点放在它们可敬的三角形对象中。然后我使用这些顶点来计算表面法线。我一直在阅读,因为我的三角形共享相似的顶点,计算法线可能是一个问题?但对我来说,这看起来像是一个绕组问题,因为其他所有的都是关闭的。

我在下面提供了一些我的代码给任何想要查看它并更好地了解问题可能是什么的人。

一个三角形带

0 投票
2 回答
51327 浏览

opengl - GL_TRIANGLE_STRIP 与 GL_TRIANGLE_FAN

我需要一个只能由 完成的GL_TRIANGLE_STRIP多边形和另一个只能由 完成的多边形的示例GL_TRIANGLE_FAN

0 投票
2 回答
738 浏览

opengl - 使用 GL_TRIANGLES 绑定纹理

在过去,我曾经将纹理绑定到 QUADS,然后用它渲染它们。如果我有一个动画,我必须将图像的特定部分绑定到四边形,那么我只需要使用通用坐标 [0..1] 就可以了。

问题是现在我再次尝试使用 openGL,我已经看到 GL_QUADS 已被弃用,现在我看到的只是用 TRIANGLES 渲染。我的问题是我不知道如何使用三角形绑定纹理。

谢谢

0 投票
0 回答
660 浏览

arrays - 将具有退化三角形的索引三角形带索引数组转换为原始重新启动

这是 Direct3D 10 或 OpenGL 3.2 / GLES 3.0 和原始重启的问题。

我正在尝试寻找一种将包含退化三角形带的索引数组转换为另一个索引数组的方法,其中退化索引被 0xFFFF 替换(索引三角形带由 nvTriStrip 转换)。

例如我有

索引列表 0, 1, 2, 2, 3, 3 , 4, 5, 6

0、1、2、0xFFFF、3、4、5、6

但我想保持“缠绕顺序”,因为仅删除一个索引是不够的。

我试过这样的方式

但我正在失去蜿蜒的信息。

根据这段代码,您有什么建议,这似乎无法正常工作。

0 投票
2 回答
1016 浏览

c++ - 用三角形制作 OpenGL 平面的问题

我正在尝试使用 OpenGL 制作飞机,在某种程度上代码有效,但我在某些索引上得到了奇怪的结果。我会尽力解释我的代码,它是我的代码和我在网上找到的代码的混合体。

主要的:

所有设置都发生在 main 中,因此该函数将知道所有需要的值

功能:

第一个 for 循环创建顶点,第二个创建索引

结果:

4×2

指数 0, 5, 1, 6, 2, 7, 3, 8, 4, 9, 9, 5, 5, 10, 6, 11, 7, 12, 8, 13, 9, 14, 0, 0, 0 , 0, 0, 0, ...} 无符号整数 [42]

它做了 22 个正确的值,然后其余的都是零。

任何想法为什么?

0 投票
0 回答
668 浏览

opengl - 给定这个带有 GL_LINE_STRIP 的抛物线方程,我需要带有 GL_TRIANGLE_STRIP 的抛物线形圆柱体吗?

我有代码绘制抛物线给定两个端点和下垂/下垂的值来模拟电线。我目前正在使用 GL_LINE_STRIP 来绘制它,但它仅限于像素厚度,并且我需要世界坐标厚度。所以我需要做的是通过一个半径的厚度并在这个抛物线上的每个点上绘制一个圆柱体,它的高度段。在这个坐标系中,+Y 向上。这是我的代码:

如您所见,我有一个 WorldToLocal 将 Lat/Long/El 转换为本地 opengl 坐标...wx1、wy1、wz1 是一个端点,而 wx3、wy3、wz3 是另一个端点。

假设圆柱精度为每段 6 个顶点......我在想由于 GL_TRIANGLE_STRIP 绘图方法,我需要将这些抛物线点添加到数组中并使用它们预先计算,因为我需要知道当前和绘制我的圆柱段时的下一段,对吗?圆柱体不需要在末端加盖。

0 投票
0 回答
200 浏览

directx - 使用三角条在 DirectX 中计算高度图法线

我正在尝试加载高度图数据,但我正在努力弄清楚如何计算出法线。上网查了一下,好像没找到有用的。

我使用存储顶点

然后使用加载顶点

我能够使用三角形列表计算法线,这很简单,但不确定如何使用条带

0 投票
2 回答
1860 浏览

kinect - 从二维网格上的点云创建网格

我正在使用新的 Kinect v2,并且正在获取 Kinect 的深度图。获得深度图后,我将深度数据从深度空间转换为相机空间。据我了解,这是通过将每个像素的所有 X、Y 坐标转换为相机空间 + 将深度值添加为 Z 坐标来完成的(Kinect 也以毫米为单位给出深度值,因此它也被转换为保持米)。正因为如此,点云实际上是在以深度值扩展的 2D 网格上。可视化也证实了这一点,因为由于上述对话,很容易注意到这些点在网格中排序。

对于可视化,我使用 OpenGL 的老式方式(glBegin(...) 和 glEnd())。我想用这些点创建一个网格。我设法用 GL_TRIANGLES 做到了,但是我有很多重复的顶点和边。所以我想我应该用 GL_TRIANGLE_STRIP 创建一个更好的三角剖分,但我被困在这里,因为我无法想出一个好的算法,它可以通过我的 2D 网格以某种方式将它提供给 GL_TRIANGLE_STRIP 所以它创建一个漂亮的表面。

问题:

  • 对于每个三角形的顶点,我正在检查 Z 坐标。如果它超过某个阈值,我会忽略三角形 => 这可能会在我的 2D 网格中创建孔。

  • 一些深度值是 NaN,因为 Kinect 无法“看到”任何东西(例如对象太远或太近)=> 这也会在 2D 网格中创建孔。

有人有什么建议解决这个问题的最佳方法是什么?