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);
→サンプルソース
僕が買った、もしくは買う予定の参考書
参考書は指定されていません
ブックマークする