2
|
1 <?xml version="1.0" encoding="utf-8"?>
|
|
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
4 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
|
5 <head>
|
12
|
6 <!--<title>SceneGraph を用いたマルチコア CPU 向けゲームの処理</title> -->
|
|
7 <title>マルチコア CPU 上における SceneGraph を用いたゲームの作成</title>
|
2
|
8 <meta name="copyright"
|
|
9 content="Copyright © 2005 your copyright notice" />
|
|
10 <link rel="stylesheet" type="text/css" media="screen, projection, print"
|
|
11 href="./slidy.css" />
|
|
12 <link rel="stylesheet" type="text/css" media="screen, projection, print"
|
|
13 href="./user.css" />
|
|
14 <script src="./slidy.js"
|
|
15 type="text/javascript"></script>
|
|
16 <style type="text/css">
|
|
17 <!-- your custom style rules -->
|
|
18 </style>
|
|
19 </head>
|
|
20 <body>
|
|
21
|
|
22 <div class="slide cover">
|
|
23 <center>
|
12
|
24 <h1>マルチコア CPU における<br> SceneGraph を用いたゲームの作成</h1>
|
2
|
25 <br>
|
|
26 <br>
|
|
27 <br>
|
|
28 <br>
|
|
29 <ul>
|
|
30 <li>琉球大学 工学部 情報工学科 065746J
|
|
31 <li>仲宗根広樹
|
|
32 <li>指導教官:河野真治
|
|
33 </ul>
|
|
34 </center>
|
|
35 </div>
|
|
36
|
|
37 <div class="slide pre">
|
|
38 <h1>研究目的と背景</h1>
|
11
|
39 <font size="6"><sup><b>高度な並列性を持つゲームマシンの性能を生かすために<br>プログラムの並列度を向上させる</b></sup></font>
|
2
|
40 <ul style="line-height: 1.2;">
|
|
41 <li>当研究室では、学生実験で PlayStation 3 上でゲームプログラミングを行っている。
|
|
42 <ul style="line-height: 1.2;">
|
|
43 <li>ゲーム中の一つの場面を構成するオブジェクトやその振る舞い<br>ゲームのルールの集合である SceneGraph を導入した。
|
|
44 <li>SceneGraph の動作や衝突判定を一つの CPU で処理している。
|
|
45 <li>プログラムの並列化率が低ければその性能を生かすことができない
|
|
46 </ul>
|
|
47 </ul>
|
|
48 <center>
|
|
49 <font size="6"><sup><b>本研究では SceneGraph を<br>複数 CPU を用いて並列処理することを目的とする</b></sup></font>
|
|
50 </center>
|
|
51 </div>
|
|
52
|
|
53 <div class="slide pre">
|
|
54 <h1>発表の流れ</h1>
|
|
55 <ul style="line-height: 1.2;">
|
6
|
56 <li>SceneGraph とは
|
|
57 <li>SceneGraph によるゲーム作成
|
|
58 <li>SceneGraph の並列化
|
|
59 <li>今後の課題
|
2
|
60 </ul>
|
|
61 <br>
|
|
62 </ul>
|
|
63 </div>
|
|
64
|
|
65 <div class="slide pre">
|
6
|
66 <h1>SceneGraph とは</h1>
|
16
|
67 SceneGraph のノードは親子関係を持つ Tree で構成される。<br>
|
|
68 <br>
|
|
69 <center>
|
|
70 <img src="image/SceneGraph.jpg" width="500">
|
|
71 </center>
|
|
72 <br>
|
|
73 ゲーム内のオブジェクトは個別に SceneGraphNode に分けられているので、ノードを別個に処理すると自然と並列度がでてくる。
|
|
74 </div>
|
|
75
|
|
76 <div class="slide pre">
|
|
77 <h1>SceneGraph とは(Con't)</h1>
|
|
78 <!--
|
7
|
79 <h3>ゲーム中の1つの場面(Scene)を構成するオブジェクトやその振る舞い、ゲームのルールの集合</h3>
|
|
80 <center>
|
|
81 <img src="image/SceneGraph.png" width="500">
|
|
82 </center>
|
16
|
83 -->
|
|
84 <font size="4">
|
|
85 <table>
|
|
86 <tr>
|
|
87 <td>データ</td>
|
|
88 <td>説明</td>
|
|
89 </tr>
|
|
90 <tr>
|
|
91 <td>Vertex</td>
|
|
92 <td>ポリゴンオブジェクトの頂点座標</td>
|
|
93 </tr>
|
|
94 <tr>
|
|
95 <td>Texture</td>
|
|
96 <td>ポリゴンオブジェクトのテクスチャ座標</td>
|
|
97 </tr>
|
|
98 <tr>
|
|
99 <td>TextureImage</td>
|
|
100 <td>テクスチャイメージ</td>
|
|
101 </tr>
|
|
102 <tr>
|
|
103 <td>TransMatrix</td>
|
|
104 <td>ポリゴンオブジェクトの変換行列</td>
|
|
105 </tr>
|
|
106 <tr>
|
|
107 <td>Coordinates</td>
|
|
108 <td>オブジェクトの座標</td>
|
|
109 </tr>
|
|
110 <tr>
|
|
111 <td>Angle</td>
|
|
112 <td>オブジェクトの角度</td>
|
|
113 </tr>
|
|
114 <tr>
|
|
115 <td>Property</td>
|
|
116 <td>オブジェクトの内部情報</td>
|
|
117 </tr>
|
|
118 </table>
|
|
119 <table>
|
|
120 <tr>
|
|
121 <td>動作</td>
|
|
122 <td>説明</td>
|
|
123 </tr>
|
|
124 <tr>
|
|
125 <td>Move</td>
|
|
126 <td>自律的なオブジェクトの動き</td>
|
|
127 </tr>
|
|
128 <tr>
|
|
129 <td>Collision</td>
|
|
130 <td>他のノードとの衝突判定をする</td>
|
|
131 </tr>
|
|
132 </table>
|
|
133 </font>
|
|
134 </div>
|
|
135
|
|
136 <div class="slide pre">
|
|
137 <h1>SceneGraph とは(Con't)</h1>
|
|
138 <font size="5">
|
|
139 <sup>
|
|
140 SceneGraph の親子関係に沿って TransMatrix を計算し、Move, Collision を実行することで SceneGraph 内のオブジェクトが変化する。<br>
|
|
141 Collision によって Move が変更され、Move によって Coordinates, Angle が変更される。これらをどのように変更させていくかがゲームのルールとなる。
|
|
142 </sup>
|
|
143 </font>
|
|
144 <br>
|
|
145 <br>
|
|
146 <font size="5"><sup>
|
|
147 現在、Cerium では画面の描画と Move, Collision の処理は<br> PPE で逐次的に行われている。<br>
|
|
148 </font></sup>
|
|
149 <br>
|
|
150 Move, Collision をマルチメディア系の処理を得意とする <font color=red>SPE</font> で処理し<br>Rendering と並列に実行する。
|
|
151 </div>
|
|
152
|
|
153 <div class="slide pre">
|
|
154 <h1>Property</h1>
|
|
155 <ul style="line-height: 1.2;">
|
|
156 <li>SPE で処理するには PPE からデータを送り込む必要がある。
|
|
157 <li>SPE はの Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。
|
|
158 <li>Move, Collision には Polygon や Texture データは不要になる。
|
|
159 </ul>
|
|
160 <br>
|
|
161 <font size="6">
|
|
162 <sup>
|
|
163 SceneGraph の代わりにゲームに必要な内部状態を持った配列 <font color=red>Property</font> を SPE に転送する。
|
|
164 </sup>
|
|
165 </font>
|
|
166 </div>
|
|
167
|
|
168 <div class="slide pre">
|
|
169 <h1>Property の処理</h1>
|
|
170 <ul style="line-height: 1.2;">
|
|
171 <li>Property を SPE に転送し、SPE 上で Move, Collision の処理を実行し Property を更新する。<br>
|
|
172 <li>更新されて返された Updated Property を元に SceneGraphTree を生成する。
|
|
173 </ul>
|
|
174 <center>
|
|
175 <img src="image/Property.jpg" width="350">
|
|
176 <center>
|
|
177 </div>
|
|
178
|
|
179 <div class="slide pre">
|
|
180 <h1>Property を用いた例題</h1>
|
|
181 Property を用いた例題として複雑な演算をする鎖のシミュレーション chain を使用した。<br>
|
|
182 <font color="red" size="3">※ chain は Move の処理のみ行い、使用する SPE は1基となっている。</font><br>
|
|
183 chain の各オブジェクトの値は、一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。
|
|
184 <br>
|
|
185 <br>
|
|
186 <center>
|
|
187 <img src="image/chain.png" width="300">
|
|
188 </center>
|
2
|
189 </div>
|
|
190
|
|
191 <div class="slide pre">
|
16
|
192 <h1>結果</h1>
|
6
|
193 </div>
|
|
194
|
|
195 <div class="slide pre">
|
|
196 <h1>今後の課題</h1>
|
|
197 </div>
|
2
|
198
|
|
199 </body>
|
|
200 </html>
|