comparison presen/osc2010.html @ 9:57a4fa3f2359 default tip

fix
author Yutaka_Kinjyo
date Sat, 02 Oct 2010 13:08:21 +0900
parents 93c3962d9a01
children
comparison
equal deleted inserted replaced
8:b1e6e100c535 9:57a4fa3f2359
41 41
42 <ol class="xoxo presentation"> 42 <ol class="xoxo presentation">
43 43
44 </li> 44 </li>
45 <li class="slide"> 45 <li class="slide">
46 <h1>シーングラフとPS3 を使った <br> ゲームプログラミング</h1> 46 <h1>学生向けゲーム作成演習の様子</h1>
47 <p><pre> Cerium Task Manager<br> 47
48 Blender / SceneGraph<br> 48 </li>
49 </pre> 49
50 </li> 50 <div class="slide">
51 51 <h1>概要</h1>
52 <div class="slide"> 52 <ul>
53 <h1>発表概要</h1> 53 <li>PS3 ゲーム開発用フレームワーク <span class="text-maroon">Cerium</span> の紹介.</li>
54 <p>PS3 ゲーム開発用フレームワーク <span class="text-maroon">Cerium</span> の紹介.</p> 54 <li>SceneGraphによるゲーム作成</li>
55 <p>Lindaを用いた、ネットワークゲームの作成例の紹介</p> 55 <li>Lindaを用いた、ネットワークゲームの作成例の紹介</li>
56 </ul>
56 </div> 57 </div>
57 58
58 <div class="slide" id="id17"> 59 <div class="slide" id="id17">
59 <h1>Cerium を用いたゲーム開発</h1> 60 <h1>Cerium を用いたゲーム開発</h1>
60 <div align="center" class="align-center"><img alt="images/cerium_game.jpg" class="align-center" src="images/cerium_game.jpg" style="width: 450px;" /></div> 61 <div align="center" class="align-center"><img alt="images/cerium_game.jpg" class="align-center" src="images/cerium_game.jpg" style="width: 450px;" /></div>
187 <img src="gazo/collision3.png" style="width: 70%"> 188 <img src="gazo/collision3.png" style="width: 70%">
188 </div> 189 </div>
189 190
190 <div class="slide"> 191 <div class="slide">
191 <h1>SceneGraph</h1> 192 <h1>SceneGraph</h1>
193 <img src="gazo/collision4.png" style="width: 60%">
194 </div>
195
196 <div class="slide">
197 <h1>SceneGraph</h1>
198 <pre>
199 static void
200 boss1_move_right() {
201 x += 1;
202 if(x > screen_w) {
203 <font color="red">set_move(boss1_move_left);</font>
204 }
205 }
206
207 static void
208 boss1_move_left() {
209 x -= 1;
210 if(x < screen_w) {
211 <font color="red">set_move(boss1_move_right);</font>
212 }
213 }
214 </pre>
215 </div>
216
217
218 <div class="slide">
219 <h1>SceneGraph</h1>
192 <img src="gazo/boss2.png" style="width: 60%"> 220 <img src="gazo/boss2.png" style="width: 60%">
193 </div> 221 </div>
194 222
195 <div class="slide"> 223 <div class="slide">
196 <h1>SceneGraph</h1> 224 <h1>SceneGraph</h1>
197 <img src="gazo/boss3.png" style="width: 70%"> 225 <img src="gazo/boss3.png" style="width: 70%">
226 </div>
227
228 <div class="slide">
229 <h1>SceneGraph</h1>
230 <img src="gazo/boss4.png" style="width: 60%">
231 </div>
232
233 <div class="slide">
234 <h1>SceneGraph</h1>
235 <img src="gazo/hito.png" style="width: 60%">
198 </div> 236 </div>
199 237
200 <div class="slide"> 238 <div class="slide">
201 <h1>SceneGraph</h1> 239 <h1>SceneGraph</h1>
202 <p><pre> SceneGraph を<br> 240 <p><pre> SceneGraph を<br>
203 MoveTask<br> 241 MoveTask<br>
204 CollsionTask<br> 242 CollisionTask<br>
205 で書き換えていく<br> 243 で書き換えていく<br>
206 MoveTask, CollsionTask は、ステートパターンで<br> 244 MoveTask, CollisionTask は、ステートパターンで<br>
207 入れ換えられる<br> 245 入れ換えられる<br>
208 </pre> 246 </pre>
209 これで、すべて書ける。<br> 247 これで、すべて書ける。<br>
210 <p></div> 248 <p></div>
211 249
278 316
279 <div class="slide"> 317 <div class="slide">
280 <h1>TaskManager</h1> 318 <h1>TaskManager</h1>
281 SceneGraph, RenderingEngineのTaskを管理し、SPEに 319 SceneGraph, RenderingEngineのTaskを管理し、SPEに
282 </div> 320 </div>
283
284 <div class="slide">
285 <h1>TaskManager</h1>
286
287 <ul>
288 <li>TaskManagerは、Taskと呼ばれる、分割された各プログラムを管理する</li>
289 <ul>
290 <li>Taskの単位はサブルーチン</li>
291 </ul>
292 <li>Task同士の依存関係を考慮</li>
293 <li>実行可能になったTaskをSPEに渡す</li>
294 </ul>
295
296 <table height="100%" width="100%" border="0">
297 <tr><td align="center" valign="middle">
298 <img src="gazo/taskmanager1.png" style="width: 50%%"></td></tr>
299 </table>
300
301 </div>
302
303 <div class="slide">
304 <h1>CeriumにおけるTask</h1>
305
306 TaskはTaskManagerを使って生成する。Taskを生成する際に以下のような要素が
307 設定可能である。
308
309 <ul>
310 <li>Input data</li>
311 <li>Output data</li>
312 <li>Paramater</li>
313 <li>CPU type</li>
314 <li>Dependency</li>
315 </ul>
316
317 </div>
318
319 <div class="slide">
320 <h1>CeriumにおけるTask</h1>
321 <big><u>Dependency</u></big><br>
322 <ul>
323 <li>Dependencyは他のTaskとの依存関係を示す。</li>
324 <li>例えばTaskAがTaskBをwaitする場合、TaskBが実行完了すると、TaskAが実行可能になる。</li>
325 <li>Taskの実行完了は、SPEのMail送信ボックスにデータが書き込まれ通知される。</li>
326 </ul>
327
328 <table height="100%" width="100%" border="0">
329 <tr><td align="center" valign="middle">
330 <img src="gazo/dependency1.png" style="width: 40%%"></td></tr>
331 </table>
332
333 </div>
334
335
336 <div class="slide">
337 <h1>CeriumにおけるTask</h1>
338 <big><u>Mail機能</u></big><br>
339 <ul>
340 <li>Cellの機能の1つ</li>
341 <li>32bitのメッセージをPPE,SPE間でやりとりできる</li>
342 <li>送信ボックス、受信ボックスがSPEに設けられている。</li>
343 <li>それぞれMailボックスはキューになっている</li>
344 <li>受信ボックスのサイズは4</li>
345 <li>送信ボックスのサイズは1</li>
346 </ul>
347
348 </div>
349
350 <div class="slide">
351 <h1>CeriumにおけるTask</h1>
352 <big><u>Mail機能</u></big><br>
353 <ul>
354 <li>送信ボックスのデータはPPEから、受信ボックスのデータはSPEから呼び出される</li>
355 <li>書き込みはその逆</li>
356 </ul>
357
358 <table height="100%" width="100%" border="0">
359 <tr><td align="center" valign="middle">
360 <img src="gazo/mail.png" style="width: 60%%"></td></tr>
361 </table>
362
363 </div>
364
365 <div class="slide">
366 <h1>Taskの送信</h1>
367
368 <ul>
369 <li>Taskは1つ毎にSPEには送らない</li>
370 <li>いくつかのTaskをまとめTaskListとして送る</li>
371 <li>TaskListをすべて完了すると、SPEからPPEへのMailが書き込まれる</li>
372 <li>PPE側がMailをチェックし次のTaskListをMailで通知する</li>
373 </ul>
374
375 <table height="100%" width="100%" border="0">
376 <tr><td align="center" valign="middle">
377 <img src="gazo/tasklist1.png" style="width: 40%%"></td></tr>
378 </table>
379
380 </div>
381
382
383 321
384 <li class="slide"> 322 <li class="slide">
385 <h1>Cerium Task Manager</h1> 323 <h1>Cerium Task Manager</h1>
386 <p></p> 324 <p></p>
387 <ul> 325 <ul>