** 紹介 [#kdec7f9e] *** 概要 [#m5ac0804] TexTargaとは、 RGB565やS3TCなど、Targa(TGA)で表現できないフォーマットについて、 RGB8またはRGBA8というTargaで表現できるフォーマットに変換し、 Targaのピクセルデータ領域に変換したデータを格納したTargaの拡張フォーマット。 付加情報領域に、テクスチャのフォーマットを示す文字列(例えばRGB565,S3TC_DXT1など)を埋め込む。 *** 狙い [#lb5c3eb7] Targa形式のイメージファイルは多くの3Dモデリングソフトで使用できる。 しかし、グラフィックエンジンでしか扱えない形式(RGB565、S3TCなど)を 扱うことができる3Dモデリングソフトはそれに比べて少ない。 そこで、グラフィックエンジンでしか扱えない形式をTarga形式に変換することで 多くの3Dモデリングソフトで使用できるようになり、また、 グラフィックエンジンが出力する絵により近いレンダリング結果を 3Dモデリングソフト上で確認することができるようになる。 更にTexTargaフォーマットは、テクスチャのフォーマットを示す文字列や元データを拡張領域に埋め込むことで、 最終的に使用するプラットフォームに最適化されたテクスチャデータに変換することを可能にする。 *** 想定しているデータフロー [#ydb7b399] その1 +PhotoshopからTexTarga形式で画像を出力する。 +出力した画像を用いて3Dモデリングソフトでモデルを作成する。 +作成したモデルをColladaなど中間データとして出力する。その際、TexTargaも一緒にコピーする。 +モデルの中間データ、およびTexTargaデータを、プラットフォームに最適化されたデータに変換する。 その2 +Photoshop、GIMPなどの画像処理ソフトからTarga形式で画像を出力する。 +出力した画像をtextga_convを使ってTexTarga形式に変換する。 +以下、その1の2以降の流れと同じ。 *** 設計思想 [#f19f7dd2] - あくまで中間フォーマット。プラットフォームに最適化されたフォーマットに変換することを推奨。 - 最終的にプラットフォームに最適化できればいい。だから、データサイズは気にしない。 ** フォーマット [#qc720fa9] - TGAの拡張領域の先頭に"TEX_TARGA"の文字列がある。 - その後、タグ名とタグ名に対応したデータ部のペアが連続する。(タグリファレンス参照) - タグ名は必ず終端文字(¥0)を持つ。 データの例(上がデータの先頭。下がデータの末尾。) |BGCOLOR(ORANGE):TGA Header| |colourmaptypeは 2(未圧縮RGB)限定。| |bitsPerPixelは 24or32限定。| |BGCOLOR(ORANGE):Pixel Data| |ピクセルデータ(width x height x bitsPerPixel)| |BGCOLOR(ORANGE):Extension Area| |文字列"TEX_TARGA"| |タグ名と対応するデータ部のペアが任意の数並ぶ(例:"PIXEL_FORMAT""RGBA8")| ** タグリファレンス [#l189caa9] *** PIXEL_FORMAT(必須) [#k7c60ffd] データ部には、ピクセルフォーマットを示す文字列が入る。 文字列は必ず終端文字(¥0)を持つ。 ピクセルフォーマットを示す文字列一覧。 A4 A8 L4 L8 LA4 LA8 I4 I8 RGB232 RGB565 RGB8 RGB5A1 RGBA2 RGBA4 RGBA6 RGBA8 RGBA_S3TC_DXT1 RGBA_S3TC_DXT3 RGBA_S3TC_DXT5 *** SRC_DATA(任意) [#a9a52151] データ部には、変換前のピクセルバイナリデータが入る。 ピクセルバイナリデータは、TGAと同様に、 BGRA(bitsPerPixel=24のときはBGR)のブロックがwidth x height個、格納されている。 |