Mercurial > hg > Events > OSC2010
annotate presen/osc2010.html @ 9:57a4fa3f2359 default tip
fix
author | Yutaka_Kinjyo |
---|---|
date | Sat, 02 Oct 2010 13:08:21 +0900 |
parents | 93c3962d9a01 |
children |
rev | line source |
---|---|
0 | 1 <html> |
2 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> | |
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | |
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
5 | |
6 <html xmlns="http://www.w3.org/1999/xhtml"> | |
7 | |
8 <head> | |
9 <title>2010-10-02 (土) シーングラフとPS3 を使ったゲームプログラミング</title> | |
10 <!-- metadata --> | |
11 <meta name="generator" content="S5" /> | |
12 <meta name="version" content="S5 1.2a2" /> | |
13 <meta name="author" content="Eric A. Meyer" /> | |
14 <meta name="company" content="Complex Spiral Consulting" /> | |
15 <!-- configuration parameters --> | |
16 <meta name="defaultView" content="slideshow" /> | |
17 <meta name="controlVis" content="hidden" /> | |
18 <!-- style sheet links --> | |
19 <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projec | |
20 tion" id="slideProj" /> | |
21 <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="scree | |
22 n" id="outlineStyle" /> | |
3
6e68a8297587
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
1
diff
changeset
|
23 <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" |
0 | 24 id="slidePrint" /> |
25 <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="project | |
26 ion" id="operaFix" /> | |
27 <!-- S5 JS --> | |
28 <script src="ui/default/slides.js" type="text/javascript"></script> | |
29 </head> | |
30 <body> | |
31 | |
32 <div class="layout"> | |
33 <div id="controls"><!-- DO NOT EDIT --></div> | |
34 <div id="currentSlide"><!-- DO NOT EDIT --></div> | |
35 <div id="header"></div> | |
36 <div id="footer"> | |
37 <h1>2010-10-02 (土) シーングラフとPS3 を使ったゲームプログラミング</h1> | |
38 <h2></h2> | |
39 </div> | |
40 </div> | |
41 | |
42 <ol class="xoxo presentation"> | |
43 | |
44 </li> | |
45 <li class="slide"> | |
9 | 46 <h1>学生向けゲーム作成演習の様子</h1> |
47 | |
0 | 48 </li> |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
49 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
50 <div class="slide"> |
9 | 51 <h1>概要</h1> |
52 <ul> | |
53 <li>PS3 ゲーム開発用フレームワーク <span class="text-maroon">Cerium</span> の紹介.</li> | |
54 <li>SceneGraphによるゲーム作成</li> | |
55 <li>Lindaを用いた、ネットワークゲームの作成例の紹介</li> | |
56 </ul> | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
57 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
58 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
59 <div class="slide" id="id17"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
60 <h1>Cerium を用いたゲーム開発</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
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> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
62 <div align="center"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
63 SuperDandy3D |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
64 </div><ul class="simple"> |
7 | 65 <li>学生実験でPS3上でのGame作成を行っている</li> |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
66 <li>Cerium を用いて学生が作成</li> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
67 <li>ジョイスティックやキーボードでの操作が可能<ul> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
68 <li>SDL を用いて入力値を取得している</li> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
69 </ul> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
70 </li> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
71 </ul> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
72 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
73 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
74 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
75 <!-- section:Blender --> |
3
6e68a8297587
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
1
diff
changeset
|
76 <li class="slide"> |
7 | 77 <h1>3Dモデリング</h1> |
78 | |
79 まずはゲーム中のオブジェクトのモデリングを行う | |
80 | |
81 | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
82 </li> |
7 | 83 |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
84 <li class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
85 <h1>3Dモデルの作成</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
86 <p>Blender: フリーの高機能なモデリングツール</p> |
7 | 87 <img src="gazo/blender.jpeg" style="width: 30%"> |
88 <img src="gazo/post.png" style="width: 30%"> | |
89 <img src="gazo/blenderlogo.jpeg" style="width: 30%"> | |
90 </li> | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
91 |
7 | 92 <li class="slide"> |
93 <h1>3Dモデルの作成</h1> | |
94 <p>Blender: 作成画面</p> | |
95 <img src="gazo/blender2.png" style="width: 60%"> | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
96 </li> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
97 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
98 <div class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
99 <h1>モデルをCeriumに読ませる.</h1> |
7 | 100 <img src="gazo/model2xml.png" style="width: 90%"> |
101 <ul> | |
102 <li>作成したオブジェクトはBlenderから、スクリプトを使ってCerium用に変換</li> | |
103 <li>xmlファイルとなったモデリングデータをCeriumが描画する</li> | |
104 </ul> | |
105 </div> | |
106 | |
107 <div class="slide"> | |
108 <h1>PS3,Cell,Cerium</h1> | |
109 PS3にはCell Broadband Engine が搭載されている。 | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
110 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
111 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
112 <!-- section:Cerium --> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
113 |
3
6e68a8297587
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
1
diff
changeset
|
114 <li class="slide"> |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
115 <h1>Cellとは</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
116 |
7 | 117 <big>Cell</big>とはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ<br> |
118 Cellは1基の制御系のプロセッサコア<u>PPE</u>と、8基の演算系プロセッサコア<u>SPE</u>で構成される(Ceriumで扱えるSPEの数は6基)。それぞれ高速なバスで接続されている<br><br> | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
119 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
120 <table height="100%" width="100%" border="0"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
121 <tr><td align="center" valign="middle"> |
7 | 122 <img src="gazo/cell1.png" style="width: 35%%"></td></tr> |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
123 </table> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
124 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
125 <!--<img src="gazo/cell1.png" style="width: 45%%"><br>--> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
126 </li> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
127 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
128 <div class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
129 <h1>Ceriumとは</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
130 <big>Cerium</big>とは当研究室で開発したゲーム開発用フレームワークである<br><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
131 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
132 <u>Task Manager</u><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
133 タスクと呼ばれる分割されたプログラムを管理する<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
134 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
135 <u>Scene Graph</u><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
136 ゲーム中のオブジェクトの振る舞いや、ルールを管理する。 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
137 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
138 <u>Rendering Engine</u><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
139 Cerium独自に開発した描画用のエンジン |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
140 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
141 <br><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
142 の3つの要素から構成される。<br><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
143 Ceriumは PS3/Cell、linux, macosx 上で動作する。 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
144 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
145 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
146 |
7 | 147 <li class="slide"> |
148 <h1>SceneGraph</h1> | |
149 <img src="photo/cerium_sg_tree.jpg" style="width 100%" > | |
150 <p>Blenderで生成した3Dモデルを独自のXML形式で出力.</p> | |
151 <p></p> | |
152 <p>SceneGraph の各ノードには <font color="red">MoveTask, Collision Task</font> がある.</p> | |
153 </pre> | |
154 </li> | |
155 | |
156 <div class="slide"> | |
157 <h1>SceneGraph</h1> | |
158 <img src="gazo/boss.png" style="width: 60%"> | |
159 </div> | |
160 | |
161 <div class="slide"> | |
162 <h1>SceneGraph</h1> | |
163 <img src="gazo/scenegraph2.png" style="width: 100%"> | |
164 </div> | |
165 | |
166 <div class="slide"> | |
167 <h1>SceneGraph</h1> | |
168 <img src="gazo/scenegraph1.png" style="width: 100%"> | |
169 </div> | |
170 | |
171 <div class="slide"> | |
172 <h1>SceneGraph</h1> | |
173 <img src="gazo/move.png" style="width: 70%"> | |
174 </div> | |
175 | |
176 <div class="slide"> | |
177 <h1>SceneGraph</h1> | |
178 <img src="gazo/collision1.png" style="width: 70%"> | |
179 </div> | |
180 | |
181 <div class="slide"> | |
182 <h1>SceneGraph</h1> | |
183 <img src="gazo/collision2.png" style="width: 70%"> | |
184 </div> | |
185 | |
186 <div class="slide"> | |
187 <h1>SceneGraph</h1> | |
188 <img src="gazo/collision3.png" style="width: 70%"> | |
189 </div> | |
190 | |
191 <div class="slide"> | |
192 <h1>SceneGraph</h1> | |
9 | 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> | |
7 | 220 <img src="gazo/boss2.png" style="width: 60%"> |
221 </div> | |
222 | |
223 <div class="slide"> | |
224 <h1>SceneGraph</h1> | |
225 <img src="gazo/boss3.png" style="width: 70%"> | |
226 </div> | |
227 | |
228 <div class="slide"> | |
229 <h1>SceneGraph</h1> | |
9 | 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%"> | |
236 </div> | |
237 | |
238 <div class="slide"> | |
239 <h1>SceneGraph</h1> | |
7 | 240 <p><pre> SceneGraph を<br> |
241 MoveTask<br> | |
9 | 242 CollisionTask<br> |
7 | 243 で書き換えていく<br> |
9 | 244 MoveTask, CollisionTask は、ステートパターンで<br> |
7 | 245 入れ換えられる<br> |
246 </pre> | |
247 これで、すべて書ける。<br> | |
248 <p></div> | |
249 | |
250 | |
251 <div class="slide"> | |
252 <h1>つまり、</h1> | |
253 <pre> SceneGraph の構築<br> | |
254 MoveTask<br> | |
255 CollsionTask<br> | |
256 </pre> | |
257 だけを書けば、あとは、Cerium Task Manager が自動的に並列に実行管理してくれる<br> | |
258 <p></div> | |
259 | |
260 <div class="slide"> | |
261 <h1>SceneGraphの結果を描画</h1> | |
262 SceneGraphで操作したオブジェクトの結果を、レンダリングエンジンで描画する | |
263 </div> | |
264 | |
265 | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
266 <div class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
267 <h1>Rendering Engineの構成</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
268 <p class="ex2">Rendering Engineは主に3つのタスクから構成されている</p> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
269 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
270 <u>CreatePolygonタスク</u><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
271 モデリングデータからポリゴンを生成するタスク<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
272 <u>CreateSpanタスク</u><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
273 生成されたポリゴンを水平な直線(Span)に分割するタスク<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
274 <u>DrawSpanタスク</u><br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
275 Spanのデータを元に、画面に描画するタスク<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
276 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
277 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
278 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
279 <div class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
280 <h1>Rendering Engineの流れ</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
281 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
282 <img src="gazo/rendering1.png" style="display:block; width: 60%; margin: auto;"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
283 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
284 <u><big>CreatePolygon</big></u>:<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
285 SceneGraph をもとに回転や並行移動したポリゴンを、モデルデータから生成するタスク<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
286 ポリゴンは三角形である<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
287 回転や平行移動はSceneGraphが持っている変換行列を用いる |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
288 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
289 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
290 <div class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
291 <h1>Rendering Engineの流れ</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
292 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
293 <img src="gazo/rendering2.png" style="display:block; width: 60%; margin: auto;"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
294 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
295 <div style="float: left; width: 50%;"><u><big>CreateSpan</big></u>:<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
296 三角形のポリゴンを線に分割するタスク。 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
297 生成されたポリゴンを水平な直線(Span)の集合へと分割する<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
298 Spanとは1ドット単位で分割された線 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
299 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
300 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
301 <img src="gazo/span2.png" style="display:block; width: 38%; float: right; margin-top:5%"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
302 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
303 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
304 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
305 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
306 <div class="slide"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
307 <h1>Rendering Engineの流れ</h1> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
308 <br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
309 <img src="gazo/rendering3.png" style="display:block; width: 65%; margin: auto;"> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
310 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
311 <u><big>DrawSpan</big></u>:<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
312 Spanを画面へ描画するタスク<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
313 Spanを1Dotずつ見ていき、対応する画面の1Dotに色をつける<br> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
314 色はSpanに対応する画像の色をみて決める |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
315 </div> |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
316 |
7 | 317 <div class="slide"> |
318 <h1>TaskManager</h1> | |
319 SceneGraph, RenderingEngineのTaskを管理し、SPEに | |
320 </div> | |
321 | |
0 | 322 <li class="slide"> |
323 <h1>Cerium Task Manager</h1> | |
1 | 324 <p></p> |
325 <ul> | |
326 <li>Open/GL Mesa に Cell driver を書いたが、メインメモリに依存しすぎていたため、動作が遅くなってしまった。</li> | |
327 <li>Task base で書く必要がある。</li> | |
328 <li>Video Chip が公開されていないので、Rendering Engine も用意すべき</li> | |
329 <li>SPE の Local Store は 256KB なので、コードの管理も必要</li> | |
330 </ul> | |
331 <br> | |
332 このような経緯で、Cell Task Manager を作成することになった。 | |
333 </li> | |
334 | |
0 | 335 <li class="slide"> |
336 <h1>Cerium Task Manager の特徴</h1> | |
1 | 337 |
0 | 338 <pre> PPU/SPUで、Task の互換性がある<br> |
339 SPU上の最適化は当面禁止<br> | |
340 OS X 上でも動く<br> | |
341 コードのデバッグはOS X 上でやる<br> | |
342 並列化とチューニングだけPS3上で行なう<br> | |
343 SPU上のメモリをCode と Data を Hash とメモリリストで管理する<br> | |
344 SPUに入り切らない巨大なTaskでも実行できる<br> | |
345 </pre> | |
346 </li> | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
347 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
348 |
0 | 349 <li class="slide"> |
350 <h1>並列アーキテクチャは並列でないと...</h1> | |
351 特に、Cell/PS3 は、SPUで実行しないとだめ<br> | |
352 <pre> 既存のプログラミングでは、まったく歯が立たない<br> | |
353 </pre> | |
354 トリビアルなプログラムでも、並列にする必要がある<br> | |
355 <p></li> | |
356 <li class="slide"> | |
357 <h1>やってはいけないこと</h1> | |
358 <pre> 最初に大量のTaskをすべて作る<br> | |
359 Task が自分でデータを拾って来る<br> | |
360 Task 同士が、同期を行なう<br> | |
361 </pre> | |
362 </li> | |
4
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
363 |
19623b8a4144
change scenario
Ryoma SHINYA <shinya@firefly.cr.ie.u-ryukyu.ac.jp>
parents:
3
diff
changeset
|
364 <!-- section:Linda --> |
0 | 365 |
366 <li class="slide"> | |
367 <h1>まとめ</h1> | |
368 Blender/Linux/Cerium を用いたオープンソースなゲームフレームワーク<br> | |
369 <p>SceneGraphを作れば、move/collision を記述するだけで並列に実行される<br> | |
370 <p>ソフトウェアレンダリングなんで、なんでも自分で書ける<br> | |
371 <p> | |
372 </li> | |
373 | |
374 <li class="slide"> | |
375 <h1>今後の課題</h1> | |
376 </li> |