[Papervision3D]3Dオブジェクトにalphaプロパティを追加

Papervision3Dで
3Dオブジェクトにalphaプロパティが無くて「透明→不透明」の演出が出来ない。
「MovieMaterial」は処理が重いのでNG
そこでPapervision3Dを少しいじってみました。いまのところ「BitmapMaterial」かつ「Plane」の
3Dオブジェクトだけつくりました。
下記のコードを追加すれば「alpha」プロパティが追加されて
不透明度を操作することが出来ます。しかも軽い
ただ、BitmapDataのクローンを作成するので少しリソース食います
でかい画像をテクスチャにするときは使えない。

ファイル名:Plane.as

public var cmf=new ColorMatrixFilter([1,0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]);
private var _alpha:Number=1;
public function reset_alpha(){
	cmf=new ColorMatrixFilter([1,0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _alpha, 0]);
	this.material.texture.applyFilter(this.material.bmpd, this.material.bmpd.rect, new Point(0, 0), cmf);
}
public function set alpha(v:Number):void{
	if(!this.visible)return;
	_alpha=((v<0)?0:v);
	cmf=new ColorMatrixFilter([1,0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _alpha, 0]);
	this.material.texture.applyFilter(this.material.bmpd, this.material.bmpd.rect, new Point(0, 0), cmf);
}
public function get alpha(){
	return _alpha;
}
public function dipose_bmpd(){
	this.material.bmpd.dispose();
}

ファイル名:BitmapMaterial.as

変数を宣言
public var bmpd:BitmapData;

コンストラクタの該当部分を下記のようにする
if( asset ){
	texture = asset;
	this.bmpd=asset.clone();
}