Mercurial > hg > Papers > 2009 > koba-thesis
diff presentation/thesis_pre.html @ 12:51f302cce0e5
adding presentation base
author | e055722 |
---|---|
date | Thu, 26 Feb 2009 00:00:20 +0900 |
parents | |
children | a2888d97c1c2 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presentation/thesis_pre.html Thu Feb 26 00:00:20 2009 +0900 @@ -0,0 +1,160 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + +<head> +<title>ゼミ資料 09/01/16</title> +<!-- metadata --> +<meta name="generator" content="S5" /> +<meta name="version" content="S5 1.1" /> +<meta name="presdate" content="20050728" /> +<meta name="author" content="Eric A. Meyer" /> +<meta name="company" content="Complex Spiral Consulting" /> +<!-- configuration parameters --> +<meta name="defaultView" content="slideshow" /> +<meta name="controlVis" content="hidden" /> +<!-- style sheet links --> +<link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" /> +<link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" /> +<link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" /> +<link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" /> +<!-- S5 JS --> +<script src="ui/default/slides.js" type="text/javascript"></script> +</head> +<body> + +<div class="layout"> +<div id="controls"><!-- DO NOT EDIT --></div> +<div id="currentSlide"><!-- DO NOT EDIT --></div> +<div id="header"></div> +<div id="footer"> +<h1>[date:09/02/26]</h1> +<h2>SceneGraphを用いたゲームプログラムの為のテスト作成手法</h2> +</div> + +</div> + + +<div class="presentation"> + +<div class="slide"> +<h1>SceneGraphを用いたゲームプログラムの為のテスト作成手法</h1> +<h3>発表者:小林 佑亮</h3> +<h4>所属:琉球大学 工学部 情報工学科</h4> +<h4>指導教員:河野 真治</h4> +</div> + + +<div class="slide"> +<h1>研究背景・目的</h1> +<font size=5> +<ul> +<li>当研究室では学生実験において、PlayStation3を用いた並列的なゲームプログラムの作成を行っている</li> +<li>そこで使用されるのが当研究室で開発したCeriumレンダリングエンジンである</li> +<li>PlayStation2で動作していた超弾帝(スーパーダンディ)というゲームの移植の際、オブジェクトの描画、衝突判定などで不具合が発生した</li> +<li>超弾帝には約100種類に及ぶオブジェクトが存在し、今後も同様な不具合を修正していく必要があると考えられる</li> +<br> +<br> +<li>本研究ではゲームプログラムをSceneGraph単位でテストすることでオブジェクトごとの振る舞いや描画をチェックする</li> +<li>ゲームのデバッグを容易にし、今後のゲームの移植や改良、作成を円滑にする</li> +</ul> +</font> +</div> + +<div class="slide"> +<h1>PlayStation3のアーキテクチャ</h1> +<font size=5> +<ul> +<li>Cellは1基のPPEと8基のSPEからなる非対称なマルチコアプロセッサであり、高速リングバスで構成されている</li> +<li>SPE は、LS (Local Store) という256KBのメモリを持つ</li> +<li>本研究で用いた PS3Linux では、6個の SPE を制御することができる</li> +</ul> +</font> +<br> +<img src="image/Cell-main.jpg" alt="Cell-main" width="430" height="283"> +<img src="image/SPE.jpg" alt="SPE" width="233" height="221"> +</ul> +</div> + +<div class="slide"> +<h1>Cerium Rendering Engine</h1> +Ceriumは以下の3つから構成される。 +<ul> +<li>TaskManager</li> +<li>SceneGraph</li> +<li>RenderingEngine</li> +</ul> +</div> + +<div class="slide"> +<h1>TaskManager</h1> + +<font size="5"> +<ul> +<li>Taskと呼ばれる分割された各プログラムを管理するライブラリである</li> +<li>Task同士の依存関係を考慮しながらメモリ上にマッピングし、SPE上ではそのプログラムを DMA転送によりロードする</li> +<li>SPEは256KBという小さなデータ量しか持てず、 大量のプログラムを全てSPE上に置いておく事は出来ない可能性がある</li> +<li>必要な時に必要な実行プログラムだけがSPE上にロードされている事が望ましい</li> +</ul> +</font> +<br> +<center> +<img src="image/TaskManager.jpg" width="25%" height="40%" alt="TaskManager"> +</center> +</div> + +<div class="slide"> +<h1>SceneGraph</h1> +<font size="5"> +<ul> +<li>ゲームの中の一つの場面(Scene)を構成するオブジェクトやその振る舞い、ゲームのルールの集合をSceneGraphとする</li> +<li>SceneGraphのノードは親子関係を持つTreeで構成される</li> +<li>親子関係とは、親オブジェクトの回転や平行移動等の行列計算による頂点座標の変更が、子オブジェクトにも反映する関係の事である</li> +<img src="image/SceneGraph.jpg" width="" height="" alt=" SceneGraph"> +</font> +</div> + +<div class="slide"> +<h1>RenderingEngine</h1> +<font size="5"> +<ul> +<li>SceneGraphから実際に表示するポリゴンを抽出する</li> +<li>ポリゴンからSpanを生成する</li> +<li>SpanにRGBをマッピングし描画する</li> +<img src="image/Render.jpg" width="50%" height="50%"> +</font> +</div> + +<div class="slide"> +<h1>tree_dandy2</h1> +<ul> +<li>move.c</li> +<font size ="5"> +<pre> +void Move() +... + +switch (enemy[tekino].move) { + case 0: + enemy[tekino].x += enemy[tekino].sx; + enemy[tekino].y += enemy[tekino].sy; + break; + case 1: + enemy[tekino].x -= enemy[tekino].sx; + enemy[tekino].y -= enemy[tekino].sy; + break; + case 2: + enemy[tekino].sy -= 0.25; + enemy[tekino].y += enemy[tekino].sy; + break; + ... +</pre> +</font> +</ul> +</div> + +</div> + +</body> +</html>