| ホーム > プログラミング > 3D形状ファイルフォーマット > 3DSファイルフォーマット |
Autodesk社の3D Studioというソフト用のファイルフォーマットです。
多くのCGソフトがサポートし、CGソフトの中間ファイルフォーマットとして広く使用されています。
3D Studio は、3D Studio ⇒ 3D Studio Max ⇒ 3ds Max と、ソフト名が変わっています。
マテリアルデータ、立面図データ、光源データ、視点データの記録にも対応しています。
3DSファイルフォーマットは、バイナリーフォーマットです。
筆者は、公式の仕様書の所在を知りません。
公式の仕様書の所在をご存知の方はご一報ください。(「ホーム > コンタクト」)
バイト数 データ内容 2 チャンクID 4 子や孫のチャンクデータを含めたデータサイズ チャンク種類ごとに異なる チャンクデータ 2 チャンクID 4 子や孫のチャンクデータを含めたデータサイズ チャンク種類ごとに異なる チャンクデータ 2 チャンクID 4 子や孫のチャンクデータを含めたデータサイズ チャンク種類ごとに異なる チャンクデータ 2 チャンクID 4 子や孫のチャンクデータを含めたデータサイズ チャンク種類ごとに異なる チャンクデータ
エンディアン(endian、byte order)に関してはLittle Endian、Big Endianのどちらが正しいのかは不明です。
「チャンク」というデータ単位の概念があります。
「チャンク」というデータ単位の概念は、ツリー構造になっています。
(下のツリー構造図の各ノードは、
チャンクID (チャンク種類の通称)
となっています。)
0x4D4D (Main chunk)
┣0x3D3D (3D editor chunk)
┃ ┣0x4000 (Object block)
┃ ┃ ┣0x4100 (Triangular mesh)
┃ ┃ ┃ ┣0x4110 (Vertices list)
┃ ┃ ┃ ┣0x4120 (Faces description)
┃ ┃ ┃ ┃ ┗0x4130 (Face material list)
┃ ┃ ┃ ┗(省略)
┃ ┃ ┗(省略)
┃ ┣0xAFFF (Material block)
┃ ┃ ┣0xA000 (Material name)
┃ ┃ ┣0xA010 (Ambient color)
┃ ┃ ┣0xA020 (Diffuse color)
┃ ┃ ┣0xA030 (Specular color)
┃ ┃ ┣0xA040 (Shininess percent)
┃ ┃ ┗(省略)
┃ ┗(省略)
┗(省略)
2バイトのチャンクID、4バイトの「子や孫のチャンクデータを含めたデータサイズ」、「チャンク種類ごとに異なる」バイトのチャンクデータと続きます。
たとえば、チャンクIDが0x4D4Dのとき、すなわち、Main chunkのとき、「子や孫のチャンクデータを含めたデータサイズ」には、Main chunkのデータだけでなく、子や孫にあたる3D editor chunkデータやObject blockデータやTriangular meshデータやVertices listデータを含めたデータサイズになります。
3D editor chunkのときの「子や孫のチャンクデータを含めたデータサイズ」も、3D Editor chunkのデータだけでなく、子や孫のデータを含めたデータサイズになります。
チャンクデータの記録フォーマットは、チャンク種類ごとに異なります。
3DSファイルフォーマットのすべてを解説するのは困難なので、3Dモデル表現に関するフォーマット部分にフォーカスして解説します。
3Dモデル表現に関係のあるチャンクは、Object block、Vertices list、Faces descriptionです。
- Object block
- オブジェクト名を表す任意の長さの文字列が記録されます。
- Vertices list
- まず、2バイトで、頂点数が記録されます。
続いて、頂点数分の頂点データの記録が続きます。
1つの頂点データは、単精度浮動少数点型(=4バイト) × 3成分(x, y, z) の12バイトで記録されます。- Faces description
- まず、2バイトで、三角形数が記録されます。
続いて、三角形数分の三角形データの記録が続きます。
1つの三角形データは、頂点番号(=2バイト) × 3頂点 と、3頂点の可視不可視フラグ(2バイト)の8バイトで記録されます。
cube.3ds ( 10x10x10 立方体 )
コメント
ご意見、ご感想、ご質問、ご要望等は、「コメントを投稿する」もしくは「ホーム
> コンタクト」よりお願いいたします。
内容の誤り、誤字脱字、リンクミスなどの問題点を発見された場合には「コメントを投稿する」もしくは「ホーム
> コンタクト」より連絡していただけると幸いです。
Copyright (c) 2004-2010 Nobuki HIRAMINE All rights reserved.