1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Vertices = new TerrainVertex[TotalVertices];
int index = 0;
/* Ajout du tout premier vertex du Chunk */
Vertices[index++] = new TerrainVertex(0, 0, 0, 0, 1, 0, 0, 0, 0, 0);
/* Pour chaque LOD */
for (int LOD = 0; LOD <= 4; LOD++)
{
int iLOD = LODToDividend(LOD);
/* Pour chaque ligne */
for (int y = 0; y <= QUADS_ROWS; y += iLOD)
{
/* Pour chaque case */
for (int x = 0; x <= QUADS_ROWS; x += iLOD)
{
float X = (float)x / (float)QUADS_ROWS * (float)CHUNK_SIZE;
float Z = (float)y / (float)QUADS_ROWS * (float)CHUNK_SIZE;
/* Si ce n'est pas déjà dans le buffer... */
if (!PosAlreadyInVB(new Vector3(X, 0, Z)))
{
/* Ajout du vertex à la liste */
Vertices[index++] = new TerrainVertex(
X, 0, Z,
0, 1, 0,
0, 0,
0, 0
);
}
}
}
} |