0

我有基础四边形网格,在 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)计算的,我需要弄清楚何时停止遍历。

4

1 回答 1

0

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

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

于 2012-11-19T07:34:16.690 回答