必修課題は必ず提出して下さい。
発展課題は提出できなくても構いません(必修だけで演習100点になるように配点します)。
課題Dを全て正常にやりとげると、モーフィングをしないようなアニメーション指定だけで できているものについては、正常に表示ができるようになるはずです。
ベースプログラムの中で、
ModelView行列の生成に使われることになる移動行列・回転行列の生成が正しく行えるように、
ic2exp-geom.c
を修正すること。
回転行列は3種類あるので注意。
必要な箇所はic2exp-geom.cの中でも
(提出に当たってのコメント文の書き方については課題C1と同様)
提出にあたって:
各課題については、学生同士で相談して進めてよい。
特にプログラム提出の課題の場合、提出するプログラムコードがどうしてもお互い(ないし教えた・教えられた側の両側で)似通ったものになる可能性がある。
これについて、当該コード部分のコメントに、誰と相談して(誰に教わって・誰に教えて)進めたかを明示している場合はコードが似ていることについて不問とする。
ただし、その記述がない場合は、単にコピーしただけとみなして相応に低い点数にすることがある。
独力で解いた場合でも、コメントによる解説は必ず示すこと。コメントのないコードもまた、相応に低い点数になる可能性がある。
提出物
// 学籍番号 20091234567890 // 氏名 筑波 寝太郎 // 課題名 D1-1 // Separated file No. 8 (2010/11/15,05:42:01) ‥‥ |
ベースプログラムの
ic2exp-rendering_figure.c
には、世界に対する物体の運動を表すModelView行列を合成する関数 ic2_AnimationMatrix() が用意されているが、内容は不完全である。
授業で解説した運動順になるように行列を合成できるよう、プログラムを完成させること。
関連する部分は
提出物
先頭には、以下を記入しておくこと。
// 学籍番号 20091234567890 // 氏名 筑波 寝太郎 // 課題名 2D-1 |
以下のそれぞれについて、解答せよ。
解答時には、解答だけでなく、その理由を必ず記述して自分なりの解説を行うこと。
必要であればソースコードの一部を引用再掲すること。
// 場合によっては正しい計算ができないコード void ic2_MultMatMat_goesBad (float *r, float *a, float *b) { int row,col,ele; int k; if (r == NULL || a == NULL || b == NULL) return; for (col = 0; col < 4; col++) for (row = 0; row < 4; row++) { k = row * 4 + col; r[k] = 0.0; for (ele = 0; ele < 4; ele++) r[k] += (a[ele * 4 + col] * b[row * 4 + ele]); } return ; } |
提出物
学籍番号 20091234567890 氏名 筑波 寝太郎 課題名 D3-1 |
ベースプログラムでは、
光源が読み込まれると、ファイル内の記述順と逆にlinked list内で並べられることになる。
これをアニメーション読み込みのときと同様に、正順でリストされるようにプログラムを改変せよ。
関連する部分は、
ic2exp-build_light.c
の[Report-2102]近辺であろう。
提出にあたっての諸注意は、課題C1に同じ。
提出物
// 学籍番号 20091234567890 // 氏名 筑波 寝太郎 // 課題名 D10-1 ‥‥ |