3d 顶点坐标生成

3d 顶点坐标生成,3d,vertex,coordinate,3d,Vertex,Coordinate,我有一个基本四边形网格,在x-z平面上有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

我有一个基本四边形网格,在x-z平面上有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) { //原点和Z沿边界边缘移动,扫描方式

}


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

如果尺寸是二的幂(例如2x2、64x64),则可以使用循环来完成。每次迭代将每条边(相邻顶点之间的垂直或水平空间)分成两半。新顶点位置将是相邻顶点的算术平均值。重复此操作,直到达到所需尺寸。我建议使用list us数据结构,因为您需要在其中注入新节点(顶点),使用list比使用array更简单、更快


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

显示您的“不清楚”解决方案或说明您的问题到底是什么。这里的Ppl将帮助您找到解决方案。但是他们不会帮你找到的。谢谢你的建议。我刚开始做一个函数,我只想我的方向是正确的。