Computer Graphics from your pockets to your CAVE Achille Peternier, Ph. D. Student VRLab, EPFL,...
-
Upload
job-sparks -
Category
Documents
-
view
216 -
download
0
Transcript of Computer Graphics from your pockets to your CAVE Achille Peternier, Ph. D. Student VRLab, EPFL,...
Computer Graphics from your pockets to your CAVE
Achille Peternier, Ph. D. Student
VRLab, EPFL, Switzerland
Plan
1. Introduction
2. Goals
3. Our solution1. System architecture
2. Examples
3. Evaluation/Benchmark
4. Conclusion
1. Introduction (1)
Unique framework for 3D graphics
handheld devices, PDAs, mobile
phones
UMPCs, low profile PCs
Desktop PCs, modern graphics
accelerators
CAVE systems, multi-display environments
1. Introduction (2)
handheld devices UMPCs
• low resources and computational power• lack of 3D dedicated HW or poor performances
• Intel GMA 900/950 family• OpenGL | ES• OpenGL < 1.5
• closed systems
1. Introduction (3)
Desktop PCs CAVE systems
• Very heterogeneous HW • NVidia, ATI, Intel, …• OpenGL 1.1 -> OpenGL 3.0
• Network architecture (and again heterogeneous HW)• Stereographic rendering cutting performances
2. Goals (2)
• Reducing complexity and development times for cross-device graphics applications
• Making development and porting as simple as possible
• Keeping the same functionalities and performances across different platforms, or let the software automatically adapt it for us (models, GUIs, textures, shaders, etc.)
3. Our solution
• Mental Vision: a cross-device 2D/3D graphics engine:– Very simple interface (good learning curve)
• Maximizing effects reducing lines of code• Minimizing differences among different platforms
– Compact in sizes and fast in speed (important for low profile/mobile devices)
– Robust (consistent results across different devices)
3. Our solution: architecture (1)3D models3D models
TexturesTextures
AnimationsAnimations
EffectsEffects
User application
Mental Vision 2D/3D engine
GUIGUI
Content adaptationContent adaptation
Dynamic scene graphDynamic scene graph
Handheld renderingHandheld rendering
PC renderingPC rendering
CAVE renderingCAVE rendering
Engine APIEngine API
3. Our solution: architecture (2)
Mental Vision 2D/3D engine
Handheld renderingHandheld rendering
Fixed mathFixed math
OpenGL|ES (HW/SW)OpenGL|ES (HW/SW)
Mental Vision 2D/3D engine
PC renderingPC rendering
OpenGL (1.1 -> 2.1)OpenGL (1.1 -> 2.1)
Fixed pipelineFixed pipeline
Fixed/Shader pipelineFixed/Shader pipeline
F/XF/X
3. Our solution: architecture (3)
Mental Vision 2D/3D engine
CAVE renderingCAVE rendering
Network architectureNetwork architecture
3. Our solution: PC example#include <mvisio.h>
int main(int argc, char *argv[]){ MVISIO::init(NULL); MVNODE *bunny = MVISIO::load("bunny.mve"); MVISIO::clear(true, true, true); MVISIO::begin3D(NULL); bunny->pass(); MVISIO::end3D(); MVISIO::swap(); MVISIO::free(); return 0;}
Initialize MVisio (NULL means auto-setup)
Load a scene from native format
Clear buffers, start a 3D rendering, tell MVisio to render the bunny entity, execute the rendering, swap back to front buffer
Free resources
3. Our solution: PDA example#define MV_PDA#include <mvisio.h>
int main(int argc, char *argv[]){ MVISIO::init(NULL); MVNODE *bunny = MVISIO::load("bunny.mve"); MVISIO::clear(true, true, true); MVISIO::begin3D(NULL); bunny->pass(); MVISIO::end3D(); MVISIO::swap(); _sleep(5000); MVISIO::free(); return 0;}
Just define that before including MVisio, that’s all!
3. Our solution: CAVE example#define MV_CAVE#include <mvisio.h>
int main(int argc, char *argv[]){ MVCLIENT *front = new MVCLIENT(); front->set IP(“192.168.0.1”); front->setID(MV_FRONT);
MVCLIENT *right = new MVCLIENT(); right->set IP(“192.168.0.2”); right->setID(MV_RIGHT); // …
MVISIO::init(NULL); MVNODE *bunny = MVISIO::load("bunny.mve");
Define that first
Add CAVE sides here
3. Our solution: CAVE example
MVCLIENT::putUser(1.2, 1.6, 1.2);
MVISIO::clear(true, true, true); MVISIO::begin3D(NULL); bunny->pass(); MVISIO::end3D(); MVISIO::swap(); _sleep(5000); MVISIO::free(); return 0;}
Specify user’s head position in CAVE relative coordinates
3. Our solution: technical detailsOther aspects/details (like engine expansion, MR/VR related aspects, corollary
tools, plugins, CAVE calibration, etc.):
• A. Peternier, F. Vexo, D. Thalmann, The Mental Vision framework: a platform for teaching, practicing and researching with Computer Graphics and Virtual Reality, LNCS Transactions on Edutainment, 2008
• A. Peternier, F. Vexo, D. Thalmann, Wearable Mixed Reality System In Less Than 1 Pound, In Proc. of the 12th Eurographics Symposium on Virtual Environments, Lisbon, Portugal, May 2006
• A. Peternier, S. Cardin, F. Vexo, D. Thalmann, Practical Design and Implementation of a CAVE System, 2nd International Conference on Computer Graphics, Theory and Applications, GRAPP 2007, Barcelona, 2007
3. Our solution: benchmark (1)• Simple cross device application tracking fps and using three different models:
• classic static Standford bunny• a building model (using many separated entities and transparencies)• a 86 bones skinned, animated, textured virtual human
• Basic GUI (some text, a couple of buttons)• We want to evaluate speed issues and visual consistency among different platforms.
3. Our solution: benchmark (2)PDA software rendering(OGL|ES Rasteroid 1.0 CL)
Screen size: 320x240
Bunny: ~5.9 fps Building: ~9.3 fpsV. human: ~6.7 fps
3. Our solution: benchmark (3)PDA hardware rendering(OGL|ES MBX-lite 1.0 CL)
Screen size: 640x480
Bunny: ~23 fps Building: ~34 fpsV. human: ~14 fps
3. Our solution: benchmark (4)PC hardware rendering(Nvidia GForce 8800 GT, Core2 Quad @ 2.4 GHz)
Screen size: 640x480
Bunny: >1400 fps Building: >1000 fpsV. human: ~560 fps
3. Our solution: benchmark (5)
2D GUI2D GUI
3D rendering3D rendering4 side CAVE rendering(1 server PC, 4 clients)Screen size: 1024x768 (each)Nvidia 9800 GTX
Bunny: >1400 fps Building: >1000 fpsV. human: ~560 fps
4. Conclusion (1)
• 3D everywhere is possible today by using the correct approach and system architecture.
• Cross-device applications open new scenarios/applications, mainly when porting across different systems can be achieved “for free”.