SirdsAS3ライブラリ
- グレースケール画像を深度マップとして、立体視可能なステレオグラムを生成します
- このライブラリは平行法用のステレオグラムを生成します
- ランダムドットステレオグラム(RDS)だけでなく、テクスチャをパターンとするシングルイメージステレオグラム(SIS)も作成できます
- 最適化を施してありますので、比較的高速に動作します
- ちなみに700x500のステレオグラムであれば、1枚当たり1秒程度で生成が可能です
- 上記の「Spark」では約1.2sec, 「金魚」では約0.4secのスループットを達成しています@MacBookPro(OS X)
- もちろん実際にはパラメータ設定・画像の複雑さ・PC性能等に依存します
- 裸眼立体視のしかたは裸眼立体視トレーニングルームをご参考ください
使い方(RDSの場合)
- RDSImageCreatorクラスをインスタンス化します(その際はキャンバスサイズを必ず指定)
- グレースケール画像(現画像)を何らかの手段を用いて準備し、BitmapDataに変換します
- RDSImageCreatorインスタンスのcreate関数へ準備したBitmapDataを渡します
- するとRDSImage(Spriteの派生クラス)インスタンスがリターンされますので、それを表示するオブジェクトへaddChild
- 変換されたRDS画像を表示することができます
- RDSColorImageCreatorを使うと、カラーのRDSを出力できます
使用例(RDSの場合)
//RDSImageCreatorをインスタンス化
var rdsCreator:RDSImageCreator = new RDSImageCreator(
700 /* RDSキャンバスの幅 */ ,
500 /* RDSキャンバスの高さ */ ,
100 /* 繰り返しパターンの基本幅<任意; =100> */ ,
20 /* 最大の高さ(最小の上昇幅単位)<任意; =20> */ ,
1 /* RDSの点密度:0〜1<任意; =1> */
);
//グレースケール画像を準備
var shape:Sprite = new Sprite();
shape.graphics.beginFill(0x000000);
shape.graphics.drawRect(0, 0, 700, 500);
shape.graphics.beginFill(0x666666);
shape.graphics.drawCircle(400, 265, 175);
shape.graphics.endFill();
//グレースケール画像をBitmapDataへ変換
var bitmapData:BitmapData = new BitmapData(shape.width, shape.height);
bitmapData.draw(shape);
//ランダムドットステレオグラムの画像を生成
var rdsImage:RDSImage = rdsCreator.create(bitmapData);
//補助点位置、補助点表示、グレースケール画像のオーバレイ透明度を指定可能
rdsImage.supportDotPosition = RDSSupportDotPosition.TOP;
rdsImage.supportDotVisible = true;
//rdsImage.shapeAlpha = .5;
//表示させるオブジェクトにaddChildすることで表示できる(RDSImageはSpriteの派生クラスなので)
this.addChild(rdsImage);
ソースコード
ロードマップ
ライセンス