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

我可以填充顶点缓冲区-对于长方体,我首先使用点0-4的基坐标,然后向上变换它们(在Y轴上),并再次使用它们作为点5-7。
我读到我必须逆时针定义三角形,并且能够(手动)填充矩形框的索引缓冲区。但我不喜欢为每个形状手动完成的想法,所以肯定有(可能很容易)在代码中做到这一点的方法。
你能告诉我正确的方向吗?
发布于 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,等等
循环遍历这些点是很容易实现的,因为这些点是在系统中组织的。如果你跟踪底部有多少个点,你就可以很容易地获得“高于”任何其他点的点。
例如,如果要循环遍历四个一组中的所有点:
for(i = 0; i < numberOfPointsInBottom; i++)
{
listOfIndices = getIndicesFromFourPoints(i,(i+numberOfPointsInBottom),i+1,(i+numberOfPointsInBottom+1))
}在这个例子中,第一次迭代中funktion的输入是: 0,4,1,5。
当我需要连接由任意数量的边定义的圆柱体的顶点时,我就是这样做的,我希望你能理解我的思路。
https://stackoverflow.com/questions/12853328
复制相似问题