下記のプログラミング課題において4問中少なくとも3問を提出せよ。
プログラミング課題
インタラクティブ性のあるプログラムが理想であり、
それを遠隔地でも評価するにはJavaで作成すると効果的であるので、可能な人はできるだけJavaを試みて下さい(この場合画像サイズは300x300以下でもよい)。
C言語とOpenGLを用いて表示する方法でもよい。
この際、出力例がカラー画像の場合、それを評価して欲しい人は、自分のホームページに画像を置いて見れるようにしてもよい。
課題1 多角形の走査変換プログラムを作成せよ。
課題2 任意の位置から見た凸多面体を陰影表示せよ。
図1 立方体の影の表示
課題3 球を陰影をつけて描画せよ。レイトレーシングを利用してもいいが、2次元の円の内部に奥行きや法線を適当な方法で計算して立体感を出すのでもいい。
図2 Phongの鏡面反射モデル
図3 コッホの曲線
JavaやX-windowの使用方法を勉強する時間のない場合は、次の方法でもよい。 すなわち、スクリーンを想定した配列を準備し、それに輝度情報を書き込み、準備したツールで可視化する。 画像サイズは500x400程度とする。ただし、プログラムリストと結果のハードコピー(PostScript形式にしプリント)を提出すること。 この際、画像をセーブすることが必要になるが、保存の画像形式およびそのプログラムは資料を参考にして下さい。
参照URL
注:プログラミングが困難な学生は,下記のレポート課題を提出しても構いません(課題2と課題3はどちらかを選択してもよい)。
課題1 直線Lとn次Bezier曲線との距離はn次Bzier曲線となることを示せ。
課題2 2次曲面とレイとの交点を算出する式を導出せよ
課題3 カメラの位置情報からモデルビュー変換を求めよ。すなわち、同次座標系で視点ベクトルP、視線方向ベクトルV、スクリーンの上の向きを表すベクトルUが与えられた時のワールド座標系から視点座標系へのアフィン変換行列を求めよ。
課題4 エリアシングが生じる原因を説明し、その対策法に関して多角形を表示する場合について説明せよ。
課題5
CGの歴史で功績があった人として下記がある。このうち有用なCGの要素技術を提案した2名を選びその技術内容(例えば曲線、マッピングなど)を述べよ(ネットを利用した調査でもよい)。
Pat Hanrahan,
Lance J. Williams,
James F. Blinn,
James Foley,
Jose Luis Encarnacao,
Ed Catmull,
Andries van Dam,
David C. Evans,
Donald P. Greenberg,
Pierre Bezier.
Ivan E. Sutherland
締切: 8月18日(木曜) なお期限に遅れた人は9月2日(金曜)には提出のこと(ただし評価にハンディは ある)
結果は各自のホームページに置くか、メイルに添付して下さい。あるいは印字して7号館1階事務室(安住さん)に提出して下さい。メイルでの課題提出時はTAの師君(ymoro@nis-lab.is.s.u-tokyo.ac.jp)にもCCして下さい。
連絡先:email: nis@is.s.u-tokyo.ac.jp
電話: 内線24106 (西田研究室):
/~nis/