SirdsAS3ライブラリ

  • グレースケール画像を深度マップとして、立体視可能なステレオグラムを生成します
  • このライブラリは平行法用のステレオグラムを生成します
  • ランダムドットステレオグラム(RDS)だけでなく、テクスチャをパターンとするシングルイメージステレオグラム(SIS)も作成できます
  • 最適化を施してありますので、比較的高速に動作します
    • ちなみに700x500のステレオグラムであれば、1枚当たり1秒程度で生成が可能です
    • 上記の「Spark」では約1.2sec, 「金魚」では約0.4secのスループットを達成しています@MacBookPro(OS X)
    • もちろん実際にはパラメータ設定・画像の複雑さ・PC性能等に依存します
  • 裸眼立体視のしかたは裸眼立体視トレーニングルームをご参考ください

使い方(RDSの場合)

  1. RDSImageCreatorクラスをインスタンス化します(その際はキャンバスサイズを必ず指定)
  2. グレースケール画像(現画像)を何らかの手段を用いて準備し、BitmapDataに変換します
  3. RDSImageCreatorインスタンスのcreate関数へ準備したBitmapDataを渡します
  4. するとRDSImage(Spriteの派生クラス)インスタンスがリターンされますので、それを表示するオブジェクトへaddChild
  5. 変換された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);
 

ソースコード

ロードマップ

  • 生成の非同期処理化

ライセンス

  • MITライセンスを採用いたします

添付ファイル