13 (507)










[Patrz też: 3DS Loader]

Opis formatu pliku 3DS i ASC

Oczywiście można pokusić się o napisanie programu wczytującego scenę 3D z pliku zapisanego w formacie 3D Studio np. *.ASC lub *.3DS., ale tu najlepiej posłużyć się gotowym przykładem który dołączam do kursu. Jego zadaniem jest wczytywanie i wyświetlenie zawartości pliku *.3DS. Program ten odczytuje zarówno dane o wierzchołkach, ich połączeniach, teksturach jak i zapisanych danych o animacji. Tu można podać krótkie informacje o budowie plików 3D Studio:

*.ASC - plik tekstowy w którym nie można zapisać informacji o animacji. Zbudowany jest on z trzech podstawowych sekcji: informacji ogólnych o pliku, spisu wierzchołków, opisu ich połączeń. Opis niektórych liń które mogą się w nim pojawić:
np.
Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216
Określa kolor obiektu tj. intesywność składowej czerwonej(RED), niebieskie(BLUE), zielonej(GREEN).
np.
Named object: "Object01"
Określa nazwę obiektu, tu obiekt nazywa się Object01(standardowe nazewnictwo 3D Studio)
np.
Tri-mesh, Vertices: 8 Faces: 12
Określa typ obiektu jako Tri-mesh, informuje że w pliku są zapisane dane o 8 wierzchołkach i 12 opisów ich połączeń
np.
Vertex list:
Pole oznaczające początek bloku zawierającego dane o wierzchołkach obiektu.
np.
Vertex 0: X: 16.028574 Y: -49.432884 Z: 32.237526
Definiuje wierzchołek o numerze 0, posiadający odpowiednie(jak wyżej) współrzędne X,Y,Z
...(Powyższe pole powtarzane tyle razy ile wierzchołków)
UWAGA: Jeśli plik zawiera także definicje współrzędnych S i T dla tekstur to powyższa linia może wyglądać np. tak:
Vertex 0: X:-207.612457 Y:-129.695084 Z:-122.260666 U:-0.538062 V:-0.111303
Co oznacza, że wierzchołkowi nr. 0 odpowiadają współrzędne tekstury S:-0.538062 i T:-0.111303
np.
Face list:
Pole oznaczające początek opisu połączeń wierzchołków(definicji wielokątów).
np.
Face 0: A:0 B:1 C:2 AB:1 BC:1 CA:0
Definiuje połączenia nr. 0 gdzie:
A:0 - przypisanie znakowi A wierzchołka o numerze 0
B:1 - przypisanie znakowi B wierzchołka o numerze 1
C:2 - przypisanie znakowi C wierzchołka o numerze 2
AB:1 - informuje, że wierzchołki A i B należy połączyć. W tym wypadku A to wierzchołek 0 a B to wierzchołek 1(patrz wyżej). Wiec w tym wypadku "AB:1" oznacza, że należy połączyć wierzchołki o numerze 0 i o numerze 1.
Analogicznie BC:1, natomiast CA:0 oznacza że wierzchołki C(numer 2) i A(numer 0 )są połączone ze sobą, ale nie widać tego połączenia.
Powyższa linia definicji połączeń wierzchołków powtarzana tyle razy ile podano na początku pliku.
Jeśli plik zawiera informacje o teksturach to każda definicja połączeń wirzchołków może posiadać jeszcze linie takie jak np.
Material:"YELLOWMETAL"
Smoothing: 3
Które przypisują wcześniej okreslonemu trójkątowi teksturę "YELLOWMETAL"

[Patrz też przykład 3DS2.RAR w przykładach]
[Patrz też opis tegoż przykładu]


*.3DS. - binarny plik zawierający sceny 3D z możliwością zapisu animacji. Ma budowę blokową. Każdy blok rozpoczyna się nagłówkiem zawierającym identyfikator typu bloku oraz adresem kolejnego bloku. Budowa takiego nagłówka jest następująca:
Co: Długość:
Identyfikator 2 bajty
Adres następnego bloku 4 bajty
Identyfikator określa typ bloku. I tak cały plik *.3DS. rozpoczyna się blokiem o identyfikatorze: 4D4D. Należy zauważyć, że bloki mogą być zawarte w innych blokach. Najważniejszym chyba blokiem jest blok o identyfikatorze 3D3D - dane o obiekcie. Jego podbloki mogą mieć następujące identyfikatory:
Identyfikator Co to?
2. Kolor tła
3. Kolor obiektu
4000 Definicja obiektu
Z kolei blok o identyfikatorze 4000 może mieć następujące podbloki(uwaga pierwszym polem bloku 4000 jest ciąg ASCIZ[zakończony bajtem o kodzie ASCII 0] zawierający nazwę obiektu):
Identyfikator Co to ?
4. Cień
5. Obiekt zbudowany z trójkątów
6. Światło
4700 Kamera
Blok 4100 może zawierać podbloki:
Identyfikator Co to ?
7. Lista wierzchołków
8. Lista pojedynczych punktów
4160 Macierz translacji
Budowa bloku 4110:
Wielkość Opis
2bajty short int Całkowita liczba wierzchołków
4bajty float X wartość
4bajty float Y wartość
4bajty float Z vwartość
.. .. . .. ..
.. .. . .. ..
Powyższe trzy linie powtarzają się tyle razy ile wskazuje na to pole: "Całkowita liczba wierzchołków", czyli tyle razy ile jest wirzchołków.
Powyższy opis pliku *.3DS. podobnie jak *.ASC jest niekompletny, ale jego celem jest jedynie zobrazowanie zasady budowy tych plików. Najlepiej do obsługi *.3DS. użyć gotowych już programów lub bibliotek. Jednocześnie bez problemu samemu możemy stworzyć własny format dla sceny. Tu chcę zauważyć iż w praktyce stosuje się tylko pliki typu *.3DS. bowiem przy bardzo złożonych obiektach pliki *.ASC mają bardzo duże rozmiary co może powodować długi czas ich wczytywania w porównaniu do plików *.3DS.

[Patrz też przykład 3DSRDR.RAR w przykładach]







Wyszukiwarka

Podobne podstrony:
UAS 13 zao
er4p2 5 13
Budownictwo Ogolne II zaoczne wyklad 13 ppoz
ch04 (13)
model ekonometryczny zatrudnienie (13 stron)
Logistyka (13 stron)
Stereochemia 13
kol zal sem2 EiT 13 2014
EZNiOS Log 13 w7 zasoby

więcej podobnych podstron