コンピュータグラフックス特論U (ビジュアルコンピューティング論) 課題


2004, 1/22 西田
下記のプログラミング課題の4問中少なくとも3問を提出せよ。 なお、プログラミングができないものについてはレポート課題を提出せよ。
T プログラミング課題

インタラクテイブ性のあるプログラムが理想であり、それを遠隔地でも評価するにはJavaで作成すると効果的であるので、可能な人はできるだけJavaを試みなさい(この場合画像サイズは300x300以下でもよい)。 X-WindowあるいはOpenGLを用いてスクリーン上に表示する方法でもよい。この際、出力例がカラー画像の場合、それを評価して欲しい人は自分のホ ームページに画像を置いて見れるようにしても良い。

課題1 Bezier曲線を描くプログラムを作成せよ(資料[1]参照)。

課題2 OpenGL(あるいはjGL, GL4java)を用いて3次元物体を表示せよ。

課題3  レイトレーシング法を実装せよ。

課題4 球をボリュームレンダリングとして描画せよ。

参考資料
[1] A. Iglesias, "BEZIER CURVES AND SURFACES"
[2] A. Iglesias, "ILLUMINATION MODELS"
[3] A. Iglesias, "TEXTURE AND BUMP MAPPING"
[4] C.R. Salama, "Hardware-Accelerated Volume Rendering for Rectlinear Grids"

U レポート課題

  1. 2次のBezier曲面Cと直線Lとの交点を算出する式を導出せよ 。また、交点 での法線を算出せよ。
  2. ボリュームデータの可視化の方法にMarching Cubesという方法があるが、 この方法について説明し、長所欠点を述べよ。
  3. 放物線を2次の有理Bezier曲線で表す場合、制御点と重みを算出する式を 求めよ。
参考
C言語の場合;
これらの課題において、画像をセーブすることが必要になるが、保存の画像形式およびそのプログラムは下記を参考にして下さい。
/~nis/junk/ppm.html
Java の場合;
Java文法は下記を参照。
/~nis/junk/sougou/document/javaBunpou.htm
Java例題
(1) Javaの図形基本要素を組み合わせた例: Applet例   プログラム例
(2) 矩形領域内を補間法で塗る例: Applet例2
(3) ブレゼンハムの直線描画法の例: Applet例プログラム例、  解説   (直線を描くコマンドが無い場合に、直線を描く場合、直線上の画素を走査するようである。その際不可欠な方法)
CG関係のJava Aplet例

締切: 2月16日(月曜)17時まで
結果は印字(ソースリストと表示結果)して情報科学科事務室(田村さん)に提出か、各自のホームページに置いてメイル連絡すること。

連絡先: email: nis@is.s.u-tokyo.ac.jp
電話:内線2-4106 (西田研究室)
/~nis/

本課題の公開URL: /~nis/junk/lecture/VisRep04.html
本講義の公開URL: /~nis/junk/cg_lectur.html