ここまで解説したJavaScriptコードをまとめれば,
View.
コード1 3次元空間に球体をひとつ置く
var view;
var sphere;
function initialize() {
var directionalLight = createDirectionalLight(0.25, 0x00FFFF);
view = createView(240, 180, 0x0);
sphere = createSphere(300, 32, 24, directionalLight);
view.scene.addChild(sphere);
view.render();
view.render();
}
function createView(width, height, backgroundColor) {
var defaultRenderer = new away.render.DefaultRenderer();
var view = new away.containers.View(defaultRenderer);
view.width = width;
view.height = height;
view.backgroundColor = backgroundColor;
return view;
}
function createSphere(radius, segmentsH, segmentsV, light) {
var defaultTexture = away.materials.DefaultMaterialManager.getDefaultTexture();
var material = new away.materials.TriangleMethodMaterial(defaultTexture);
var sphere = new away.prefabs.PrimitiveSpherePrefab(radius, segmentsH, segmentsV)
.getNewObject();
sphere.material = material;
material.lightPicker = new away.materials.StaticLightPicker([light]);
return sphere;
}
function createDirectionalLight(ambient, color) {
var light = new away.entities.DirectionalLight();
light.ambient = ambient;
light.color = color;
return light;
}
サンプル2 Away3D 14/
- ※2
- 仕様としてわかりにくいし,
そう決める理由も考えづらい。だが, これまでのところ修正はされておらず, 「Away3D Forum」 に報告しても回答が得られなかった (「A static object of Away3D TypeScript is not displayed」)。もっとも, 多くのサンプルコードはアニメーションなので, 再描画が繰返されるため, 気にせずに済まされているようだ。 - ※3
- Away3D TypeScriptのライブラリは,
今のところCDNでは配信されていない。そのため, jsdo. itによりJSファイルをアップロードしてscript要素に読込みんでいる (前掲サンプル2の[HTML]の欄参照)。また, body要素に属性が加えられないので, 初期設定の関数 (initialize()) はJavaScriptコードの最後に呼び出した。
球体以外の基本的なかたちをつくる
Away3Dでは球体以外にも,
表3 平面・
ひながたをつくるコンストラクタ | 引数の値 |
---|---|
PrimitivePlanePrefab | 平面のひながたをつくる。 幅 ー 平面のx軸方向の長さ。デフォルト値は100。 高さ ー 平面のz軸方向の奥行き。デフォルト値は100。 |
PrimitiveCubePrefab | 直方体のひながたをつくる。 幅 ー 直方体のx軸方向の長さ。デフォルト値は100。 高さ ー 直方体のy軸方向の長さ。デフォルト値は100。 奥行き ー 直方体のz軸方向の長さ。デフォルト値は100。 |
PrimitiveTorusPrefab | ドーナッツ型のひながたをつくる。 半径 ー ドーナッツ型の大きさを示す半径。デフォルト値は50。 太さの半径 ー ドーナッツ型の太さを示す半径。デフォルト値は50。 水平分割数 ー 曲面の水平方向の分割数。デフォルト値は16。 垂直分割数 ー 曲面の垂直方向の分割数。デフォルト値は8。 |
ひとつ練習として,
var torus = createTorus(300, 32, 24, directionalLight);
view.scene.addChild(torus);
前述のとおり,
function createTorus(radius, segmentsH, segmentsV, light) {
var defaultTexture = away.materials.DefaultMaterialManager.getDefaultTexture();
var material = new away.materials.TriangleMethodMaterial(defaultTexture);
// var sphere = new away.prefabs.PrimitiveSpherePrefab(radius, segmentsH, segmentsV).getNewObject();
var torus = new away.prefabs.PrimitiveTorusPrefab(radius, radius / 3, segmentsH, segmentsV)
.getNewObject();
torus.material = material;
torus.rotationX = -30;
material.lightPicker = new away.materials.StaticLightPicker([light]);
return torus;
}
さて次回は,