NoImage

この記事は半年以上前の情報なので、古い可能性があります

Papervision3Dやってみる(4) 【マテリアル】

2008年01月29日  投稿者:ハセガワ
Flashで驚異の3Dムービーを作れるPapervision3Dでマテリアルのお勉強
ブックマークする:

FlashPlayerをインストールするか、JavaScriptをONにしてください。
■筆者の理解LV

・ドラクエで言うとホイミを微妙に覚えた程度。
・Papervision3D 2.0(GreatWhite) です。

▼マテリアル(material)とは?

マテリアルとは、オブジェクト(球とか円柱とか自作のポリゴンモデルとか)の表面に設定する属性(材質・色・光の反射具合や屈折率など)のこと。Lightwave3Dで言うところのサーフェス。
今回は、作ったモデルに色を付けたり画像を貼ったりしてみます。

▼materialクラスの種類

org.paprevision3d.materials
 │
 ├─ // v1.0まで
 │
 ├─ BitmapAssetMaterial…ライブラリ内の画像からテクスチャを作るクラス
 ├─ BitmapFileMaterial…外部ファイル(jpg,gif,PNG)からテクスチャを作るクラス
 ├─ BitmapMaterial…BitmapDataからテクスチャを作るクラス
 │
 ├─ ColorMaterial…ベタ塗りのマテリアルを作るクラス
 ├─ MaterialsList…複数のマテリアルからなるリスト
 ├─ MovieAssetMaterial…ライブラリのMovieClipからテクスチャを作るクラス
 ├─ MovieMaterial…MovieClipインスタンスからテクスチャを作るクラス
 ├─ WireframeMaterial…ワイヤーフレーム(枠線)のみのテクスチャを作るクラス
 │
 ├─ // v1.5~2.0(greatWhite)で追加?
 │
 ├─ BitmapColorMaterial…べた塗りをビットマップに貼り付け?
 ├─ BitmapViewportMaterial…2.0で追加。ビューポートをビットマップにして生成するクラス
 ├─ BitmapWireframeMaterial…ワイヤフレームをビットマップに貼り付け?
 └─ VideoStreamMaterial…ビデオをテクスチャとして貼り付け

オブジェクトをベタ塗りしてみる
  • Plane,Cone,Cylinder,sphereの場合→ColorMaterialで定義
  • Cubeの場合→MaterialsListで6面分の定義リストを作ってそれを適用

※Cubeの場合だけ扱いが違ったので、ハマった。

ColorMaterialコンストラクタ

ColorMaterial( color:Number=0xFF00FF, alpha:Number = 1, interactive:Boolean = false )
第1引数【color】:ベタ塗りする色をカラーコードで指定。
第2引数【alpha】:0~1で不透明度を指定(AS3では0~100じゃなくて0~1なんだよね。。)

記述例:

var material : ColorMaterial = new ColorMaterial( 0xffcc00 );//黄色でべた塗り
material.oneSide = false;//ポリゴンの片面だけを塗るかどうか。planeはこれをfalseにしないと裏側が見えない

Cubeの場合にはMaterialsListを使って指定

var material:ColorMaterial =new ColorMaterial( 0xff0000 );
var mList:MaterialsList = new MaterialsList(
{
   all: material, // デフォルト(6面全部)に貼るマテリアル
   front:material  ,【省略可】Cubeの前面に貼るマテリアルを指定
   back:material  ,【省略可】Cubeの背面に貼るマテリアルを指定
   right:material  ,【省略可】Cubeの右側面に貼るマテリアルを指定
   left:material    ,【省略可】Cubeの左側面に貼るマテリアルを指定
   top:material    ,【省略可】Cubeの上面に貼るマテリアルを指定
   bottom: material,【省略可】Cubeの底面に貼るマテリアルを指定
} );
myCube= new Cube( mList , 100, 100, 100,1,1,1);//Cube作成
オブジェクトに外部画像テクスチャを貼り付けてみる
  • サンプルテクスチャ適当なBitmap画像を用意する(←は100×100pxのグラデ画像「bg.png」)
  • BitmapFileMaterialでマテリアルを定義
  • オブジェクトに貼り付け
var material : BitmapFileMaterial = new BitmapFileMaterial( "bg.png" );
var mList : MaterialsList = new MaterialsList( {all : material2 } );
myCube= new Cube( mList , 100, 100, 100,1,1,1);

サンプルソース 

僕が買った、もしくは買う予定の参考書
参考書は指定されていません
ブックマークする
FlaTech+を購読する
  • 全記事を含むRSSfeed
  • このページをブックマーク: