首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为简单形状创建网格(或索引缓冲区),该形状由其根部的点定义

为简单形状创建网格(或索引缓冲区),该形状由其根部的点定义
EN

Stack Overflow用户
提问于 2012-10-12 14:18:11
回答 1查看 455关注 0票数 1

我正在尝试创建一个建筑物的网格,我有一个基点的坐标(底部)。底座最简单的形状是矩形,但也可以更复杂。但是基点总是定向的,并且总是连接在一起的。

这是我想要的3d形状的图像:

我可以填充顶点缓冲区-对于长方体,我首先使用点0-4的基坐标,然后向上变换它们(在Y轴上),并再次使用它们作为点5-7。

我读到我必须逆时针定义三角形,并且能够(手动)填充矩形框的索引缓冲区。但我不喜欢为每个形状手动完成的想法,所以肯定有(可能很容易)在代码中做到这一点的方法。

你能告诉我正确的方向吗?

EN

回答 1

Stack Overflow用户

发布于 2012-10-15 21:32:17

我认为最简单的方法是有一个方法,它取4个点,例如本例中的0,4,5,1,并创建两个三角形,构成一个平面,并返回一个包含6个索引的列表。然后,您只需迭代四个一组中的所有点。

因此,在您的示例中:第一个输入是: 0,4,5,1,这创建了输出索引: 0,4,1,1,4,5。第二个输入是: 1,5,6,2,这创建了输出索引:1,5,2,2,5,6,等等

循环遍历这些点是很容易实现的,因为这些点是在系统中组织的。如果你跟踪底部有多少个点,你就可以很容易地获得“高于”任何其他点的点。

例如,如果要循环遍历四个一组中的所有点:

代码语言:javascript
复制
    for(i = 0; i < numberOfPointsInBottom; i++)
    {
         listOfIndices = getIndicesFromFourPoints(i,(i+numberOfPointsInBottom),i+1,(i+numberOfPointsInBottom+1))
    }

在这个例子中,第一次迭代中funktion的输入是: 0,4,1,5。

当我需要连接由任意数量的边定义的圆柱体的顶点时,我就是这样做的,我希望你能理解我的思路。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12853328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档