BitmapData#threshold 高速化
前回は BitmapData#peletteMap の高速化を見ましたが、今回は BitmapData#threshold の高速化についてです。
この検証については「入力元と出力先が異なる」という条件を設定しています。
条件部分を抜き出すと以下のような感じ。
var target:BitmapData = new BitmapData(source.width, source.height, transparent, color); target.threshold(source, rect, ZERO_POINT, ">=", _threshold << 8, 0xffffffff, 0x0000ff00, false);
結果は以下のとおり。
- source の transparent は false よりも true の方が速い
- source の transparent が同じなら、target の transparent には、あまり大きく左右されない
BitmapData#paletteMap 高速化
先日、ある縁から、以前 ActionScript 3.0 で作った画像処理フィルターのいくつかを見直すことになりました。
処理速度のチューンアップが命題になりまして、いろいろ試してみたところ、高速化を図れる要素がいくつか見つかりました。
しかし時は流れて、世は Stage3D 時代。そのフレームワークである Starling がもて囃されているらしい今日この頃。
今さら flash.display.BitmapData の高速化に如何ほどの需要があるのかはなはだ疑問ではありますが、というか ActionScript 自体の寿命すら危ぶまれてる気がしないでもないですが、せっかく知見を得たのでエントリーしようかと。
検証したのは BitmapData#peletteMap と BitmapData#threshold のふたつのメソッド。
今回は paletteMap の高速化についてです。
なお、コード開発環境は FlashDevelop 4.4.3 RTM。
過去のバージョン全削除。クリーン・インストールで、AS コンパイラや Flash プレイヤーも同時にインストールし直しました。
反応拡散系(7)
Gray-Scott モデルの方程式による反応拡散系について、基礎研究的なコードを組んできましたが、それらを踏まえてメディアアート的なものも作ってみたいと思います。
まずは、ユーザのマウス操作に対してインタラクティブな挙動をするものを組んでみました。
マウスドラックした部分とそうでない部分とで見栄えが変わります。↓
Gray-Scott モデルの反応拡散方程式 4 – wonderfl build flash online
マンデルの涙
「数理科学美術館」という本で見て以来、いつかプログラムを組んでみたいものと思っていたのが、今回取り上げるフラクタルです。
「マンデルの涙」という名称は、その「数理科学美術館」に出ていたものですが、いろいろググってみたところ、英語でも Mandeldrop と呼ばれているようです。どんな形状のフラクタルかというとコレ↓
マンデルの涙 – wonderfl build flash online
Nova Fractal(2) ~Julia Type~
前回、いまいち得体の知れない Nova Fractal というものについて見てみました。
その漸化式は Newton Fractal の漸化式を基にしながら、z の初期値が複素座標値という変動値ではなく、1 + 0i という固定値を使う、マンデルブロ集合と同様な累積計算をおこなうものでした。
では本来の Newton Fractal 同様 z の初期値を複素座標値にし、また、c の値をジュリア集合同様ユーザによる恣意的な変動値として累積計算した場合、どのような形状を描くのか、というのが冒頭のものです。
本来なら複素数 c についてもスライダーで任意の値に変えられるようにするべきなんですが、スライダーは複素数 R で使っており、改造がけっこうたいへんになるので、ボタンでプリセット値を変更するだけにしました(手抜き)。