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. |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
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 |