Photoshop、Gimp、Substance Painterで作ったテクスチャをBlender、Maya、3ds MaxみたいなDCCツールとやりとりする画像の中間フォーマットは何がいいのだろう?という質問があったので整理してみました。
最終フォーマットはスカイリムみたいなPCゲームなら、今のところdds一択なので迷わず済みます。
可逆圧縮の画像フォーマット
可逆圧縮以外は画質が劣化するので非可逆圧縮フォーマットのddsやjpgは除外します。それぞれ一長一短があります。
png
1996年にリリースされ、特許権問題を抱えたgifの代替として開発されたweb向けフォーマット。
○:ほぼすべてのソフトで扱える。他の可逆圧縮フォーマットに比べるとファイルサイズが小さい。
✕:アルファチャンネル付きでエラーを起こす場合がある。保存や展開(デコード)が少し遅い。数枚程度なら気にならないレベルだが多いと重い。
評:ファイルサイズが小さくほぼすべてのソフトで扱えるため、作業速度が気にならなければ大抵はpngでOK。
tiff
1986年にマイクロソフトとAldusによって開発されたフォーマット。
○:自由度が高く圧縮形式の選択、複数解像度やレイヤーにも対応。tiffの圧縮はLZW形式だと圧縮効率と互換性、処理速度のバランスがよく作業に向いている。無圧縮も選べて色制限が少ないので印刷でもよく使う。
処理速度の参考:タブログ PNG vs TIFF : AfterEffectsCC2019、png?tif? : playblast for Maya
✕:自由度の高さが仇となり完全な互換性が保ちにくい。ソフト側で対応してない箇所はエラーとなる。たとえばソフトによってはアルファチャンネルやレイヤーが扱えず無視される。Adobe系のソフトは問題ない。
評:処理速度がpngより速いので、大量に画像使う動画やCG関係では便利。画像によるがpngより若干重くなる傾向がある。ソフト間の互換は事前に検証しましょう。圧縮はLZW形式がオススメ。
tga
初代は1984年、現行のバージョンは1989年にTrueVision社によって定められた古くからあるフォーマット。
○:エラーが少なく扱いやすい。
✕:圧縮が弱くファイルサイズが大きい。色深度で16bit以上が扱えない。
評:まれではあるがpngやtiffでエラーが出るケースではtgaを使うといい。安定感がある。
exr
HDR用フォーマット。圧縮効率がよく16bit以上扱うならこれ。現状だとゲーム用は8bitで間に合うのでIBL用(背景画像)のHDR画像ぐらいしか使わない(はず)。スカイリムでは使わない。映像業界でよく使われる(はず)。
結論
扱っていて速度が気にならなければpng、速度が気になる場合はtiff(圧縮形式はLZW)、エラーが出る場合はtgaでいいと思います。
Blenderの連番書き出しのpng(圧縮15%)とtiff(圧縮LZW)で試したところ、tiffのほうが100フレームあたり2~3秒早く、ファイルサイズ1.2~1.3倍重くなった。