プロジェクトIB/IIB (2019 Fall)
目的
この実習では、Java3Dを用いたコンピュータグラフィックスのプログラミングを通して、Java言語におけるAPIの使い方を学ぶことを目的とします。また、クラスやメソッドを用いて、よりよいプログラムを書けるようになることを目指します。
参考資料
Java3Dチュートリアルを参考にしてください。サンプルコードとして、j3d-samples-alt.zipを用意しました (動かなかった人はこちら)
(Eclipseのプロジェクトのファイルはこちらです)
また、第3週にJava3Dプログラムのリファクタリングを参考にします。
進め方
次のような順に実習を行います。
第1週:Java3Dの基礎を学ぶ
サンプルプログラムを見ながら課題を行います。また、第2週で作成するオブジェクトについて計画を立てておいてください。
- 赤い直方体を描くプログラムを作成してください (
PrimitiveTest.java
を書き換えるとよいです)。 - 赤い球を描くプログラムを作成してください(
PrimitiveTest.java
を書き換えるとよいです)。 - 好きな色の円柱を描くプログラムを作成してください(
PrimitiveTest.java
を書き換えるとよいです)。 - 好きな色の円柱を描き、中心からy方向に0.5平行移動させてください(
TransformTest.java
を書き換えるとよいです)。 - 好きな色の円柱を描き、チュートリアルの6.3節のコードを適用して変形してください(
TransformTest1.java
を書き換えるとよいです)。 - いくつかのプリミティブを組み合わせて、IKEAのホームページにあるフロアランプを作ってみてください。たぶん、上の方の傘は半透明になっています。また、色あいは適宜工夫してください。
第2週:個人でオブジェクトを作成する
個人ごとに好きなオブジェクトを作成します。第3週で発表するのに十分だと思うまでやってください。終了にあたって、特に教員の確認は必要ありません。
第3週:個人で作成したオブジェクトを発表する
個人で作成したオブジェクトを前方のスクリーンに表示させプレゼンテーションを行っていただきます。次の内容を含むようにしてください。
- 作品のタイトル
- どのようなプリミティブを組み合わせて作成しているか
- 工夫したところ
また、上記の内容をまとめたレポートを作成します。
第4週:グループごとに作成するシーンの計画を立てる
グループに分かれてもらい、複数のオブジェクトからなるシーンを作成するにあたり、その計画を立てます。計画には次の内容を含むようにしてください。
- 完成予定のイメージ図
- シーンを構成するオブジェクトの種類と数
- 必要となるプリミティブの数の概算
- 実装にあたっての役割分担
終了にあたっては教員の確認をとってください。
第5週:グループでシーンを実装する (1)
グループごとにシーンを実装します。
光が当たらなくなってしまうところができる現象の解決には、
directionalLight.setInfluencingBounds(new BoundingSphere());
を
directionalLight.setInfluencingBounds(new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
と置き換えてください。
第6週:グループでシーンを実装する (2)
グループごとにシーンを実装します。
第7週:グループで作成したシーンを発表する
グループで作成したシーンを前方のスクリーンに表示させプレゼンテーションを行っていただきます。次の内容を含むようにしてください。
- 作品のタイトル
- どのようなオブジェクトを組み合わせて作成しているか
- 役割分担
- 工夫したところ
また、上記の内容をまとめたレポートを作成します。
評価
出席および演習中の取り組みを50%、プレゼンテーションおよびレポートの内容を50%で評価します。