Class enchant.gl.Mesh
- Defined in: gl.enchant.js
Constructor Attributes | Constructor Name and Description |
---|---|
頂点配列やテクスチャを格納するクラス.
|
Field Attributes | Field Name and Description |
---|---|
Meshの頂点色配列.
|
|
Meshの頂点インデックス配列.
|
|
Meshの頂点法線ベクトル配列.
|
|
Meshのテクスチャマッピング配列.
|
|
Meshの頂点配列.
|
Method Summary
Method Attributes | Method Name and Description |
---|---|
destroy()
オブジェクトを破棄する.
|
|
reverse()
メッシュの面の向きと法線の向きを反転させる.
|
|
setBaseColor(color)
Meshの色を変更する.
|
Class Detail
enchant.gl.Mesh()
頂点配列やテクスチャを格納するクラス.
enchant.gl.Sprite3Dのプロパティとして使用される.
Field Detail
{Number[]}
colors
Meshの頂点色配列.
4つの要素を一組として頂点色を指定する. 全体の要素数は, 頂点の個数nに対して4nとなる.
4n, 4n+1, 4n+2, 4n+3番目の要素はそれぞれ, n番目の頂点の色のr, g, b, a成分である.
頂点色はMeshのtextureにテクスチャが割り当てられていない場合の描画に使用される.
enchant.gl.Mesh#setBaseColorで一括して変更することができる.
var sprite = new Sprite3D(); //頂点配列を代入 //データはx, y, z, x, y, z...の順に格納する sprite.mesh.vertices = [ 0.0, 0.0, 0.0, //0番目の頂点(0.0, 0.0, 0.0) 1.0, 0.0, 0.0, //1番目の頂点(1.0, 0.0, 0.0) 1.0, 1.0, 0.0, //2番目の頂点(1.0, 1.0, 0.0) 0.0, 1.0, 0.0 //3番目の頂点(0.0, 1.0, 0.0) ]; //頂点色配列を代入 //データはr, g, b, ,a, r, g, b, a...の順に格納する sprite.mesh.normals = [ 0.0, 0.0, 1.0, 1.0, //0番目の頂点の色(0.0, 0.0, 1.0, 1.0) 0.0, 1.0, 0.0, 1.0, //1番目の頂点の色(0.0, 1.0, 0.0, 1.0) 0.0, 1.0, 1.0, 1.0, //2番目の頂点の色(0.0, 1.0, 1.0, 1.0) 1.0, 0.0, 0.0, 1.0 //3番目の頂点の色(1.0, 0.0, 0.0, 1.0) ];
{Integer[]}
indices
Meshの頂点インデックス配列.
3つの要素を一組として三角形を指定する.全体の要素数は, 三角形の個数nに対して3nとなる.
インデックスの値は, enchant.gl.Mesh#verticesで指定した頂点の番号である.
var sprite = new Sprite3D(); //頂点配列を代入 //データはx, y, z, x, y, z...の順に格納する sprite.vertices = [ 0.0, 0.0, 0.0, //0番目の頂点(0.0, 0.0, 0.0) 1.0, 0.0, 0.0, //1番目の頂点(1.0, 0.0, 0.0) 1.0, 1.0, 0.0, //2番目の頂点(1.0, 1.0, 0.0) 0.0, 1.0, 0.0 //3番目の頂点(0.0, 1.0, 0.0) ]; //頂点インデックスを代入 //3要素一組として, 三角形を描画する //この例では(0,0,0), (1,0,0), (1,1,0)の三角形と //(1,1,0), (0,1,0), (0,0,0)の三角形の計二つを描画する sprite.indices = [ 0, 1, 2, 2, 3, 0 ]; var scene = new Scene3D(); scene.addChild(sprite);
{Number[]}
normals
Meshの頂点法線ベクトル配列.
3つの要素を一組として法線ベクトルを指定する. 全体の要素数は, 法線ベクトルの個数nに対して3nとなる.
3n, 3n+1, 3n+2番目の要素はそれぞれ, n番目の頂点の法線ベクトルのx, y, z成分である.
法線ベクトルはライティングの影の計算に利用される.
var sprite = new Sprite3D(); //頂点配列を代入 //データはx, y, z, x, y, z...の順に格納する sprite.mesh.vertices = [ 0.0, 0.0, 0.0, //0番目の頂点(0.0, 0.0, 0.0) 1.0, 0.0, 0.0, //1番目の頂点(1.0, 0.0, 0.0) 1.0, 1.0, 0.0, //2番目の頂点(1.0, 1.0, 0.0) 0.0, 1.0, 0.0 //3番目の頂点(0.0, 1.0, 0.0) ]; //法線ベクトル配列を代入 //データはx, y, z, x, y, z...の順に格納する sprite.normals = [ 0.0, 0.0, 0.0, //0番目の頂点の法線ベクトル(0.0, 0.0, 0.0) 1.0, 0.0, 0.0, //1番目の頂点の法線ベクトル(1.0, 0.0, 0.0) 1.0, 1.0, 0.0, //2番目の頂点の法線ベクトル(1.0, 1.0, 0.0) 0.0, 1.0, 0.0 //3番目の頂点の法線ベクトル(0.0, 1.0, 0.0) ];
{Number[]}
texCoords
Meshのテクスチャマッピング配列.
2つの要素を一組としてuv座標を指定する. 全体の要素数は, 頂点の個数nに対して2nとなる.
2n, 2n+1番目の要素はそれぞれ, n番目の頂点のテクスチャのu, v座標である.
それぞれの座標のとりうる値は0<=u,v<=1である.
var sprite = new Sprite3D(); var texture = new Texture(); texture.src = "texture.png"; sprite.mesh.texture = texture; //頂点配列を代入 //データはx, y, z, x, y, z...の順に格納する sprite.mesh.vertices = [ 0.0, 0.0, 0.0, //0番目の頂点(0.0, 0.0, 0.0) 1.0, 0.0, 0.0, //1番目の頂点(1.0, 0.0, 0.0) 1.0, 1.0, 0.0, //2番目の頂点(1.0, 1.0, 0.0) 0.0, 1.0, 0.0 //3番目の頂点(0.0, 1.0, 0.0) ]; //uv座標配列を代入 //データはu, v, u, v...の順に格納する sprite.mesh.texCoords = [ 0.0, 0.0, //0番目の頂点のuv座標(0.0, 0.0) 1.0, 0.0, //1番目の頂点のuv座標(1.0, 0.0) 1.0, 1.0, //2番目の頂点のuv座標(1.0, 1.0) 0.0, 1.0 //3番目の頂点のuv座標(0.0, 1.0) ];
- See:
- enchant.gl.Mesh#vertices
- enchant.gl.Mesh#indices
- enchant.gl.Mesh#normals
- enchant.gl.Mesh#texture#
{Number[]}
vertices
Meshの頂点配列.
3つの要素を一組として頂点を指定する. 全体の要素数は, 頂点の個数nに対して3nとなる.
3n, 3n+1, 3n+2番目の要素はそれぞれ, n番目の頂点のx, y, z座標である.
var sprite = new Sprite3D(); //頂点配列を代入 //データはx, y, z, x, y, z...の順に格納する sprite.mesh.vertices = [ 0.0, 0.0, 0.0, //0番目の頂点(0.0, 0.0, 0.0) 1.0, 0.0, 0.0, //1番目の頂点(1.0, 0.0, 0.0) 1.0, 1.0, 0.0, //2番目の頂点(1.0, 1.0, 0.0) 0.0, 1.0, 0.0 //3番目の頂点(0.0, 1.0, 0.0) ];
Method Detail
-
destroy()オブジェクトを破棄する.
-
reverse()メッシュの面の向きと法線の向きを反転させる.
-
setBaseColor(color)Meshの色を変更する. Mesh.colorsを指定した色の頂点配列にする.
var sprite = new Sprite3D(); //紫色に設定. どれも同じ結果が得られる. sprite.mesh.setBaseColor([1.0, 0.0, 1.0, 0.0]); sprite.mesh.setBaseColor('#ff00ff'); sprite.mesh.setBaseColor('rgb(255, 0, 255'); sprite.mesh.setBaseColor('rgba(255, 0, 255, 1.0');
- Parameters:
- {Number[]|String} color
- z z軸方向の平行移動量