Wyświetlanie modelu .3ds na scenie

0

Mam problem... Uczę się z tego tutoriala: http://www.xbdev.net/3dformats/3ds/tut2/index.php wczytywania plików .3ds. Doszedłem na razie do sprawdzania w jakich pozycjach znajdują się wierzchołki i face'y. Oto kawałek loga analizującego plik .3ds:

Box01

Chunk ID: 0x 4100 Size of Chunk: 322
Chunk ID: 0x 4110 Size of Chunk: 104

Number of Vertices 8

         Vertices Point: x: -4.93,           y: -22.27,         z: 0.00
         Vertices Point: x: 7.16,             y: -22.27,         z: 0.00
         Vertices Point: x: -4.93,           y: 8.38,             z: 0.00
         Vertices Point: x: 7.16,             y: 8.38,             z: 0.00
         Vertices Point: x: -4.93,           y: -22.27,         z: 16.17
         Vertices Point: x: 7.16,             y: -22.27,         z: 16.17
         Vertices Point: x: -4.93,           y: 8.38,             z: 16.17
         Vertices Point: x: 7.16,             y: 8.38,             z: 16.17

Chunk ID: 0x 4160 Size of Chunk: 54
Chunk ID: 0x 4120 Size of Chunk: 158

Number of Faces 12

         Face:  Index1: 0, Index2: 2, Index3 3
         Face:  Index1: 6, Index2: 3, Index3 1
         Face:  Index1: 0, Index2: 6, Index3 4
         Face:  Index1: 5, Index2: 7, Index3 6
         Face:  Index1: 7, Index2: 6, Index3 4
         Face:  Index1: 6, Index2: 0, Index3 1
         Face:  Index1: 5, Index2: 6, Index3 5
         Face:  Index1: 4, Index2: 0, Index3 6
         Face:  Index1: 1, Index2: 3, Index3 7
         Face:  Index1: 6, Index2: 7, Index3 5
         Face:  Index1: 1, Index2: 6, Index3 3
         Face:  Index1: 2, Index2: 6, Index3 6

Z tego co pisze w tym tutorialu, wynika, że face to zbiór 3 wierzchołków, które tworzą trójkąt. No i w pierwszym face'u wszystko by się zgadzało, trójkąt zostałby utworzony na osii z równej 0.

Jednak coś mi się nie zgadza z 2 face'em. Dwa wierzchołki, o indeksach 3 i 1, znajdują się po prawej stronie sześcianu, który mam wyświetlić, jeden u góry, drugi na dole, z tyłu tegoż sześcianu.

Ale numer 6 jest z przodu, u góry po lewej stronie. No i po połączeniu tych 3 wierzchołków powstanie trójkąt, ale nie będzie on przecież tworzył żadnej ściany sześcianu, znajdzie się on tak jakby wewnątrz niego. Według mnie, tam zamiast 6 powinna być 7, albo 5, bo znajdują się po prawej stronie.

I tutaj mam pytanie: Czy w tym logu jest jakiś błąd, czy ten błąd istnieje w moim rozumowaniu? Prosiłbym o wytknięcie jego/ich, z góry dziękuję za odpowiedź :)

0

Problem rozwiązany :) Nie było błędu w moim rozumowaniu, błąd był w tutorialu i w kodzie w nim umieszczonym, bo przy odczytywaniu wierzchołków struktura powinna wyglądać tak:

struct stFace{unsigned short p1, p2, p3, visibilityflag;};

a nie tak: struct stFace{unsigned short p1, p2, p3;};

 Błąd wykryłem przy analizie dalszej części tutoriala. Pozdro!

1 użytkowników online, w tym zalogowanych: 0, gości: 1