コンピュータグラフィックス論 課題(2012年度)


プログラミング課題

インタラクティブ性のあるプログラムが理想であり、言語はC++(+OpenGL)など何でもいいが、遠隔地でも評価するには Javaやenchant.jsで作成すると効果的である。
下記のプログラミング課題において5問中少なくとも3問を提出せよ。

課題1 多角形の走査変換(塗りつぶし)のプログラムを作成せよ。

課題2 Bezier曲線の描画プログラムを作成せよ。


課題 3 3次元フォーマットのファイルを読み込み、表示するプログラムを実装せよ。 wavefront(.obj), collada(.dae), Metasequoia(.mqo)などがわかりやすく他にもmaya(.mb) lightwave(.lw), autodeskFBX(.fbx), MMD(.pmd)などのバイナリファイルなどに挑戦してみても良い。なお、OpenGLやDirectX、enchantjsの使用を推奨する。
【必須条件】

【任意条件】

課題 4 レイトレーシングを実装し、球などの形状の描画をせよ。

【必須条件】 【任意条件】

課題 5 フラクタル(自己相似性)を用いた形状の表示をせよ。フラクタルについては教科書86P〜89Pを参考にすること。


参考文献

[1] 「コンピュータグラフィックス」、 CGARTS(画像情報教育振興協会)
[2]
/~nis/CG/cgtxt/index.htm

参照URL

Webでの本課題公開 : (訂正がある場合があるので、提出前に再度下記を見ること) /~nis/junk/VisualProj12.html
本講義のサイト /~nis/junk/visualj.htm

注:プログラミングが困難な学生は,下記のレポート課題を提出しても構いません。

課題1 3次元の座標変換に関し、点(1,2,1)を中心にx軸に関して30度回転した後、y軸に関して45度回転する変換マトリックスを求めよ。また、点(1,2,1)を中心に、y軸に関して45度回転した後、x軸に関して30度回転する変換マトリックスを求めよ。これらの2つの変換マトリックスは同じかどうか議論せよ。
課題2 直線Lとn次Bezier曲線との距離はn次Bzier曲線となることを示せ。また、Bezier曲線の各頂点への基底関数は合計すると常に1になることを示せ。
課題3 テクスチャーマッピングとソリッドテクスチャリングの違いについも説明せよ。
課題4 キーフレーム法について説明せよ。
課題5 下記の中から有用なCGの要素技術を2つを選びその技術内容を述べよ(可能なら開発者名も、計1ページ以上とする)。
フラクタル、NURBS,ボリュームレンダリング、Bスプライン曲線、ラジオシテイ法、バンプマッピング、マンデルブロー集合、サブサーフェススキャタリング、イメージベースレンダリング、レイキャスティング


締切: 8月17日(金曜)17:00!  (なお期限に遅れた人は9月14日(金曜)には提出のこと(ただし評価にハンディはある). また enchant.jsを利用した課題に関しては、8月4日までに送ってください。優秀なものは米国での講演で紹介します。

課題はメールで提出とします。メールのタイトルは『【CG論課題】-学籍番号-名前-解いた問題の番号と使用言語(Library)』としてください
例『【CG論課題】-********-東大 花子-1(Java),2(C++),3(gl.enchant.js),4(ocaml),5(scheme)』
結果(プログラムソース、実行形式、結果画像、レポート)は、各自のホームページに置いて本文にリンクを貼る、もしくはメールにファイルを添付して送って下さい。

連絡先:email: nis@is.s.u-tokyo.ac.jp /~nis/ 
メイルはTAの今井 etoile@nis-lab.is.s.u-tokyo.ac.jp にもccして下さい。