MTL ファイル形式とは?
.mtl は、OBJ メッシュ形式のコンパニオンとして 3D モデリングアプリケーションで使用されるマテリアル設定ファイルです。1980年代後半に Wavefront Technologies によって開発された .mtl ファイルには、シーン内の各マテリアル名ごとに、拡散反射、環境光、鏡面反射の色、光沢、不透明度、テクスチャマップの参照などの表面外観に関する情報が保存されています。
マテリアル定義は newmtl <name> キーワードで始まるブロックにグループ化され、それぞれに Ka(環境光の色)、Kd(拡散反射の色)、Ks(鏡面反射の色)、Ns(鏡面反射指数)、d または Tr(透明度/ディゾルブ)、および map_Kd(拡散反射テクスチャ画像へのパス)などのプロパティステートメントが続きます。.mtl ファイルはプレーンテキスト形式でデータを保存するため、任意のテキストエディタで開くことができます。.mtl ファイルを手動で編集することは可能ですが、構文エラーが発生するとホストアプリケーションでのマテリアル設定の読み込みに影響を与える可能性があるため、注意が必要です。
.obj メッシュは mtllib ディレクティブを介してマテリアルを参照し、1つ以上の .mtl コンパニオンファイルを指定します。マテリアルブロック内にリストされているテクスチャマップは、通常、.mtl ファイルのディレクトリからの相対パスで PNG または JPG 画像を参照します。プレーンテキストでオープンな構造であるため、この形式は Blender や MeshLab を含む 3D ツールで広くサポートされています。
セキュリティと安全性
リスク: LOWMTL ファイルは実行可能コードを含まないプレーンテキストであるため、開いて読み取っても安全です。実用上の唯一の注意点は、map_* 行が外部画像ファイルを指しているため、テクスチャが紛失したり欠落したりするとモデルが灰色で読み込まれること(これはセキュリティ上の問題ではなくデータの問題です)、および理論上、細工されたテクスチャパスは 3D アプリが検索する相対ファイル名に過ぎないことです。この形式にはマクロやスクリプト機能は存在しません。常に信頼できるソースから 3D モデルを入手してください。
形式の詳細
概要MTL ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマットタイプ | プレーン ASCII テキスト。バイナリ構造やマジックバイトなし |
| コンパニオン形式 | Wavefront OBJ (.obj)。 .obj ファイルは mtllib ディレクティブを介して .mtl をリンクする |
| マテリアルブロックキーワード | newmtl <name> - ファイル内の各名前付きマテリアル定義の開始 |
| 拡散反射色 | Kd r g b - 0.0-1.0 の範囲の RGB 浮動小数点値 |
| 環境光の色 | Ka r g b - 0.0-1.0 の範囲の RGB 浮動小数点値 |
| 鏡面反射色と指数 | Ks r g b は鏡面反射色、Ns 0-1000 はハイライトのサイズ(光沢) |
| 透明度 | d (dissolve): 1.0 = 完全不透明、0.0 = 完全透明。Tr = 1 − d(逆の慣習) |
| 拡散反射テクスチャマップ | map_Kd <path> - 外部の PNG、JPG、または BMP 画像ファイルを参照 |
| 追加のテクスチャチャネル | map_Ks(鏡面反射マップ)、map_Bump / bump(法線/バンプマップ)、map_d(不透明度/ディゾルブマップ) |
| 照明モデル | illum 0-10 - フラット、ランバート、フォン、反射、レイトレーシング、または透明シェーディングを選択 |
| ファイルの識別 | バイナリのマジックバイトなし。プレーンテキスト内の newmtl キーワードによって識別される |
| MIME タイプ | model/mtl |
| テクスチャパスの処理 | 相対パスまたは絶対パス。相対パスは .mtl ファイルのディレクトリから解決される |
| マルチマテリアル対応 | 単一の .mtl ファイルで任意の数の名前付きマテリアルを定義可能。1つの .obj が複数の .mtl ファイルを参照する場合もある |
| リリース日 | Late 1980s (alongside the Wavefront OBJ format) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | paulbourke.net |
MTL の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。MTL ファイルについて最初の質問をしてみましょう。