顶点坐标生成

时间:2012-11-19 06:43:00

标签: 3d vertex coordinate

我有基础四边形网格,在xz平原上有4个点(-8.0f,0.0f,-8.0f),(8.0f,0.0f,-8.0f),(8.0f,0.0f,8.0f) ,( - 8,0.0f.0f,8.0f)。如果我要求用户选择任意数量的维度,例如2x2或64x64,那么我需要做的是创建顶点数组并存储这些坐标,因为我需要创建那么多的四边形网格。我无法想出解决这个问题的清洁解决方案。我还需要使用这些顶点来创建四边形,因此创建顶点以便以后用于创建四边形网格非常重要

所以这是我正在研究的功能

void initializeMesh(float originX,float originZ,float xWidth,float zWidth) {     // originX和Z沿着边界的边缘移动,扫描时尚

}

它看起来像个不错的主意吗? x和z宽度是根据用户输入尺寸(16.0f / dimX和16.0f / dimY)计算的,我需要确定何时停止遍历。

1 个答案:

答案 0 :(得分:0)

如果维度是2的幂(就像你的例子2x2,64x64),你可以用循环来做。每次迭代将每个边缘(相邻顶点之间的垂直或水平空间)分成两半。新顶点位置将是相邻顶点的算术平均值。重复它直到达到所需的尺寸。我建议列出我们的数据结构,因为你需要在其中注入新的节点(顶点),并且列表比数组更容易和更快。

它不会弄乱顶点顺序,你可以扩展它以支持顶点属性(如纹理坐标),它们也将是算术平均值。