-
Notifications
You must be signed in to change notification settings - Fork 0
/
cg メモ.ini
131 lines (116 loc) · 5.53 KB
/
cg メモ.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
cg メモ
レポート課題条件
cgアニメーション(複雑なほどOK)6点
マウスの操作、メニューが実装されている 3点
シェーディング(明暗のコントラストで立体感を与える)6点
テクスチャマッピングが使用されていること6点
レポートの内容が適切である 9点
どのような視点からcgを作成したのか、どういったところに独自性や工夫があるか論理的に書き、画像を効果的に使う
レポートの内容
表紙:学籍番号、クラス番号、名前、提出日を掲載をする
CGアニメーションのテーマの説明
プログラムの説明、工夫したところ、考察など
出力結果(動きがわかるように、数枚の絵を提示する)
ソース
条件を達成する内容(ロボット)
アニメーション
簡単に実装できるのであれば、前作ったロボットを歩かせたい
もし背景が簡単に実装できるなら背景を入れる
マウス操作
歩く向きを変更
歩く速度変更
シェーディング
全体照らす感じで行こ
テクスチャマッピング
ロボットの面に鉄っぽいやつ
顔はずんだもんにしてやろうかな
条件を達成する内容(ドミネーター)
アニメーション
エリミネーター、パラライザーの変形
マウス操作
視点変更
シェーディング
上から照らす感じでいいと思う
一人称視点は裏側から照らしてみたい
テクスチャマッピング
切り抜きできるところはやって、難しいところは適当な色で潰す
memo
display
glClear
バッファをクリアするための関数
glColor3f
色を設定する関数
glBegin
頂点列を定義する描画プリミティブの開始を示す関数
glVertex3f
頂点を定義する関数で、xyzを受け取って頂点を指定する
glEnd
glBeginで開始された頂点列の終了を示す関数
glFlush
openglのコマンドキューにたまった描画コマンドを即座に実行する関数
glPushMatrix()
現在のモデルビュー行列をスタックに保存します。これにより、現在の行列の状態を保存して、以降の操作で変更が加えられた場合に元の状態に戻すことができます。
glPopMatrix()
スタックから最後に保存されたモデルビュー行列を取り出し、現在の行列に設定します。これにより、以前に保存された状態に戻すことができます。
glTranslated()
現在のモデルビュー行列に対して、指定されたx、y、zの値に基づいて平行移動を行います。
glRotated()
現在のモデルビュー行列に対して、指定された角度と軸に基づいて回転を行います。
glScaled()
現在のモデルビュー行列に対して、指定されたx、y、zの値に基づいてスケーリングを行います。
glutWireCube()
ワイヤーフレームの立方体を描画します。
glutWireSphere()
ワイヤーフレームの球体を描画します。
polarView
減点を中心とした視点変換
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient)
材質の環境rgpa
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse)
材質の拡散rgba
glMaterialfv(GL_FRONT, GL_SPECULAR, specular)
材質の鏡面rgba
glMaterialf(GL_FRONT, GL_SHININESS, 50)
鏡面係数
reShape
glViewport(0, 0, width, height);
ウィンドウ内の描画領域を指定する
glMatrixMode(GL_PROJECTION);
行列モードを設定
glLoadIdentity();
現在の行列を単位行列にリセット
gluPerspective(60.0, (double)width / (double)height, 0.1, 20.0);
透視投影のパラメータを設定。視野角、アスペクト比、近クリップ面、遠クリップ面を指定
gluLookat
視点の設定
if width <= height:
glOrtho(-a, a, -a * height / width, a * height / width, -z, z)
else:
glOrtho(-a * width / height, a * width / height, -a, a, -z, z)
直行投影を定義するらしい。遠近法じゃないっていう意味だと思われ
init
glClearColor
背景色を設定する関数
glutInit
glutライブラリを初期化する関数
glutInitDisplayMode
ディスプレイの描画モードを設定
glutInitWindowSize
ウィンドウの初期位置を指定する関数
glutInitWindowPosition
ウィンドウの初期位置を指定する関数
glutCreateWindow
ウィンドウを作成する関数
glutDisplayFunc
ウィンドウ再描画時に呼び出されるコールバック関数を登録する関数
glutMainLoop
glutのメインイベントループを開始する関数
glutKeyboardFunc(myKeyboard)
キーボードの入力を処理するコールバック関数を登録
glutReshapeFunc(myReshape)
ウィンドウのリサイズ時に呼び出されるコールバック関数を登録
glutIdleFunc(myIdle)
アイドル状態(何も処理がない状態)時に呼び出されるコールバック関数を登録
やること
メニュー追加
歩いているときだけ足が動くようにする