Flash ランタイムのバージョン 20 が公開されました。公開されたバージョンは以下の通りです。
- Flash Player (Firefox, Safari) : 20.0.0.235
- Flash Player (その他のブラウザー) : 20.0.0.238
- Flash Player (Linux Firefox) : 11.2.202.554
- Flash Player (拡張サポート) : 18.0.0.268
- AIR SDK & ランタイム : 20.0.0.22
新しい SWF のバージョンは 31 です。AIR の新機能を利用するには名前空間に 20.0 以上を指定します。
Flash ランタイムに関する Facebook とのパートナーシップに関する発表もありました。
新機能は、先日のベータ版情報でお伝えしたものに加え、Stage3D 関連でひとつ追加がありました。同じデータのオブジェクトを複数個描画するときに、個別に drawTriangles () を呼ぶ代わりにまとめて描画できる機能です。パフォーマンスのチューニングに役立ちそうです。
この機能は Standard Extended プロファイルをサポートするモバイルデバイスのみで利用できます。
新機能サポートのために新しいレジスタが追加されて、AGAL 3 がアップデートされました。新しいアセンブラは GitHub (adobe-flash/graphicscorelib) からダウンロードできます。
Stage3D の 「インスタンス」 描画機能
追加された Stage3D の描画機能は、一度の描画呼び出しで複数のインスタンスをまとめて描画するというものです。例えば、木をたくさん並べて森を描く場合に、ひとつの木のデータから、場所や大きさの違う複数の 「インスタンス」 を一気に描画できます。
描画するインスタンスの情報を扱うため、Context3D クラスに 2 つメソッドが追加されました。
createVertexBufferForInstances(numElements:int, data32PerElement:int, instancesPerElmt:int, bufUsage:String="staticDraw"):VertexBuffer3D drawTrianglesInstanced(indexBuffer:IndexBuffer3D, numInstances, firstIndex:int=0, numTriangles:int=-1 ):void
最初のメソッド createVertexBufferForInstances() は VertexBuffer3D オブジェクトを生成します。このバッファはインスタンス情報専用のバッファです。
3 番目の引数に、バッファ内の各要素を使用するインスタンスの数を指定できます。例えば、色情報のバッファの各要素は 3 つのインスタンスごとに使用、位置情報のバッファは要素をそれぞれのインスタンスに指定、のように使えます。
もうひとつのメソッド drawTrianglesInstanced() は、2 番目の引数に指定された数だけインスタンスを描画します。clear() や present() が必要な点は通常の drawTriangles() と同じです。
renderContext.clear(0.3, 0.2, 1, 1); ... renderContext.drawTrianglesInstanced(indexBuffer,4); renderContext.present();
コメントする