* 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}; |