1 / 25

Computer Graphics from your pockets to your CAVE

Computer Graphics from your pockets to your CAVE. Achille Peternier, Ph. D. Student VRLab, EPFL, Switzerland. Plan. Introduction Goals Our solution System architecture Examples Evaluation/Benchmark Conclusion. 1. Introduction (1). Unique framework for 3D graphics.

lyndon
Download Presentation

Computer Graphics from your pockets to your CAVE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Graphics from your pockets to your CAVE Achille Peternier, Ph. D. Student VRLab, EPFL, Switzerland

  2. Plan • Introduction • Goals • Our solution • System architecture • Examples • Evaluation/Benchmark • Conclusion

  3. 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

  4. 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

  5. 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

  6. 2. Goals (1) Concept Result Project Device Software

  7. 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.)

  8. 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)

  9. 3. Our solution: architecture (1) 3D models Engine API Textures Dynamic scene graph Animations Content adaptation Effects GUI Handheld rendering User application PC rendering CAVE rendering Mental Vision 2D/3D engine

  10. 3. Our solution: architecture (2) Handheld rendering PC rendering Fixed math OpenGL (1.1 -> 2.1) OpenGL|ES (HW/SW) Fixed/Shader pipeline Fixed pipeline F/X Mental Vision 2D/3D engine Mental Vision 2D/3D engine

  11. 3. Our solution: architecture (3) CAVE rendering Network architecture Mental Vision 2D/3D engine

  12. 3. Our solution: architecture (4)

  13. 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

  14. 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!

  15. 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

  16. 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

  17. 3. Our solution: technical details Other 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

  18. 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.

  19. 3. Our solution: benchmark (2) PDA software rendering (OGL|ES Rasteroid 1.0 CL) Screen size: 320x240 Bunny: ~5.9 fps Building: ~9.3 fps V. human: ~6.7 fps

  20. 3. Our solution: benchmark (3) PDA hardware rendering (OGL|ES MBX-lite 1.0 CL) Screen size: 640x480 Bunny: ~23 fps Building: ~34 fps V. human: ~14 fps

  21. 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 fps V. human: ~560 fps

  22. 3. Our solution: benchmark (5) 4 side CAVE rendering (1 server PC, 4 clients) Screen size: 1024x768 (each) Nvidia 9800 GTX Bunny: >1400 fps Building: >1000 fps V. human: ~560 fps 3D rendering 2D GUI

  23. 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”.

  24. 4. Conclusion (2) • Versatility doesn’t need to be sacrificed in the process.

  25. Thank you …questions?

More Related