* About [#kdec7f9e]

** 発端 [#ia81ff98]
3Dモデル&アニメーションの中間データとして「Collada」が存在する。
しかし、3Dモデルに貼り付けるテクスチャには、
中間データとして位置づけられるフォーマットが存在しない。
そういうフォーマットがあってもいいのではないか?

** Targaフォーマットをベースとして採用 [#oebe0b19]
テクスチャの中間フォーマット、全く新しいフォーマットを作ることも可能だ。
しかし、新しいフォーマットだと、テクスチャを扱うアプリケーション(例:Maya、Photoshop、etc...)ごとに
プラグインを開発する必要が出てくる。それは避けたい。

そこで、いろんなアプリケーションでデフォルトで使え、かつ独自に拡張可能なイメージフォーマット、Targa(以下、TGA)を選択した。

** 拡張する事柄 [#i3b38924]
*** データ量の少ないテクスチャフォーマットに対応 [#s8b2772b]
作成した3Dモデルを描画する環境が、もしメモリを気にしない環境であれば
Targaがサポートする24bit(RGB8)、もしくは32bit(RGBA8)のピクセルフォーマットを選択すれば解決する。
しかし、メモリを節約しないといけない環境(例:家庭用ゲーム機,旧世代のPC,etc...)で描画するのであれば
極力テクスチャのデータ量は節約したいものだ。

そこで、テクスチャに求めるピクセルフォーマットを埋め込むことにした。
「このテクスチャは地面に貼り付けるものだから"DXT1"」
「このテクスチャはは2値のアルファを持っているだけなので"A1"」
といったように、テクスチャの使い道からピクセルフォーマットを決定する。

TGAのイメージデータ領域に存在するピクセルは、指定したピクセルフォーマットで減色する。
減色前の元のピクセルは拡張領域にバックアップしておく。
こうすることで、テクスチャを扱うアプリケーションで減色されたデータをプレビューできるようになる。

** 想定しているデータフロー [#ydb7b399]
その1
+PhotoshopからTexTarga形式で画像を出力する。(プラグインはまだ作成していない)
+出力した画像を用いて3Dモデリングソフトでモデルを作成する。
+作成したモデルをColladaなど中間データとして出力する。その際、TexTargaも一緒にコピーする。
+モデルの中間データ、およびTexTargaデータを、プラットフォームに最適化されたデータに変換する。

その2
+Photoshop、GIMPなどの画像処理ソフトからTarga形式で画像を出力する。
+出力した画像をtextga_convを使ってTexTarga形式に変換する。
+以下、その1の2以降の流れと同じ。

** 設計思想 [#f19f7dd2]
- Colladaと併せて使いたい。
- あくまで中間フォーマット。プラットフォームに最適化されたフォーマットに変換することを推奨。
- 最終的にプラットフォームに最適化できればいい。だから、データサイズは気にしない。

** History [#cc5023fe]
#comment(below)
//#comment(below)
- 初稿 -- [[あっきー]] &new{2007-12-28 (金) 20:06:08};

    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS