Historique des modifications - Message

Message #11290

Sujet: Ensemble de cube


Type Date Auteur Contenu
Création du message 25-05-2013 17:51:18 johnplayer
Je t'ai donné la manière, tu dois faire un tableau de u8 contenant le type des cubes. Lorsque tu calcules les faces à afficher d'un cube, tu créé une face si le cube adjacent est un cube d'air. Pour savoir si c'est un cube d'air, tu testes le u8 qui contient le type du bloc adjacent.

On part du principe que l'air à un ID de 0 donc son type a pour valeur u8(0) si tu préfères.
Pour un cluster, tu as 16*16*16 cubes, donc tu dois avoir un u8 TypesCubesCluster[16][16][16] (orientation = [X][Y][Z]).
Tu veux tester le cube à la position [xcurrent][ycurrent][zcurrent], tu t'y prends de cette manière:

Pour chacune des faces, tu testes les cubes adjacents
{
// face du dessus, le cube adjacent se trouve 1 cube plus haut sur y donc Y = ycurrent + 1
Si TypesCubesCluster [xcurrent][ycurrent+1][zcurrent] == u8(0)
{
On calcule les vertex et index de la face en question et on les mets dans le buffer
}
// On fait la même chose pour les cubes adjacents en ycurrent-1, xcurrent+1, xcurrent-1, zcurrent+1 et zcurrent-1
// Ce qui correspond à tes 6 faces
}

Par contre, il y a une chose à prendre en compte. C'est que les cubes qui sont en bords de tableau (une ou plusieurs coordonnées à 0 ou 15) n'ont pas tout leurs cubes adjacents. Il faut donc faire attention de ne pas essayer de lire des valeurs hors tableau. Ceci dit, pour ces derniers, il faudra aller chercher les cubes adjacents dans les tableaux des clusters adjacents s'ils existes. Il faudra donc établir un lien entre les clusters afin de pouvoir y accéder.

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
139 invités en ligne
membre en ligne: -
RSS Feed