**.3ds** adalah ekstensi berkas yang mewakili format *mesh* 3D yang digunakan oleh Autodesk 3ds Max (dahulu 3D Studio), sebuah perangkat lunak yang digunakan untuk membuat animasi, permodelan 3 dimensi dan rekacitra. Format berkas yang populer digunakan untuk melakukan impor dan ekspor data 3D ini tergolong ke dalam format biner (disebut juga berkas non-teks), dimana jenis berkas ini mengandung sejumlah kode atau struktur yang diperlukan untuk melakukan penyimpanan dan pengambilan data.

Struktur
--------

Sebuah berkas .3ds mengandung serangkaian informasi, antara lain data *mesh*, informasi pencahayaan, referensi bitmap, dan konfigurasi area pandang. Informasi tersebut digunakan untuk menggambarkan setiap detail adegan 3D yang tersusun dari satu objek atau lebih. Dalam setiap berkas .3ds terdapat sejumlah blok data yang disebut dengan *chunk* (potongan). Semua informasi penting terkait penggambaran sebuah adegan terdapat di dalam potongan tersebut, antara lain informasi tentang nama dari setiap objek, koordinat pemetaan, koordinat sudut, warna permukaan, dan sebagainya.

Potongan tidak memiliki struktur linear, melainkan struktur hierarki, sehingga sebuah potongan hanya dapat dibaca jika potongan induk telah terbaca sebelumnya. Setiap potongan dalam berkas .3ds terdiri dari blok data yang berisi **ID** (*identifier*), **panjang blok**, dan **data** itu sendiri. **ID** adalah dua bita pertama yang mewakili sebuah potongan yang dapat memberi informasi terkait identitas data dan sub-potongan. Informasi tersebut diperlukan dalam menentukan apakah potongan tersebut berguna atau tidak untuk tujuan pembaca fail. **Panjang blok** berupa bilangan bulat empat bita yang menunjukkan total panjang dari potongan induk dan semua sub-potongan yang terdapat di dalamnya. Panjang potongan induk sendiri tidak dapat ditentukan, sehingga satu-satunya cara untuk menguraikan sub-potongan adalah dengan mengetahui format yang akurat dari potongan induk. **Data** berisi jumlah bita aktual potongan dan sub-potongannya.

Berikut ini adalah daftar ID sebuah potongan yang umum digunakan, berupa struktur hierarki yang menggambarkan hubungan ketergantungan antar sub-potongan.

```
MAIN CHUNK 0x4D4D
   3D EDITOR CHUNK 0x3D3D
      OBJECT BLOCK 0x4000
         TRIANGULAR MESH 0x4100
            VERTICES LIST 0x4110
            FACES DESCRIPTION 0x4120
               FACES MATERIAL 0x4130
            MAPPING COORDINATES LIST 0x4140
               SMOOTHING GROUP LIST 0x4150
            LOCAL COORDINATES SYSTEM 0x4160
         LIGHT 0x4600
            SPOTLIGHT 0x4610
         CAMERA 0x4700
      MATERIAL BLOCK 0xAFFF
         MATERIAL NAME 0xA000
         AMBIENT COLOR 0xA010
         DIFFUSE COLOR 0xA020
         SPECULAR COLOR 0xA030
         TEXTURE MAP 1 0xA200
         BUMP MAP 0xA230
         REFLECTION MAP 0xA220
         [SUB CHUNKS FOR EACH MAP]
            MAPPING FILENAME 0xA300
            MAPPING PARAMETERS 0xA351
      KEYFRAMER CHUNK 0xB000
         MESH INFORMATION BLOCK 0xB002
         SPOT LIGHT INFORMATION BLOCK 0xB007
         FRAMES (START AND END) 0xB008
            OBJECT NAME 0xB010
            OBJECT PIVOT POINT 0xB013
            POSITION TRACK 0xB020
            ROTATION TRACK 0xB021
            SCALE TRACK 0xB022
            HIERARCHY POSITION 0xB030
```
Seperti telah disebutkan sebelumnya, bahwa untuk dapat membaca sub-potongan maka potongan induk harus terbaca terlebih dahulu. Contohnya, untuk dapat meraih potongan VERTICAL LIST, maka potongan-potongan berikut secara berurutan harus terbaca terlebih dahulu : MAIN CHUNK - 3D EDITOR - OBJECT BLOCK - TRIANGULAR MESH.

Impor .3ds pada Autodesk 3ds Max
--------------------------------

Dalam penggunaan perangkat lunak Autodesk 3ds Max, sebuah berkas .3ds dapat diimpor ke dalam *scene*. Informasi yang dapat dimasukkan antara lain level pencahayaan, latar belakang (*solid*, gradien, bitmap), pengaturan transparansi, semua parameter peta, bitmap *mask,* dan data *patch 3D Surfer*. Sedangkan informasi yang tidak dapat dimasukkan adalah contoh *keyframe*, saluran peta yang tidak aktif, *morph key*, stiker transparansi dengan palet warna RGB pada piksel kiri atas peta, dan format peta kubik khusus.

Referensi
---------

1. ↑  Iqbal, Kashif (2019-10-11). "Format File 3DS". *docs.fileformat.com*. Diakses tanggal 2024-02-22.
2. 1 2  "Spacesimulator.net - Space Simulator Project - OpenGL Tutorials - Game Development". *www.spacesimulator.net*. Diakses tanggal 2024-02-22.
3. 1 2  "The Labs: 3DS File Format". *web.archive.org*. 2015-03-21. Diakses tanggal 2024-02-24.
4. ↑  "Help". *help.autodesk.com*. Diakses tanggal 2024-02-24.