Mercurial > hg > Events > OSC2010
changeset 4:19623b8a4144
change scenario
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presen/images/rendering.graffle Sat Oct 02 01:09:44 2010 +0900 @@ -0,0 +1,3727 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>ApplicationVersion</key> + <array> + <string>com.omnigroup.OmniGraffle</string> + <string>129.18</string> + </array> + <key>AutoAdjust</key> + <false/> + <key>CanvasColor</key> + <dict> + <key>w</key> + <string>1</string> + </dict> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>CanvasScale</key> + <real>1</real> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>CreationDate</key> + <string>2008-07-18 12:29:35 +0900</string> + <key>Creator</key> + <string>nunota takehiro</string> + <key>DisplayScale</key> + <string>1 cm = 1 cm</string> + <key>GraphDocumentVersion</key> + <integer>5</integer> + <key>GraphicsList</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>483</integer> + </dict> + <key>ID</key> + <integer>764</integer> + <key>Points</key> + <array> + <string>{377.258, 369.38}</string> + <string>{356, 330.363}</string> + <string>{386.511, 300.778}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>758</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>743</integer> + <key>Points</key> + <array> + <string>{339.068, 418.765}</string> + <string>{351.8, 418.765}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>744</integer> + <key>Points</key> + <array> + <string>{347.494, 408.492}</string> + <string>{375.607, 408.492}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>745</integer> + <key>Points</key> + <array> + <string>{360.264, 391.996}</string> + <string>{424.719, 391.996}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>746</integer> + <key>Points</key> + <array> + <string>{357.391, 394.993}</string> + <string>{417.074, 394.993}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>747</integer> + <key>Points</key> + <array> + <string>{402.379, 335.814}</string> + <string>{409.552, 335.814}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>748</integer> + <key>Points</key> + <array> + <string>{399.599, 339.469}</string> + <string>{412.332, 339.469}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>749</integer> + <key>Points</key> + <array> + <string>{353.12, 399.464}</string> + <string>{403.302, 399.464}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>750</integer> + <key>Points</key> + <array> + <string>{345.436, 411.783}</string> + <string>{366.126, 411.783}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>751</integer> + <key>Points</key> + <array> + <string>{372.508, 376.708}</string> + <string>{432.191, 376.708}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>752</integer> + <key>Points</key> + <array> + <string>{366.519, 382.503}</string> + <string>{433.369, 382.503}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>753</integer> + <key>Points</key> + <array> + <string>{375.691, 372.635}</string> + <string>{429.008, 372.635}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>754</integer> + <key>Points</key> + <array> + <string>{390.308, 350.507}</string> + <string>{418.088, 350.507}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>755</integer> + <key>Points</key> + <array> + <string>{387.61, 354.92}</string> + <string>{420.634, 354.92}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>756</integer> + <key>Points</key> + <array> + <string>{383.539, 359.299}</string> + <string>{422.064, 359.299}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>757</integer> + <key>Points</key> + <array> + <string>{350.606, 404.802}</string> + <string>{389.131, 404.802}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>758</integer> + <key>Points</key> + <array> + <string>{377.258, 369.38}</string> + <string>{427.44, 369.38}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>759</integer> + <key>Points</key> + <array> + <string>{362.13, 388.298}</string> + <string>{437.759, 388.298}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>760</integer> + <key>Points</key> + <array> + <string>{380.904, 364.812}</string> + <string>{423.794, 364.812}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{333.759, 330.363}, {103.518, 94.86}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>761</integer> + <key>Shape</key> + <string>Bezier</string> + <key>ShapeData</key> + <dict> + <key>UnitPoints</key> + <array> + <string>{0.213846, -0.5}</string> + <string>{0.213846, -0.5}</string> + <string>{-0.5, 0.5}</string> + <string>{-0.5, 0.5}</string> + <string>{-0.5, 0.5}</string> + <string>{0.5, 0.106164}</string> + <string>{0.5, 0.106164}</string> + <string>{0.5, 0.106164}</string> + <string>{0.213846, -0.5}</string> + </array> + </dict> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>TextPlacement</key> + <integer>0</integer> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>762</integer> + <key>Points</key> + <array> + <string>{342.649, 414.611}</string> + <string>{360.554, 414.611}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>763</integer> + <key>Points</key> + <array> + <string>{397.013, 344.924}</string> + <string>{414.918, 344.924}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>742</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{220.006, 359.143}, {81, 21}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>w</key> + <string>0</string> + </dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>658</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs28 \cf0 DrawSpan}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>14</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>434</integer> + </dict> + <key>ID</key> + <integer>24</integer> + <key>Points</key> + <array> + <string>{318.495, 351.868}</string> + <string>{216.512, 350.14}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>493</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{442.236, 214.132}, {63, 24}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>w</key> + <string>0</string> + </dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>16</real> + </dict> + <key>ID</key> + <integer>655</integer> + <key>Line</key> + <dict> + <key>ID</key> + <integer>51</integer> + <key>Position</key> + <real>0.84009146690368652</real> + <key>RotationType</key> + <integer>0</integer> + </dict> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs32 \cf0 PP2SP}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{271.22, 41.986}, {65, 24}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>FontInfo</key> + <dict> + <key>Color</key> + <dict> + <key>w</key> + <string>0</string> + </dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>16</real> + </dict> + <key>ID</key> + <integer>654</integer> + <key>Line</key> + <dict> + <key>ID</key> + <integer>22</integer> + <key>Position</key> + <real>0.46539857983589172</real> + <key>RotationType</key> + <integer>0</integer> + </dict> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs32 \cf0 SG2PP}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{444.902, 421.482}, {81, 18}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>477</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs30 \cf0 T : Texture}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> + <string>{{401.578, 460.081}, {83, 19}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>15</real> + </dict> + <key>ID</key> + <integer>478</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs32 \cf0 SpanPack}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> + <string>{{525.916, 417.313}, {18.0284, 18.1687}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>479</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 T}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{500.873, 394.386}, {18.0284, 18.1687}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>480</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 T}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{475.83, 371.459}, {18.0284, 18.1687}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>481</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 T}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{450.788, 344.638}, {18.0284, 18.1687}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>482</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 T}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{380.509, 276.722}, {37.532, 23.3598}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>14</real> + </dict> + <key>ID</key> + <integer>483</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 SPU}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{388.59, 282.346}, {24.3384, 23.3598}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>484</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{392.646, 287.104}, {24.3384, 23.3598}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>485</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{396.252, 291.647}, {24.3384, 23.3598}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>486</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>491</integer> + </dict> + <key>ID</key> + <integer>487</integer> + <key>Points</key> + <array> + <string>{419.022, 284.459}</string> + <string>{429.604, 282.346}</string> + <string>{450.082, 302.88}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>483</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{525.916, 353.29}, {18.0284, 64.023}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>488</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{500.873, 330.363}, {18.0284, 64.023}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>489</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{475.83, 307.436}, {18.0284, 64.023}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>490</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{450.788, 280.615}, {18.0284, 64.023}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>491</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{318.995, 260.205}, {240.178, 187.415}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>493</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{449.275, 22.065}, {37, 16}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>15</real> + </dict> + <key>ID</key> + <integer>595</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs26 \cf0 SPU}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>608</integer> + </dict> + <key>ID</key> + <integer>597</integer> + <key>Points</key> + <array> + <string>{405.555, 184.096}</string> + <string>{405.555, 172.517}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>604</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>602</integer> + </dict> + <key>ID</key> + <integer>598</integer> + <key>Points</key> + <array> + <string>{405.554, 172.518}</string> + <string>{419.142, 172.196}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>607</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>608</integer> + </dict> + <key>ID</key> + <integer>599</integer> + <key>Points</key> + <array> + <string>{391.967, 181.201}</string> + <string>{405.555, 172.517}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>604</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>611</integer> + <key>Info</key> + <integer>1</integer> + </dict> + <key>ID</key> + <integer>600</integer> + <key>Points</key> + <array> + <string>{391.967, 181.201}</string> + <string>{395.025, 167.693}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>605</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>601</integer> + <key>Points</key> + <array> + <string>{391.967, 181.201}</string> + <string>{385.174, 161.26}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>605</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>602</integer> + <key>Points</key> + <array> + <string>{419.142, 172.196}</string> + <string>{418.463, 156.114}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>603</integer> + <key>Points</key> + <array> + <string>{405.555, 183.774}</string> + <string>{419.141, 172.517}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>604</integer> + <key>Points</key> + <array> + <string>{391.967, 181.201}</string> + <string>{405.555, 184.096}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>605</integer> + <key>Points</key> + <array> + <string>{385.174, 175.09}</string> + <string>{391.967, 181.201}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>611</integer> + <key>Info</key> + <integer>1</integer> + </dict> + <key>ID</key> + <integer>606</integer> + <key>Points</key> + <array> + <string>{418.463, 156.114}</string> + <string>{395.025, 167.693}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>610</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>607</integer> + <key>Points</key> + <array> + <string>{395.025, 167.693}</string> + <string>{405.554, 172.518}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>611</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>610</integer> + <key>Info</key> + <integer>1</integer> + </dict> + <key>ID</key> + <integer>608</integer> + <key>Points</key> + <array> + <string>{405.555, 172.517}</string> + <string>{418.463, 156.114}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>609</integer> + <key>Points</key> + <array> + <string>{385.174, 161.26}</string> + <string>{385.174, 174.769}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>612</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>610</integer> + <key>Points</key> + <array> + <string>{403.517, 149.681}</string> + <string>{418.463, 156.114}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>612</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>611</integer> + <key>Points</key> + <array> + <string>{385.174, 161.26}</string> + <string>{395.025, 167.693}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>612</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>612</integer> + <key>Points</key> + <array> + <string>{385.174, 161.26}</string> + <string>{403.517, 149.681}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>596</integer> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>613</integer> + <key>Points</key> + <array> + <string>{413.677, 154.054}</string> + <string>{433.069, 149.038}</string> + <string>{466.357, 157.722}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>610</integer> + <key>Position</key> + <real>0.67979449033737183</real> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{471.049, 153.229}, {16.3664, 26.7778}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>HFlip</key> + <string>YES</string> + <key>ID</key> + <integer>614</integer> + <key>Rotation</key> + <real>209.84246826171875</real> + <key>Shape</key> + <string>RightTriangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>95</real> + <key>GradientColor</key> + <dict> + <key>b</key> + <string>0.666667</string> + <key>g</key> + <string>0.666667</string> + <key>r</key> + <string>0.666667</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{456.226, 38.065}, {18.3427, 17.3681}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>615</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{458.604, 42.246}, {18.3427, 17.3681}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>616</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{461.661, 45.784}, {18.3427, 17.3681}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>617</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{464.378, 49.161}, {18.3427, 17.3681}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>618</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>619</integer> + <key>Points</key> + <array> + <string>{435.574, 66.529}</string> + <string>{440.74, 53.974}</string> + <string>{453.721, 48.372}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{450.157, 96.067}, {13.5872, 47.6015}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>621</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{431.283, 79.02}, {13.5872, 47.6015}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>622</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{412.41, 61.974}, {13.5872, 47.6015}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>623</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{393.536, 42.033}, {13.5872, 47.6015}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>624</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>620</integer> + </dict> + </array> + <key>ID</key> + <integer>594</integer> + </dict> + <dict> + <key>Bounds</key> + <string>{{305, 199.126}, {104, 19}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>15</real> + </dict> + <key>ID</key> + <integer>496</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs32 \cf0 PolygonPack}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> + <string>{{379.717, 16.851}, {118.733, 169.774}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>526</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{90.0058, 449.728}, {84, 19}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>15</real> + </dict> + <key>ID</key> + <integer>427</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs32 \cf0 Rendering}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> + <string>{{131.556, 331.125}, {73.0662, 69.4796}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>428</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Frame\ +Buffer}</string> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>428</integer> + </dict> + <key>ID</key> + <integer>429</integer> + <key>Points</key> + <array> + <string>{90.6577, 287.716}</string> + <string>{140.012, 295.354}</string> + <string>{153.886, 330.196}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>430</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{57.3286, 269.427}, {32.3408, 31.2658}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>430</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf0 SPU}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{61.5206, 276.954}, {32.3408, 31.2658}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>431</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{66.9106, 283.323}, {32.3408, 31.2658}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>432</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{71.7026, 289.403}, {32.3408, 31.2658}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>433</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{48, 255}, {168.012, 187.415}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>434</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>426</integer> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{85.8221, 199.126}, {105, 19}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>15</real> + </dict> + <key>ID</key> + <integer>626</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs32 \cf0 Scene Graph}</string> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Bounds</key> + <string>{{92.3239, 67.912}, {8.14233, 10.0215}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>628</integer> + <key>Rotation</key> + <real>90</real> + <key>Shape</key> + <string>HorizontalTriangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>AllowToConnect</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>629</integer> + <key>Points</key> + <array> + <string>{96.5696, 75.998}</string> + <string>{101.566, 68.749}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>AllowToConnect</key> + <false/> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>630</integer> + <key>Points</key> + <array> + <string>{91.5446, 68.852}</string> + <string>{96.6355, 75.794}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>0</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{96.4752, 66.009}, {5.09091, 2.75653}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>631</integer> + <key>Shape</key> + <string>SemiCircle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{91.3843, 66.009}, {5.09091, 2.75653}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>632</integer> + <key>Shape</key> + <string>SemiCircle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>627</integer> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>641</integer> + </dict> + <key>ID</key> + <integer>633</integer> + <key>Points</key> + <array> + <string>{88.9501, 143.997}</string> + <string>{118.605, 128.341}</string> + <string>{155.135, 144.13}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>650</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>643</integer> + </dict> + <key>ID</key> + <integer>634</integer> + <key>Points</key> + <array> + <string>{106.032, 75.7234}</string> + <string>{140.784, 52.133}</string> + <string>{176.7, 79.4162}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>651</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>646</integer> + </dict> + <key>ID</key> + <integer>635</integer> + <key>Points</key> + <array> + <string>{100.577, 41.5559}</string> + <string>{130.366, 36.802}</string> + <string>{175.285, 42.1223}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>652</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>644</integer> + </dict> + <key>ID</key> + <integer>636</integer> + <key>Points</key> + <array> + <string>{176.054, 89.1448}</string> + <string>{155.305, 100.179}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>643</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>645</integer> + </dict> + <key>ID</key> + <integer>637</integer> + <key>Points</key> + <array> + <string>{191.863, 89.1877}</string> + <string>{212.198, 100.136}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>643</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>642</integer> + </dict> + <key>ID</key> + <integer>638</integer> + <key>Points</key> + <array> + <string>{187.089, 94.2583}</string> + <string>{201.849, 138.337}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>643</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>641</integer> + </dict> + <key>ID</key> + <integer>639</integer> + <key>Points</key> + <array> + <string>{180.889, 94.2773}</string> + <string>{166.377, 138.318}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>643</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>643</integer> + </dict> + <key>ID</key> + <integer>640</integer> + <key>Points</key> + <array> + <string>{183.967, 53.1335}</string> + <string>{183.967, 74.954}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>646</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{155.57, 138.676}, {15.4585, 17.9655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>641</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0.4</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{197.241, 138.676}, {15.4585, 17.9655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>642</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.25098</string> + <key>g</key> + <string>0.501961</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{176.238, 75.954}, {15.4585, 17.9655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>643</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.501961</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>0.25098</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{139.662, 95.404}, {15.4585, 17.9655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>644</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{212.364, 95.404}, {15.4585, 17.9655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>645</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{176.238, 34.168}, {15.4585, 17.9655}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>646</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{37.4042, 81.345}, {51.7715, 7.18377}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>647</integer> + <key>Rotation</key> + <real>105.71257781982422</real> + <key>Shape</key> + <string>RoundRect</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{91.9967, 81.345}, {51.7715, 7.18377}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>648</integer> + <key>Rotation</key> + <real>74.287422180175781</real> + <key>Shape</key> + <string>RoundRect</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{69.2129, 141.609}, {59.8852, 12.0979}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>649</integer> + <key>Rotation</key> + <real>90</real> + <key>Shape</key> + <string>RoundRect</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0.501961</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{52.0742, 141.609}, {59.8852, 12.0979}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>650</integer> + <key>Rotation</key> + <real>90</real> + <key>Shape</key> + <string>RoundRect</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.4</string> + <key>g</key> + <string>0.4</string> + <key>r</key> + <string>0.4</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{75.9678, 59.046}, {29.2367, 54.3244}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>651</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.501961</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>0.501961</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{81.5127, 31.601}, {18.1469, 23.0986}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>652</integer> + <key>Shape</key> + <string>Circle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>0</string> + </dict> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{40.6442, 16.851}, {195.356, 169.774}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>653</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>625</integer> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>493</integer> + </dict> + <key>ID</key> + <integer>51</integer> + <key>Points</key> + <array> + <string>{439.083, 101.738}</string> + <string>{496.989, 130.934}</string> + <string>{463.544, 259.721}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>526</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>526</integer> + </dict> + <key>ID</key> + <integer>22</integer> + <key>Points</key> + <array> + <string>{236.482, 74.1214}</string> + <string>{308, 54}</string> + <string>{379.247, 79.9468}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>653</integer> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>GuidesLocked</key> + <string>NO</string> + <key>GuidesVisible</key> + <string>YES</string> + <key>HPages</key> + <integer>1</integer> + <key>ImageCounter</key> + <integer>19</integer> + <key>IsPalette</key> + <string>NO</string> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>レイヤー 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict/> + <key>LinksVisible</key> + <string>NO</string> + <key>MagnetsVisible</key> + <string>NO</string> + <key>MasterSheet</key> + <string>マスター 1</string> + <key>MasterSheets</key> + <array> + <dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>AutoAdjust</key> + <true/> + <key>CanvasColor</key> + <dict> + <key>w</key> + <string>1</string> + </dict> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>CanvasScale</key> + <real>1</real> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>DisplayScale</key> + <string>1 cm = 1 cm</string> + <key>GraphicsList</key> + <array/> + <key>GridInfo</key> + <dict/> + <key>HPages</key> + <integer>1</integer> + <key>IsPalette</key> + <string>NO</string> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>レイヤー 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict/> + <key>Orientation</key> + <integer>2</integer> + <key>OutlineStyle</key> + <string>Basic</string> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>マスター 1</string> + <key>UniqueID</key> + <integer>1</integer> + <key>VPages</key> + <integer>1</integer> + </dict> + </array> + <key>ModificationDate</key> + <string>2009-02-15 14:35:04 +0900</string> + <key>Modifier</key> + <string>Wataru MIYAGUNI</string> + <key>NotesVisible</key> + <string>NO</string> + <key>Orientation</key> + <integer>2</integer> + <key>OriginVisible</key> + <string>NO</string> + <key>OutlineStyle</key> + <string>Basic</string> + <key>PageBreaks</key> + <string>YES</string> + <key>PrintInfo</key> + <dict> + <key>NSBottomMargin</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string> + </array> + <key>NSLeftMargin</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string> + </array> + <key>NSPaperName</key> + <array> + <string>string</string> + <string>iso-a4</string> + </array> + <key>NSPaperSize</key> + <array> + <string>size</string> + <string>{595.2, 841.8}</string> + </array> + <key>NSRightMargin</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string> + </array> + <key>NSTopMargin</key> + <array> + <string>coded</string> + <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFklwCG</string> + </array> + </dict> + <key>ReadOnly</key> + <string>NO</string> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>キャンバス 1</string> + <key>SmartAlignmentGuidesActive</key> + <string>YES</string> + <key>SmartDistanceGuidesActive</key> + <string>YES</string> + <key>UniqueID</key> + <integer>1</integer> + <key>UseEntirePage</key> + <true/> + <key>VPages</key> + <integer>1</integer> + <key>WindowInfo</key> + <dict> + <key>CurrentSheet</key> + <integer>0</integer> + <key>DrawerTab</key> + <string>Outline</string> + <key>DrawerWidth</key> + <real>209</real> + <key>Frame</key> + <string>{{159, -24}, {592, 746}}</string> + <key>VisibleRegion</key> + <string>{{0, 0}, {577, 632}}</string> + <key>Zoom</key> + <real>1</real> + </dict> +</dict> +</plist>
--- a/presen/osc2010.html Fri Oct 01 20:32:33 2010 +0900 +++ b/presen/osc2010.html Sat Oct 02 01:09:44 2010 +0900 @@ -76,33 +76,178 @@ </ul> </font> </li> + +<div class="slide"> +<h1>発表概要</h1> +<p>PS3 ゲーム開発用フレームワーク <span class="text-maroon">Cerium</span> の紹介.</p> +<p>Linda...</p> +</div> + +<div class="slide" id="id17"> +<h1>Cerium を用いたゲーム開発</h1> +<div align="center" class="align-center"><img alt="images/cerium_game.jpg" class="align-center" src="images/cerium_game.jpg" style="width: 450px;" /></div> +<div align="center"> + SuperDandy3D +</div><ul class="simple"> +<li>3D シューティングゲーム</li> +<li>Cerium を用いて学生が作成</li> +<li>ジョイスティックやキーボードでの操作が可能<ul> +<li>SDL を用いて入力値を取得している</li> +</ul> +</li> +</ul> +</div> + + +<!-- section:Blender --> <li class="slide"> -<h1>ゲームの作り方</h1> -<p>ゲームとは: 3Dモデルのレンダリング & 操作</p> +<h1>3Dモデル</h1> +<p>ポリゴン: 3つの座標によって表現される三角平面.</p> +<p>テクスチャ: ポリゴンに貼られた2Dの画像</p> +<p>3D オブジェクト: ポリゴンが集まってできた一つのブジェクト</p> +<img src=""/> +</li> +<li class="slide"> +<h1>3Dモデルの作成</h1> +<p>Blender: フリーの高機能なモデリングツール</p> + +<img src=""/> +</li> + +<div class="slide"> +<h1>モデルをCeriumに読ませる.</h1> <img src="photo/cerium_sg_tree.jpg" alt="sg" > +<p>3Dオブジェクトの作成 Blender. 生成したオブジェクトをXMLに変換.</p> +<p>Ceriumでは, オブジェクトをSceneGraphと呼ばれるツリー構造で保持.</p> +</div> + +<!-- section:Cerium --> + <li class="slide"> -<h1>Blender から SceneGraph 用の xml 生成</h1> -PythonScript の導入<br> -<p><ol><br> -<li> Blender をダウンロードしてインストール</li><br> -<li> export_xml.py を用意する</li><br> -<li>"/Applications/blender-version/blender.app/Contens/MacOS/.blender/scripts<br> -"<br> -<pre> 以下にexport_xml.py をコピー</li><br> +<h1>Cellとは</h1> + +<big>Cell</big>とはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ<br><br> +Cellは1基の制御系のプロセッサコア<u>PPE</u>と、8基の演算系プロセッサコア<u>SPE</u>で構成される(Ceriumで扱えるSPEの数は6基)。 +PPEよりもSPEが高速なので、1SPE 上で実行するだけでも意味がある。 +それぞれ高速なバスで接続されている<br><br> + +<table height="100%" width="100%" border="0"> +<tr><td align="center" valign="middle"> +<img src="gazo/cell1.png" style="width: 40%%"></td></tr> +</table> + +<!--<img src="gazo/cell1.png" style="width: 45%%"><br>--> +</li> + +<div class="slide"> +<h1>Ceriumとは</h1> +<big>Cerium</big>とは当研究室で開発したゲーム開発用フレームワークである<br><br> + +<u>Task Manager</u><br> + タスクと呼ばれる分割されたプログラムを管理する<br> + +<u>Scene Graph</u><br> + ゲーム中のオブジェクトの振る舞いや、ルールを管理する。 + +<u>Rendering Engine</u><br> + Cerium独自に開発した描画用のエンジン + +<br><br> +の3つの要素から構成される。<br><br> +Ceriumは PS3/Cell、linux, macosx 上で動作する。 + +</div> + +<div class="slide"> +<h1>Rendering Engineの構成</h1> +<p class="ex2">Rendering Engineは主に3つのタスクから構成されている</p> + +<u>CreatePolygonタスク</u><br> + モデリングデータからポリゴンを生成するタスク<br> +<u>CreateSpanタスク</u><br> + 生成されたポリゴンを水平な直線(Span)に分割するタスク<br> +<u>DrawSpanタスク</u><br> + Spanのデータを元に、画面に描画するタスク<br> + +</div> + +<div class="slide"> +<h1>Rendering Engineの流れ</h1> + +<img src="gazo/rendering1.png" style="display:block; width: 60%; margin: auto;"> + +<u><big>CreatePolygon</big></u>:<br> +SceneGraph をもとに回転や並行移動したポリゴンを、モデルデータから生成するタスク<br> +ポリゴンは三角形である<br> +回転や平行移動はSceneGraphが持っている変換行列を用いる +</div> + +<div class="slide"> +<h1>Rendering Engineの流れ</h1> + +<img src="gazo/rendering2.png" style="display:block; width: 60%; margin: auto;"> + +<div style="float: left; width: 50%;"><u><big>CreateSpan</big></u>:<br> +三角形のポリゴンを線に分割するタスク。 +生成されたポリゴンを水平な直線(Span)の集合へと分割する<br> +Spanとは1ドット単位で分割された線 +</div> + +<img src="gazo/span2.png" style="display:block; width: 38%; float: right; margin-top:5%"> + + +</div> + +<div class="slide"> +<h1>Rendering Engineの流れ</h1> +<br> +<img src="gazo/rendering3.png" style="display:block; width: 65%; margin: auto;"> + +<u><big>DrawSpan</big></u>:<br> +Spanを画面へ描画するタスク<br> +Spanを1Dotずつ見ていき、対応する画面の1Dotに色をつける<br> +色はSpanに対応する画像の色をみて決める +</div> + +<li class="slide"> +<h1>SceneGraph</h1> +<img src="photo/cerium_sg_tree.jpg" alt="sg" > +<p>Blenderで生成した3Dモデルを独自のXML形式で出力.</p> +<p></p> +<p>SceneGraph の各ノードには <font color="red">MoveTask, Collision Task</font> がある.</p> </pre> -<li>Blender を起動すると File -> Export に Libps3 (.xml) が追加される</li><br> -</ol><br> -<p>ゲームの初期化部分でcrateFromXMLfileを呼ぶ<br> -<font size="4"><pre><br> -void<br> -game_init(TaskManager *manager, int bg)<br> -{<br> -<pre> sgroot->createFromXMLfile(manager, "xml_file/SG.xml");<br> +</li> + +<li class="slide"> +<h1>SceneGraph と Rendering Engine</h1> +<p><pre> SceneGraph -> SceneGraph<br> + SceneGraph -> Polygon<br> + Polygon -> Span Pack<br> + Span Pack を Texture を使って Rendering<br> + これらを大きく並列に実行する<br> + Rendering は細かく並列に実行する<br> </pre> -...<br> -</pre></font><br> +</li> +<li class="slide"> +<h1>SceneGraph と Rendering Engine</h1> +<p>1 dot 1 dot SPUが書いていく<br> +<p><td><img src="photo/rendering.png" alt="rendering" ></td><br> <p></li> <li class="slide"> +<h1>Rendering Task</h1> +SG2PP<br> +<ul><li> SceneGraph を操作後、ポリゴンに変換し PolygonPack (ポリゴンの集合)を生成する +</li> +PP2SP<br> +<li> ポリゴンの中から、Span (ポリゴン内にあるx軸に水平な線分) を抽出し、 SpanPack (Span の集合)を生成する +</li> +DrawSpan<br> +<li> Span を使って 1 ラインずつ FrameBuffer に描画していく +</li> +<p></ul> +</li> + +<li class="slide"> <h1>PlayStation3 と Cell</h1> <p> <ul> @@ -131,22 +276,6 @@ </li> <li class="slide"> -<h1>並列プログラムとは</h1> -<ul> - <li>取るに足らないようなプログラムでも並列に実行する必要がある。</li><br> - <li>PPEがとても遅いので、SPEで実行するべきである。</li><br> - <li>例えば、<font color="orange">Word count</font> </li><br> -</ul> -</li> - -<li class="slide"> -<h1>プログラムを Task に分割</h1> -<p>Task には依存関係がある(整合性を保つために)<br> -<p><font color="orange">Open/CL , Spurs Engine </font><br> -<p> -</li> - -<li class="slide"> <h1>並列性</h1> <p>並列度を維持するには</p> <ul> @@ -210,20 +339,7 @@ SPUに入り切らない巨大なTaskでも実行できる<br> </pre> </li> -<li class="slide"> -<h1>SceneGraph</h1> -<pre> 階層化された3Dオブジェクト<br> - 子供の向きを決定する変換行列<br> - Camera<br> - 背景<br> - 入力デバイス<br> -</pre> -SceneGraph のノードには、<br> -<pre> MoveTask<br> - Collision Task <br> - がある<br> -</pre> -</li> + <li class="slide"> <h1>ゲームとは、</h1> <p><pre> SceneGraph を<br> @@ -243,46 +359,7 @@ </pre> だけを書けば、あとは、Cell が自動的に並列に実行してくれる<br> <p></li> -<li class="slide"> -<h1>Task の作り方</h1> -SchedTask を継承した class を作る<br> -<pre><br> -class SpeTask : public SchedTask {<br> -<pre> SchedConstructor( SpeTask );<br> - int run(TaskManager *manager, void *rbuf, void *wbuf);<br> -</pre> -};<br> -</pre><br> -<p>run 関数は Task における main 関数のようなもの<br> -SchedConstructor() で class 名を登録する<br> -(C++のnew を使うとメモリを食われる...)<br> -<p>SchedRegisterTask(TASK_SPE, SpeTask) で SpeTask に TASK_SPE という ID をつけて<br> -登録します<br> -<p></li> -<li class="slide"> -<h1>Task の作り方(Con't)</h1> -<pre><br> -/* 先ほど登録した ID を指定して Task を生成 */<br> -HTaskPtr task = manager->create_task(TASK_SPE);<br> -<p>/* 入出力先の指定 */<br> -task->add_inData(rbuff, rbuff_SIZE);<br> -task->add_outData(wbuff, wbuff_SIZE);<br> -<p>/* CPU の指定 */<br> -task->set_cpu(SPE_ANY);<br> -<p>/* Task の投入 */<br> -task->spawn();<br> -</pre><br> -<p></li> -<li class="slide"> -<h1>Task の作り方(Con't)</h1> -Task は依存関係を記述する事ができる<br> -<pre><br> -/* taskB は taskA が終わるまで待つ */<br> -taskB->wait_for(taskA);<br> -<p>/* taskC は taskB が終わるまで待つ */<br> -taskC->wait_for(taskB);<br> -</pre><br> -<p></li> + <li class="slide"> <h1>並列アーキテクチャは並列でないと...</h1> 特に、Cell/PS3 は、SPUで実行しないとだめ<br> @@ -297,95 +374,8 @@ Task 同士が、同期を行なう<br> </pre> </li> -<li class="slide"> -<h1>Cerium Engine での同期</h1> -<p><pre> Task 内では同期はしない<br> - Local Storage/専有したメインメモリしか使わない<br> - Task が終了した時に、Single Thread で動いているPPE<br> - がデータの整理/同期を行なう<br> - Task 側では、Task の生成は行なわない<br> - Task の post_func (continuation) で、Taskを生成する<br> -</pre> -</li> -<li class="slide"> -<h1>SPE Task, PPE Task</h1> -<pre> Task 内で生成しても即座には実行されない<br> - Task 終了時に、SPEに送る Task List が作られる<br> - Task List のアドレスがSPEにメールされる<br> - SPEがメールを見て、Task List を読み込み実行する<br> - Task List の読み込みとSPEのTaskの実行は並列<br> - Task List がなくなる(なくなりそうになると)と、<br> - PPEにメールで要求する<br> -</pre> -PPE Task<br> -<pre> SPE Task と互換。メインメモリを自由に参照できる<br> -</pre> -</li> -<li class="slide"> -<h1>Fifo TaskManager</h1> -<p>全部、同じCPU上で実行する。<br> -<p>OS X 上で動作する (Linux でも)<br> -<p>デバッグ用<br> -<p></li> -<li class="slide"> -<h1>MemList と Hash</h1> -<pre> get_segment/put_segment/wait_segement<br> - 明示的にキャッシュ制御する必要がある<br> -</pre> -特に、<br> -<p>Dynamic SPE Task<br> -<pre> SPE上に常駐しないTask<br> - MemList と Hash で管理されている<br> -</pre> -256K (GBAと同じ!?) しかメモリがないので重要<br> -<p></li> -<li class="slide"> -<h1>SPU上でのコード管理</h1> -<pre> GCCのOverlayを使う <br> - Overlay では、異なる場所にコードを置けない<br> - 部分的にPICではなく、絶対参照に変更する<br> - 自分自身へは相対参照。ライブラリへは絶対参照<br> - Perl Script で書き換える<br> -</pre> -</li> -<li class="slide"> -<h1>Task list</h1> -<p><pre> task_list にオブジェクト生成するコードを入れる<br> - オブジェクトが生成されてしまえば、普通に扱える<br> - task 実行中にコードが追い出されることはない<br> - 現在実行中のコード<br> - 次にロードするコード<br> - の二つは必ずメモリ上にある<br> -</pre> -</li> -<li class="slide"> -<h1>SceneGraph と Rendering Engine</h1> -<p><pre> SceneGraph -> SceneGraph<br> - SceneGraph -> Polygon<br> - Polygon -> Span Pack<br> - Span Pack を Texture を使って Rendering<br> - これらを大きく並列に実行する<br> - Rendering は細かく並列に実行する<br> -</pre> -</li> -<li class="slide"> -<h1>SceneGraph と Rendering Engine</h1> -<p>1 dot 1 dot SPUが書いていく<br> -<p><td><img src="photo/rendering.png" alt="rendering" ></td><br> -<p></li> -<li class="slide"> -<h1>Rendering Task</h1> -SG2PP<br> -<ul><li> SceneGraph を操作後、ポリゴンに変換し PolygonPack (ポリゴンの集合)を生成する -</li> -PP2SP<br> -<li> ポリゴンの中から、Span (ポリゴン内にあるx軸に水平な線分) を抽出し、 SpanPack (Span の集合)を生成する -</li> -DrawSpan<br> -<li> Span を使って 1 ラインずつ FrameBuffer に描画していく -</li> -<p></ul> -</li> + +<!-- section:Linda --> <li class="slide"> <h1>Demo</h1>