gpt4 book ai didi

javascript - webgl 中的 VertexIndices 是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:18:32 25 4
gpt4 key购买 nike

我正在从这个网站学习 WebGL:http://learningwebgl.com/blog/?p=370

我不明白,什么是 VertexIndices,为什么金字塔没有它们?

最佳答案

在定义 3D 对象的几何图形时,您需要使用两个基本元素:顶点和三 Angular 形。顶点只是空间中由 XYZ 坐标定义的位置(通常还有一些附加信息,如纹理坐标),而三 Angular 形只是三个顶点。

定义顶点非常简单。您通常只需像这样提供职位列表:

[
1.0, 2.0, 3.0, // vertex 0
4.0, 5.0, 6.0, // vertex 1
7.0, 8.0, 9.0, // vertex 2
// etc..
]

那么现在的问题是我们如何从中制作三 Angular 形?最直接的方法就是说每组三个顶点隐含一个三 Angular 形(因此上面的数组将定义一个三 Angular 形)。这很容易,因为它不需要任何额外信息,您只需提供三个顶点,剩下的由硬件完成。这称为非索引几何,这是金字塔在您链接到的教程中使用的方法。

问题是在大多数模型中,几个三 Angular 形都共享同一个顶点。想一想立方体的 Angular :至少有三个三 Angular 形都需要使用同一个点。对于非索引几何,您只需将数组中该顶点的信息复制三次。这不是非常有效,并且对于大型复杂网格,您最终会得到大量冗余数据。我们可以使用索引几何来解决这个问题。

使用索引几何,您只需在网格中定义每个顶点一次,然后提供第二个整数数组,索引到您的顶点数组中,基本上“连接点”以告诉您的图形卡哪些点组成三 Angular 形。

[
0, 1, 2, // Triangle 0, uses vertices 0, 1, and 2
3, 2, 1, // Triangle 2, uses vertices 3, 2, and 1
// etc...
]

这样效率更高,节省内存并且通常渲染速度也更快。这是cube在教程中使用的方法。

这两种方法都工作得很好,并且在某些情况下它们是更好的选择,但通常您会看到大多数专业应用程序使用索引几何,因为内存使用量较低。

这一切都清楚了吗?

关于javascript - webgl 中的 VertexIndices 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com