Scene を作成して、 PerspectiveCamera や3D物体を追加していく。 3D Object は Geometry と Material から Mesh として生成する。 Scene データから2次元画像をレンダリングするのが WebGLRenderer である。 座標軸を表示した方がわかりやすいので、下の例では AxesHelper もSceneに追加している。軸を見るとわかるように、右手座標系(x軸:赤, y軸:緑, z軸:青)が表示される。 下の例では、ワイヤーフレームの場合のMaterial は MeshBasicMaterial({color: 色, wireframe:true}) で、面を塗る場合は MeshLambertMaterial({color: 色}) を利用している。
chapter-01/02-first-scene.html (p.14-15) text, run
光源として SpotLight を使ってみる。SpotLightがどの向きを照らすかは .target で指定する(この例では指定していない)。
chapter-01/03-materials-light.html (p.19) text, run, diff
アニメーションにするには、 requestAnimatiornFrame(関数名) を利用する。これは普通のjavascriptに用意されている関数である。 下の例では次のようにして利用している。
function renderScene() { ... requestAnimationFrame(renderScene); renderer.render(scene, camera); }
アニメーションの状態(FPS)を表示するために mrdoob が開発した Stats を利用している(../libs/ の下にある)。
chapter-01/04-materials-light-animation.html (p.22) text, run, diff
プログラム中のパラメータを直感的なGUIで操作するために dat.gui を使っている(../libs/ の下にある)。
chapter-01/05-control-gui.html (p.27) text, run, diff
ブラウザのウィンドウサイズが変更されると'resize'イベントが発生する。 そのときに起動する関数を以下のように設定している。
window.addEventListener('resize', onResize, false)
chapter-01/06-screen-size-change.html (p.27) text, run, diff
作成したプログラムが正しく動作することを確認したら、それぞれの 提出先に提出しなさい。 提出した後は、正しく提出されていることを http://ynitta.com/class/cg2/local/handin/ で必ず確認しておいて下さい。 提出〆切は次回の講義の開始時刻です。
提出ファイル | なし |
---|---|
コメント欄: | なし |
提出先: | なし |
手元に Three.js のプログラムが開発できる環境を整えなさい。 手元のWWW サーバ上で教科書の第1章のサンプルコードをすべて動かして、内容を理解しなさい。 コードを部分的に変更してみて、動作の違いを比べると理解が深まります。
提出ファイル | kadai1b.html |
---|---|
コメント欄: | どのようなシーンであるか説明を書きなさい。 |
提出先: | 「宿題提出Web:コンピュータ・グラフィックスb:課題1b」 http://ynitta.com/class/cg2/local/handin/up.php?id=kadai1b |
chapter-01/06-screen-size-change.html を変更して Sphereが独自な動きをするように変更した オリジナルなシーンファイルを作成しなさい。 教科書やサンプルと似た動きはオリジナルではなく、提出条件を満さないので注意すること。
サンプルコードのフォルダを learning-threejs-master とします。 その中に kadai というフォルダを作成しなさい。 learning-threejs-master/chapter-01/06-screen-size-change.html をコピーして learning-threejs-master/kadai/kadai1b.html というファイルを作成しなさい。 その上で kadai1b.html のコードを大幅に変更して、課題の提出条件を満たすように変更しなさい。
06-screen-size-change.html を変更して kadai1b.html を作成する。 |
|