ATF SDK の公開

ATF (Adobe Texture Format) は GPU で利用するテクスチャのコンテナとして使われるフォーマットです。Stage3D にも ATF を GPU にアップロードする API が提供されています。

ところが、これまで ATF を生成するツールは提供されていませんでした。ということで、こちら (なぜか dropbox) にようやく待望の ATF SDK が公開です。

ダウンロードすると、ZIP ファイル内には、

  1. Mac、Windows、Linux 用のツール
  2. ATF のスペック (PDF : 英語)
  3. ユーザーガイド (PDF : 英語)

が含まれています。

ATF を使った開発を行うには以下の環境が必要です。

その際、パブリッシュのターゲットは、Flash Player 11.4 / AIR 3.4 以降に設定します。また、コンパイル時には -swf-version=17 を指定します。

ATF の利点

Stage3D を始め、GPU 描画でテクスチャを扱う際は、まず GPU にテクスチャをアップロードします。その際、圧縮されたテクスチャをアップロードするのが望ましいとされています。

その理由としては、

  • テクスチャの保持に必要なメモリ料が少ない
  • テクスチャのアップロードが短時間で済む
  • 描画が早くなる

といったものがあるようです。

ここで扱う圧縮フォーマットは JPEG の様な一般的なものではなく、GPU がその機能の一部としてサポートする圧縮フォーマットです。そのため GPU の種類により対応するフォーマットが異なります。

以下のように、いずれも通常はあまり耳にしない名前です。

  • iOS
    ImgTech : PVRTC
  • Android
    Mali : ETC1
    NVidia : ETC1 / DXT1 / DXT5
    PowerVR : ETC1 / PVRTC
    Qualcom : ETC1
  • MacOS : DXT1 / DXT5
  • Windows : DXT1 / DXT5

このリストを見ると、デスクトップ以外の環境をターゲットに含む場合は、複数のテクスチャを使い分ける必要がありそうなことが分かります。

例えば iOS と Andoroid で動作させたければ、PVRTC と ETC1 のデータを用意します。加えて、実行時に、動作環境を特定してアップロードするデータを選択するという処理も必要です。

こんな面倒な手間はできればかけたくないですよね、というところで ATF の出番です。

ATF は、複数のフォーマットを内部に保持することができるようになっています。そして、Flash Player や AIR には、ATF ファイルから実行環境に最適なテクスチャを取り出す機能があります。

そのため、GPU 機能の詳細を意識すること無く、プログラムを記述することができます。

例えば、Starling であれば以下の様な感じです。

[Embed(source="myTexture.atf", mimeType="application/octet-stream")]
public static const CompressedData:Class;
 
var data:ByteArray = new CompressedData();
var texture:Texture = Texture.fromAtfData(data);
var image:Image = new Image(texture);
addChild(image);

これなら圧縮フォーマットの利用も簡単そうです。

ATF SDK の使い方

ATF SDK には、画像を ATF ファイルに変換するツールがいくつか含まれています。

元のファイルのフォーマットによって使うツールが異なります。例えば、PNG ファイルを ATF ファイルに変換する場合は png2atf を使用します。

指定する引数は、圧縮することを指示する -c と、入力ファイルを指定する -i と、出力ファイルを指定する -o で通常は十分かと思います。例えば、

./png2atf -c -i myTexture.png -o myTexture.atf

の様に実行します。

これにより生成される ATF ファイルには、iOS、Android、デスクトップ用の 3 種類が含まれています。例えば、とりあえず iOS 用に PVRTC だけあれば良いという場合には -c の後に p を指定して、ファイルサイズを押さえることもできます。

./png2atf -c p -i myTexture.png -o myTexture_pvrtc.atf

引数 -c を指定しないと、非圧縮の RGBA データが ATF 内にパッケージされます。圧縮による画像データの質の低下が気になる場合には使えるかもしれません。

Flash Player 11.3 / AIR 3.3 から導入された、テクスチャストリーミングに使う ATF ファイルを生成することもできます。

png2atf -m -n 0,0 -c -i myTexture.png -o myTexture_high.atf
png2atf -m -n 1,2 -c -i myTexture.png -o myTexture_med.atf
png2atf -m -n 3,10 -c -i myTexture.png -o myTexture_low.atf

生成された ATF ファイルの内容を確認できるように、ATFView というツールも提供されています。

その他にも便利なツールがいくつか提供されています。詳しい使い方は、ドキュメントをご覧下さい。

 

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/370

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261