CDR6275

Michio SHIRAISHI Official Site

プロジェクトIB/IIB (2018 Fall)

目的

この実習では、Java3Dを用いたコンピュータグラフィックスのプログラミングを通して、Java言語におけるAPIの使い方を学ぶことを目的とします。また、クラスやメソッドを用いて、よりよいプログラムを書けるようになることを目指します。

参考資料

Java3Dチュートリアルを参考にしてください。サンプルコードとして、j3d-samples.zipを用意してあります (環境によっては、j3d-samples-alt.zipを試してみてください)。

また、第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%で評価します。