3ds
.3ds – format plików używany przez oprogramowanie Autodesk 3ds Max, przeznaczony do modelowania i animacji 3D.
Był macierzystym formatem plików pierwszych wydań Autodesk Studio DOS (wersje od 1 do 4). Z biegiem czasu rozwinął się do standardowego formatu, umożliwiającego przechowywanie wirtualnych modeli przestrzennych oraz ich eksport do różnych programów 3D.
Struktura
[edytuj | edytuj kod]3ds to binarny format plików, dlatego jest mniejszy i szybszy w ładowaniu niż popularne, tekstowe pliki. Oparty jest na hierarchicznej strukturze "klocków" (chunks), w której każdy fragment danych jest osadzony w bloku zawierającym identyfikatory odpowiednich "klocków" i rozmiary danych. Pozwala to parserom pominąć te kawałki, których nie rozpoznają oraz zapewnia możliwość rozszerzenia formatu. Takie rozwiązanie zbliżone jest do struktury plików xml - DOM. Pierwsze dwa bity "klocka" reprezentują jego ID, dzięki któremu parser identyfikuje odpowiednie fragmenty i decyduje, czy je pominąć czy nie. Następne cztery bity odpowiadają za rozmiar danego kawałka (integer zapisany w little-endian).
0x4D4D // Main Chunk
├─ 0x3D3D // 3D Editor Chunk
│ ├─ 0x4000 // Object Block
│ │ ├─ 0x4100 // Triangular Mesh
│ │ │ ├─ 0x4110 // Vertices List
│ │ │ ├─ 0x4120 // Faces Description
│ │ │ │ ├─ 0x4130 // Faces Material
│ │ │ │ └─ 0x4150 // Smoothing Group List
│ │ │ ├─ 0x4140 // Mapping Coordinates List
│ │ │ └─ 0x4160 // Local Coordinates System
│ │ ├─ 0x4600 // Light
│ │ │ └─ 0x4610 // Spotlight
│ │ └─ 0x4700 // Camera
│ └─ 0xAFFF // Material Block
│ ├─ 0xA000 // Material Name
│ ├─ 0xA010 // Ambient Color
│ ├─ 0xA020 // Diffuse Color
│ ├─ 0xA030 // Specular Color
│ ├─ 0xA200 // Texture Map 1
│ ├─ 0xA230 // Bump Map
│ └─ 0xA220 // Reflection Map
│ │ /* Sub Chunks For Each Map */
│ ├─ 0xA300 // Mapping Filename
│ └─ 0xA351 // Mapping Parameters
└─ 0xB000 // Keyframer Chunk
├─ 0xB002 // Mesh Information Block
│ ├─ 0xB010 // Object Name
│ ├─ 0xB013 // Object Pivot Point
│ ├─ 0xB020 // Position Track
│ ├─ 0xB021 // Rotation Track
│ ├─ 0xB022 // Scale Track
│ └─ 0xB030 // Hierarchy Position
├─ 0xB007 // Spot Light Information Block
└─ 0xB008 // Frames (Start and End)
Cechy
[edytuj | edytuj kod]Obecnie format .3ds jest uważany za niezbyt dogodny i elastyczny do pracy z obiektami 3D. Przede wszystkim z powodu kilku wad:
- wszystkie siatki muszą być zbudowane z trójkątów
- nazwy plików tekstur są ograniczone do formatu SFN (short filename).
- liczba wierzchołków i wielokątów nie może przekraczać 65536
- nazwy obiektów, świateł i kamery nie mogą zawierać więcej niż 10 znaków
- nazwy materiałów są ograniczone do 16 znaków
- format nie obsługuje kierunkowego źródła światła.
Obecnie .3ds coraz częściej zastępowane jest takimi formatami jak: .obj, .x., .cae i inne.