root/OpenSceneGraph-TrainingMaterials/trunk/Presentations/PortingToOpenSceneGraph/PerformerToOSG.p3d @ 11120

Revision 11120, 5.0 kB (checked in by robert, 4 years ago)

Improved discussion of pfChannel/pfPipe replacements

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2
3<presentation>
4<name>Siggraph Menu</name>
5<textcolor>YELLOW</textcolor>
6<title-settings character_size="0.05"></title-settings>
7<text-settings character_size="0.03.5"></text-settings>
8
9<env>DATA_DIR=../../Data</env>
10
11<path>${DATA_DIR}</path>
12<path>${DATA_DIR}/OpenSceneGraph-Data</path>
13<path>${DATA_DIR}/Images</path>
14<path>${DATA_DIR}/Models</path>
15<path>${DATA_DIR}/Earth</path>
16
17<template_slide name="front">
18  <background>Images/default_blue.jpg</background>
19  <title></title>
20  <base>
21     <click_to_event>Home</click_to_event>       
22     <bullet character_size="0.025" position="0.5 0.02 0.05">Home</bullet>
23     <click_to_event>Next</click_to_event>       
24     <bullet character_size="0.025" position="0.9 0.02 0.05">Next</bullet>
25  </base>
26</template_slide>
27
28<template_slide name="middle">
29  <background>Images/default_blue.jpg</background>
30  <title></title>
31  <base>
32     <click_to_event>Previous</click_to_event>       
33     <bullet character_size="0.025" position="0.1 0.02 0.05">Previous</bullet>
34     <click_to_event>Home</click_to_event>       
35     <bullet character_size="0.025" position="0.5 0.02 0.05">Home</bullet>
36     <click_to_event>Next</click_to_event>       
37     <bullet character_size="0.025" position="0.9 0.02 0.05">Next</bullet>
38  </base>
39</template_slide>
40
41<template_slide name="end">
42  <background>Images/default_blue.jpg</background>
43  <title></title>
44  <base>
45     <click_to_event>Previous</click_to_event>       
46     <bullet character_size="0.025" position="0.1 0.02 0.05">Previous</bullet>
47     <click_to_event>Home</click_to_event>       
48     <bullet character_size="0.025" position="0.5 0.02 0.05">Home</bullet>
49  </base>
50</template_slide>
51
52
53<slide inherit="front">
54<background>Images/default_blue.jpg</background>
55<title> </title>
56<layer>
57<paragraph position="0.5 0.5 0" alignment="CENTER_CENTER" character_size="0.07">
58Performer to OpenSceneGraph</paragraph>
59<image position="0.5 0.90 0" scale="0.55">Images/logops.rgb</image>
60</layer>
61</slide>
62
63<page inherit="middle" title="Similarities">
64
65Scene Graph paradigm
66
67Performance - Solid 60Hz
68
69View Frustum Culling
70
71State Sorting
72
73Scalability :
74
75    Multi-threaded
76    Multi-pipe
77</page>
78
79<page inherit="middle" title="Differences">
80 
81Standard C++
82
83Design Patterns
84
85Extensibility
86
87Support for latest OpenGL vesions/extensions
88
89Licensing - Can't beat Open Source!
90
91Community - OSG 10 times as active
92
93Prospects - OSG is going strong
94
95Market share  - OSG now bigger than rest put together
96
97</page>
98
99<page inherit="middle" title="Nodes">
100 
101pfNode -> osg:::Node
102
103pfGroup -> osg::Group
104
105pfSCS -> osg::Transform
106
107         DataVariance()==STATIC
108                 
109pfDCS -> osg::Transform
110
111         DataVariance()==DYNAMIC
112
113osg::Transform -> osg::MatrixTrasform
114                  osg::PositionAttitudeTransform
115                  osg::AutoTransform
116                  osgSim::DOFTransform
117</page>
118
119<page inherit="middle" title="Nodes cont.">
120 
121pfSwitch -> osg::Switch
122
123         -> osgSim::MultiSwitch         
124
125pfLOD -> osg::LOD
126
127pfClipMap -> no equivilant but...
128
129      we have osg::PagedLOD
130         
131pfScene -> any osg::Node
132
133</page>
134
135
136<page inherit="middle" title="Geometry">
137pfGeoSet -> osg::Geometry
138
139OSG had alternatives:
140
141    osg::Drawable base class
142    osg::ShapeDrawable
143</page>
144
145<page inherit="middle" title="State">
146pfGeoState can be attached to:
147
148    - pfGeode
149    - pfScene
150    - hardwired
151   
152osg::StateAttribute
153    - osg:Drawable
154    - any osg::Node
155    - inheritence top down
156    - flexible
157    - Native multi-texturing
158    - native GLSL support
159    - OpenGL modes decoupled
160</page>
161
162<page inherit="tetamiddle" title="State continued.">
163osg::StateAttribute
164    - Exensible state
165    - Almost all OpenGL state
166   
167osg::State
168    - tracks OpenGL state
169    - per graphics context
170</page>
171
172<page inherit="middle" title="Traversals">
173Performer
174    - App
175    - Cull
176    - Draw
177    - Isect
178   
179OpenSceneGraph
180
181    - UpdateVisitor
182    - EventVisitor
183    - CullVisitor
184    - DrawVisitor
185    - IntersectVisitor   
186    - PickVisitor
187</page>
188
189<page inherit="middle" title="Threading">
190Performer:
191
192    - Multi-buffered
193    - App - frame 1
194    - Cull - frame 2
195    - Draw - frame 3
196    - 3 frame latency
197   
198OpenSceneGraph:
199
200    - Single threaded Update - frame 1
201    - Multi Cull-Draw pairs - frame 1
202    - 1 frame latency
203   
204    - DatabasePaging   
205</page>
206
207<page inherit="middle" title="Application Framework">
208Perfomer:
209
210    - perfly (argggg!!!)
211
212pfChannel -> osg::Camera
213         
214pfPipe -> osg::GraphicsContext
215
216OpenSceneGraph adds osgViewer::View which has a single master Camera, and zero of more slave Cameras that have their
217modelview and projection matrices computed relative to the master.  Ideal for cylindrical displays, caves, power walls
218
219
220</page>
221
222<page inherit="middle" title="Performer to OpenSceneGraph">
223
224
225
226
227Questions?
228
229</page>
230
231</presentation>
Note: See TracBrowser for help on using the browser.