SlideShare une entreprise Scribd logo
1  sur  47
Mental Vision

A Computer Graphics Platform for Virtual
     Reality, Science and Education


               Achille Peternier
                Thesis director:
             Prof. Daniel Thalmann
Plan
• Introduction
   – Context
   – Goals
• Our solution
   –   Architecture and components
   –   MVisio graphics engine
   –   Pedagogical modules
   –   Low-cost CAVE and wearable 3D system
• Results
   – Benchmark
   – Case studies
• Conclusion
Introduction
Introduction - context
Introduction - context
Introduction - context
Introduction - context
   education          wearables              research         immersive graphics




                      Unique framework for 3D graphics




handheld devices     portable PCs      desktop workstations      VR systems
Introduction - goals
Concept
                                        Result



                   Project




          Device
                             Software
Introduction - goals
Concept
                                        Result



                     Project




          Software

                               Device
Introduction - goals
Introduction - goals
Introduction - goals
Our solution
Our solution - architecture



                                                   Corollary tools (low cost
MVisio 3D graphics engine                         CAVE and wearable system)




                            Pedagogical modules
Our solution - mvisio
•   User-friendly API, based on an C++ class-oriented architecture
•   Multi-device rendering on PC, PDA and CAVE (a same source-code compiles everywhere)
•   Multi-platform (Windows, Linux)
•   Full OpenGL and OpenGL|ES support
•   Dynamic scene graph management
•   Dynamic lighting
•   Dynamic soft shadows
•   HDR and bloom lighting
•   Depth of field
•   Vertex and pixel shaders
•   Skinning and animations
•   Particle emitters
•   Terrain engine
•   Video2texture from MPEG1/2 files
•   Loading of scenes directly exported from 3D Studio MAX through a specific plug-in
•   2D GUI system with event handling
•   Loading of complex 2D interfaces from XML files
•   Object picking
•   Support for Head-Mounted Displays (HMD), even on PDA
•   New customizable plug-in objects
Our solution - mvisio
Our solution - mvisio
 Models (.mve)       User application    Videos (.mpg)
Animations (.mva)         (.exe)        Textures/shaders



  CAVE engine          MVisio API           PDA engine



  client/server         PC engine       OpenGL|ES (1.0 CM)
  architecture


Wall          Wall   OpenGL (1.1→1.5)

Wall         Floor
Our solution - mvisio
#include <mvisio.h>
                                                      Initialize MVisio with custom
int main(int argc, char *argv[])                      settings
{
         MVSETTINGS config;
         config.load("configForPC.txt");
                                                           Load a scene (with
         MVISIO::init(&config);
         MVNODE *scene = MVISIO::load("bar.mve");          meshes, lights, textures, etc.)

        MVISIO::clear(true, true);
        MVISIO::begin3D(NULL);
                                                      Clear buffers, start a 3D
          scene->pass();
                                                      rendering, tell MVisio to render
        MVISIO::end3D();
        MVISIO::swap();                               the scene, execute the
                                                      rendering, swap back to front
        MVISIO::free();                               buffer
        return 0;
}                                    Free resources
Our solution – modules
11 pedagogical
demonstrators
Our solution - modules
Lesson slide

                                        Click & drag
                                          controls


Real-time
WYSIWYG                                  Simplified
 display                                 interface




PowerPoint-like
    style
Our solution - modules




Classes            Practicals   Projects
Our solution - cave
Our solution - cave




Shutters and shutter glasses   Red & blue glasses
Our solution - cave
Our solution – cave




Before calibration       After calibration
Our solution - cave
#define MV_CAVE
#include <mvisio.h>
                                                    Tell MVisio you want a CAVE
                                                    rendering
int main(int argc, char *argv[])
{
  MVSETTINGS config;
  config.load("configForCAVE.txt");                     Load CAVE settings from a file
  MVISIO::init(&config);                                (client IP addresses and
  MVNODE *bunny = MVISIO::load("bunny.mve");
                                                        positions)
    MVCLIENT::putUser(1.2, 1.6, 1.2);
                                                   Specify user’s head position in
    MVISIO::clear(true, true, true);
    MVISIO::begin3D(NULL);                         CAVE relative coordinates
      bunny->pass();
    MVISIO::end3D();
    MVISIO::swap();

    _sleep(5000);
    MVISIO::free();
    return 0;
}
Our solution - wearable
See-through
   HMD



                                      VGA signal
                                       adapter




     PDA                                Battery pack
                    Weight ≈ 0.5 kg
Our solution - wearable
#define MV_PDA
#include <mvisio.h>                            Tell MVisio you want a PDA
                                               rendering
int main(int argc, char *argv[])
{
  MVSETTINGS config;
  config.load("configForPDA.txt");                Load PDA settings from a file
  MVISIO::init(&config);
                                                  (portrait/landscape orientation)
  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;
}
Our solution - other
                                3D Studio Max

                                                MVisio application




                     .MVE
               (MVisio Entity file
Our exporter       format)
Results
Results - benchmark
• Simple cross device application tracking fps and using three different models:
     • classic static Stanford 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, code differences and visual consistency
among different platforms
Results - benchmark
               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
Results - benchmark
               PDA hardware rendering
               (OGL|ES MBX-lite 1.0 CL)

               Screen size: 640x480

               Bunny:             ~23 fps
               Building:          ~34 fps
               V. human:          ~14 fps
Results - benchmark
               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
Results - benchmark
                      4 side CAVE rendering
  3D rendering        (1 server PC, 4 clients)
                      Screen size: 1024x768 (each)
                      Nvidia 9800 GTX

             2D GUI   Bunny:             >270 fps
                      Building:          >220 fps
                      V. human:          ~135 fps
Results – student projects
Results – research projects
Results - publications
A. Peternier, F. Vexo, D. Thalmann, The Mental Vision framework: a platform
    for teaching, practicing and researching with Computer Graphics and
    Virtual Reality, LNCS Transaction on Edutainment, 2008

A. Peternier, S. Cardin, F. Vexo, D. Thalmann, Practical Design and
    Implementation of a CAVE system, GRAPP 2007

A. Peternier, F. Vexo, D. Thalmann, Wearable Mixed Reality system in less than
    1 pound, EG Symposium on VR, 2006

A. Peternier, D. Thalmann, F. Vexo, Mental Vision: a Computer Graphics
    teaching platform, Edutainment, LNCS, 2006
Results - dissemination
portable V-Cave           demos for visitors




            VIP events
Conclusion
Conclusion

“from your pocket to your CAVE”
Conclusion

                           VS



• Optimized for speed           • Optimized for robustness
• Specific contexts             • Multi purposes
• Complex to use                • Intuitive
• Expensive                     • Cost efficient
• Limited to experts            • Ideal for students too
Conclusion
Thanks!
From http://www.mechdyne.com/
inline void setPosition(MVVECTOR3 v)
{                                                                                High-level
     #ifdef MV_CAVE                                                           commands are
             MVSETTINGS::sendVector3(MV_SETPOSITION3D, id, v.x, v.y, v.z);
     #endif                                                                  forwarded to the
     position = v;                                                           connected clients
}

inline void setRotation(MVVECTOR3 v)
{
     #ifdef MV_CAVE
             MVSETTINGS::sendVector3(MV_SETROTATION3D, id, v.x, v.y, v.z);
     #endif
     rotation = v;
}

bool pass(MVNODE *node, bool recurse)
{
    #ifdef MV_CAVE
    if (recurse)
          MVSETTINGS::sendCommand(MV_PASS, node->getId());
    #endif
    […]
}
case MV_SETPOSITION3D:                                 …and parsed client-
{                                                      side, then applied to
    MVID id;
    memcpy(&id, data+1, sizeof(MVID));                    the same entity
    MVNODE *_node = MVNODE::findById(id);
    if (_node)
    {
           MVVECTOR3 vector;
           memcpy(&vector, data+5, sizeof(float)*3);
           _node->setPosition(vector);
    }
}
break;
case MV_PASS:
{
    MVID id;
    memcpy(&id, data+1, sizeof(MVID));
    MVNODE *_node = MVNODE::findById(id);
    if (_node)
    {
           _node->pass();
     }
}
break;

Contenu connexe

Similaire à MVisio: A Computer Graphics Platform for Virtual Reality, Science and Education

Google Developer Fest 2010
Google Developer Fest 2010Google Developer Fest 2010
Google Developer Fest 2010Chris Ramsdale
 
Open Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 TutorialOpen Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 Tutorialantiw
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Chris Ramsdale
 
Tutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisationTutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisationRufael Mekuria
 
Using GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with JavaUsing GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with JavaTim Ellison
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloudAaron Carey
 
Droidcon2013 miracast final2
Droidcon2013 miracast final2Droidcon2013 miracast final2
Droidcon2013 miracast final2Droidcon Berlin
 
CG OpneGL 2D viewing & simple animation-course 6
CG OpneGL 2D viewing & simple animation-course 6CG OpneGL 2D viewing & simple animation-course 6
CG OpneGL 2D viewing & simple animation-course 6fungfung Chen
 
Shape12 6
Shape12 6Shape12 6
Shape12 6pslulli
 
AWS_Re_invent_22_VNova.pdf
AWS_Re_invent_22_VNova.pdfAWS_Re_invent_22_VNova.pdf
AWS_Re_invent_22_VNova.pdfV-Nova
 
Google io bootcamp_2010
Google io bootcamp_2010Google io bootcamp_2010
Google io bootcamp_2010Chris Ramsdale
 
Microservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformMicroservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformSunnyvale
 
Optimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and VulkanOptimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and Vulkanax inc.
 
ZCM update VAI Brainforce
ZCM update VAI BrainforceZCM update VAI Brainforce
ZCM update VAI BrainforceRoel van Bueren
 
Project proposal
Project proposalProject proposal
Project proposalMaham Ejaz
 
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...DataStax Academy
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandYan Pritzker
 

Similaire à MVisio: A Computer Graphics Platform for Virtual Reality, Science and Education (20)

Google Developer Fest 2010
Google Developer Fest 2010Google Developer Fest 2010
Google Developer Fest 2010
 
Open Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 TutorialOpen Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 Tutorial
 
JBoss World 2010
JBoss World 2010JBoss World 2010
JBoss World 2010
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
 
Tutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisationTutorial on Point Cloud Compression and standardisation
Tutorial on Point Cloud Compression and standardisation
 
Using GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with JavaUsing GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with Java
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloud
 
Droidcon2013 miracast final2
Droidcon2013 miracast final2Droidcon2013 miracast final2
Droidcon2013 miracast final2
 
CG OpneGL 2D viewing & simple animation-course 6
CG OpneGL 2D viewing & simple animation-course 6CG OpneGL 2D viewing & simple animation-course 6
CG OpneGL 2D viewing & simple animation-course 6
 
Shape12 6
Shape12 6Shape12 6
Shape12 6
 
AWS_Re_invent_22_VNova.pdf
AWS_Re_invent_22_VNova.pdfAWS_Re_invent_22_VNova.pdf
AWS_Re_invent_22_VNova.pdf
 
GWT MVP Case Study
GWT MVP Case StudyGWT MVP Case Study
GWT MVP Case Study
 
Qt Programming on TI Processors
Qt Programming on TI ProcessorsQt Programming on TI Processors
Qt Programming on TI Processors
 
Google io bootcamp_2010
Google io bootcamp_2010Google io bootcamp_2010
Google io bootcamp_2010
 
Microservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformMicroservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud Platform
 
Optimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and VulkanOptimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and Vulkan
 
ZCM update VAI Brainforce
ZCM update VAI BrainforceZCM update VAI Brainforce
ZCM update VAI Brainforce
 
Project proposal
Project proposalProject proposal
Project proposal
 
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On Demand
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

MVisio: A Computer Graphics Platform for Virtual Reality, Science and Education

  • 1. Mental Vision A Computer Graphics Platform for Virtual Reality, Science and Education Achille Peternier Thesis director: Prof. Daniel Thalmann
  • 2. Plan • Introduction – Context – Goals • Our solution – Architecture and components – MVisio graphics engine – Pedagogical modules – Low-cost CAVE and wearable 3D system • Results – Benchmark – Case studies • Conclusion
  • 7. Introduction - context education wearables research immersive graphics Unique framework for 3D graphics handheld devices portable PCs desktop workstations VR systems
  • 8. Introduction - goals Concept Result Project Device Software
  • 9. Introduction - goals Concept Result Project Software Device
  • 14. Our solution - architecture Corollary tools (low cost MVisio 3D graphics engine CAVE and wearable system) Pedagogical modules
  • 15. Our solution - mvisio • User-friendly API, based on an C++ class-oriented architecture • Multi-device rendering on PC, PDA and CAVE (a same source-code compiles everywhere) • Multi-platform (Windows, Linux) • Full OpenGL and OpenGL|ES support • Dynamic scene graph management • Dynamic lighting • Dynamic soft shadows • HDR and bloom lighting • Depth of field • Vertex and pixel shaders • Skinning and animations • Particle emitters • Terrain engine • Video2texture from MPEG1/2 files • Loading of scenes directly exported from 3D Studio MAX through a specific plug-in • 2D GUI system with event handling • Loading of complex 2D interfaces from XML files • Object picking • Support for Head-Mounted Displays (HMD), even on PDA • New customizable plug-in objects
  • 16. Our solution - mvisio
  • 17. Our solution - mvisio Models (.mve) User application Videos (.mpg) Animations (.mva) (.exe) Textures/shaders CAVE engine MVisio API PDA engine client/server PC engine OpenGL|ES (1.0 CM) architecture Wall Wall OpenGL (1.1→1.5) Wall Floor
  • 18. Our solution - mvisio #include <mvisio.h> Initialize MVisio with custom int main(int argc, char *argv[]) settings { MVSETTINGS config; config.load("configForPC.txt"); Load a scene (with MVISIO::init(&config); MVNODE *scene = MVISIO::load("bar.mve"); meshes, lights, textures, etc.) MVISIO::clear(true, true); MVISIO::begin3D(NULL); Clear buffers, start a 3D scene->pass(); rendering, tell MVisio to render MVISIO::end3D(); MVISIO::swap(); the scene, execute the rendering, swap back to front MVISIO::free(); buffer return 0; } Free resources
  • 19. Our solution – modules 11 pedagogical demonstrators
  • 20. Our solution - modules Lesson slide Click & drag controls Real-time WYSIWYG Simplified display interface PowerPoint-like style
  • 21. Our solution - modules Classes Practicals Projects
  • 23. Our solution - cave Shutters and shutter glasses Red & blue glasses
  • 25. Our solution – cave Before calibration After calibration
  • 26. Our solution - cave #define MV_CAVE #include <mvisio.h> Tell MVisio you want a CAVE rendering int main(int argc, char *argv[]) { MVSETTINGS config; config.load("configForCAVE.txt"); Load CAVE settings from a file MVISIO::init(&config); (client IP addresses and MVNODE *bunny = MVISIO::load("bunny.mve"); positions) MVCLIENT::putUser(1.2, 1.6, 1.2); Specify user’s head position in MVISIO::clear(true, true, true); MVISIO::begin3D(NULL); CAVE relative coordinates bunny->pass(); MVISIO::end3D(); MVISIO::swap(); _sleep(5000); MVISIO::free(); return 0; }
  • 27. Our solution - wearable See-through HMD VGA signal adapter PDA Battery pack Weight ≈ 0.5 kg
  • 28. Our solution - wearable #define MV_PDA #include <mvisio.h> Tell MVisio you want a PDA rendering int main(int argc, char *argv[]) { MVSETTINGS config; config.load("configForPDA.txt"); Load PDA settings from a file MVISIO::init(&config); (portrait/landscape orientation) 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; }
  • 29. Our solution - other 3D Studio Max MVisio application .MVE (MVisio Entity file Our exporter format)
  • 31. Results - benchmark • Simple cross device application tracking fps and using three different models: • classic static Stanford 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, code differences and visual consistency among different platforms
  • 32. Results - benchmark 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
  • 33. Results - benchmark PDA hardware rendering (OGL|ES MBX-lite 1.0 CL) Screen size: 640x480 Bunny: ~23 fps Building: ~34 fps V. human: ~14 fps
  • 34. Results - benchmark 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
  • 35. Results - benchmark 4 side CAVE rendering 3D rendering (1 server PC, 4 clients) Screen size: 1024x768 (each) Nvidia 9800 GTX 2D GUI Bunny: >270 fps Building: >220 fps V. human: ~135 fps
  • 38. Results - publications A. Peternier, F. Vexo, D. Thalmann, The Mental Vision framework: a platform for teaching, practicing and researching with Computer Graphics and Virtual Reality, LNCS Transaction on Edutainment, 2008 A. Peternier, S. Cardin, F. Vexo, D. Thalmann, Practical Design and Implementation of a CAVE system, GRAPP 2007 A. Peternier, F. Vexo, D. Thalmann, Wearable Mixed Reality system in less than 1 pound, EG Symposium on VR, 2006 A. Peternier, D. Thalmann, F. Vexo, Mental Vision: a Computer Graphics teaching platform, Edutainment, LNCS, 2006
  • 39. Results - dissemination portable V-Cave demos for visitors VIP events
  • 42. Conclusion VS • Optimized for speed • Optimized for robustness • Specific contexts • Multi purposes • Complex to use • Intuitive • Expensive • Cost efficient • Limited to experts • Ideal for students too
  • 46. inline void setPosition(MVVECTOR3 v) { High-level #ifdef MV_CAVE commands are MVSETTINGS::sendVector3(MV_SETPOSITION3D, id, v.x, v.y, v.z); #endif forwarded to the position = v; connected clients } inline void setRotation(MVVECTOR3 v) { #ifdef MV_CAVE MVSETTINGS::sendVector3(MV_SETROTATION3D, id, v.x, v.y, v.z); #endif rotation = v; } bool pass(MVNODE *node, bool recurse) { #ifdef MV_CAVE if (recurse) MVSETTINGS::sendCommand(MV_PASS, node->getId()); #endif […] }
  • 47. case MV_SETPOSITION3D: …and parsed client- { side, then applied to MVID id; memcpy(&id, data+1, sizeof(MVID)); the same entity MVNODE *_node = MVNODE::findById(id); if (_node) { MVVECTOR3 vector; memcpy(&vector, data+5, sizeof(float)*3); _node->setPosition(vector); } } break; case MV_PASS: { MVID id; memcpy(&id, data+1, sizeof(MVID)); MVNODE *_node = MVNODE::findById(id); if (_node) { _node->pass(); } } break;

Notes de l'éditeur

  1. Thank you for attending my thesis defense and being part of this jury. In this presentation I will summarize the content of our work, called theMental Vision platform.
  2. The outline of my presentation will be as follows:I will first introduce the context and the goals of this thesis.I will then explain the different elements of our contribution and the results we obtained by evaluating them through in vitro and real experiences. I will then conclude this presentation with some final remarks and future perspectives.
  3. Let’s start with the introduction
  4. The universe of hardware conceived or potentially useable for computer graphics and virtual reality is very wide. It ranges from pocket-sized devices (like mobile phones and personal digital assistants) up to room-sized environments like CAVE. Between these two extents, there are a plethora of heterogeneous devices like desktop and portable computers, ultra-mobile PCs, gamingconsoles, dedicated workstations, etc.
  5. The panorama is even wider if we take in the account also software aspects, like different operating systems, different programming interfaces to access low-level 3D acceleration, 3D content editors, file formats to store and transfer 3D content from an application to another one, and so on.
  6. Software developers have to face with this heterogeneous reality when they wantto use these technologies on their projects involving computer graphics and virtual reality.According to the scenario (which could be gaming, research, biomedical imagery, education, simulation, mobile entertainment and many others)a specific set of software tools can be better than another. But a global, passe-partout solution is not available.
  7. In fact, computer graphics and virtual reality lack of a universal solution working through all these devices and contexts. Unlike other computer technology fields, where widely adopted and robust standards exists (like TCP/IP sockets for communications or MySQL for databases). On the other hand, there exist many 3D software frameworks addressing a sub-group of this universe, but they are often oriented towards a specific context (entertainment, simulation) a specific user pool (elite developers and specialists). These frameworks cannot be easily used and adapted to fit into different scenarios. Most of the existing realtime 3D graphics engine privilege speed and performances to versatility and user-friendliness, making them less suited for teaching and research applications.
  8. Usually projects involving computer graphics first select a target device and then which software to use for visualization among the options available on that platform.
  9. With our approach, we wanted to change the point of view. In our case, we preferred to post-pone this choice, by offering users the opportunity to switch from a device to another one later. To improve fruition of our solution for a wider user-pool, we also reduced the complexity of the programming interface to the minimum. Mainly about the modifications required to change platform. This way we wanted to create a software graphics system accessible by both beginners and advanced users, from students to researchers. But still featuring advanced functionalities, just through a less sophisticated interface.
  10. To simplify accessibility to less common, “hostile”, graphics environments, we extended the range of targeted hardware systems to two extents. On one side, we tried to reduce the weight and requirements for mobile 3Dgraphics . We made our framework running also on a wearable setup by using less shock-sensitive and less-encumbering devices than the ones used byprevious solutions.
  11. On the other extent, we created a custom CAVE system by using commodity hardware, in order to reduce its cost. So we tried to find a good compromise between the architecture of professional systemsand low-cost approaches. We fixed most of the problems introduced by non-dedicated hardware through software techniques, integrated in our solution.
  12. This is an overview of the universe targeted by the Mental Vision platform. We don’t pretend to create the ultimate standard about computer graphics frameworks. With our approach we want to show how it is possible to combine opposite characteristics under the same roof. How it is possible to create a platform giving at the same time access to a CAVE and a PDA. How it is possible to give to students and researchers a tool to simplify development of their projects.Since we work each day in research and educational contexts, we oriented our application scenarios towards these twodirections, but our platform is not limited to that and can be used also more globally.As far as I know, we are among the first proposing a graphics framework working on PDA, PC and CAVE under a same interface.
  13. The Mental Vision platform is composed by the elements.Mvisio 3D graphics engine Core unit and common denominator of the whole platform A series of pedagogical modulesDeveloped on top of MvisioInteractive demonstratos of selected topics on CG and VRExample of concrete applications developed through Mvisio, reusable on other projects Corollary toolsa custom CAVE system developed by reducing the hardware costs of its components and by making its utilization more accessibleLight-weight wearable 3D system
  14. Mental Vision: a cross-device 2D/3D graphics engine:Very simple interface (good learning curve)Maximizing effects reducing lines of codeMinimizing differences among different platformsMaking many operations automatic (like resource management, content adaptation, performance tuning)You can start work on the real thing soonerCompact in sizes and fast in speed (important for low profile/mobile devices)Robust (consistent results across different devices)This is just a list of the different features integrated in the engine. I will not enter too much in details: let say that most of them are required to consider Mvisio as a graphics engine
  15. In this slide you can see an example of what Mvisio is capable to do, bringing modern graphics to the different devices targeted. Effects like bloom lighting, depth of field, soft shadowing and high dynamic range are automatically managed by the engine and can be activated or deactivated at will. Despite its simplified interface, Mvisio is not a sandbox preventing the implementation of advanced techniques and algorithms.
  16. The overall Mvisio architecture looks like this. Users can create graphics applications by loading 3D content from files and manipulating them through the Mvisio API. The complexity of Mvisio is then hidden behind the interface, which is the same on the three devices targeted by our solution.If you are on PC, the PC pipeline will be used and images are generated according to the version of OpenGL your machine is running on. More recent computers will benefit from the shader-based pipeline and other optimizations to improve speed and visual appearance. In case of older and less performing machines, Mvisio will use the fixed pipeline. In any case, Mvisio will keep producing results, independently from the hardware: only the quality changes.If you are on PDA, OpenGL ES will be used instead of OpenGL. This pipeline is very close to the fixed pipeline available on older PC. At the time of the creation of our software shaders were not available on mobile devices (but they are since a week, with the new Iphone).On CAVE, Mvisio starts a client/server architecture with one PC per CAVE side. Locally performed graphics instructions are forwarded to the different connected machines, each one running an instance of Mvisio PC.Models, animations and textures are automatically synchronized at startup.In all these three cases, users don’t need to modify their data: Mvisio automatically adapt the content if necessary.
  17. A basic Mvisio-based application looks like this.In few lines of code users can initialize the engine, load a complex scene from an external file (including light sources, meshes, textures, etc.), display it and free resources. Thanks to our simplified interface, it is easy to setup a working 3D environment in a short amount of time.As we will se later, this same piece of code can be quickly modified and adapted to run into our CAVE or on a PDA.
  18. Pedagogical modules are small demos allowing students and teachers to dynamically interact with the algorithms and concepts introduced during the class.They cover several topics, ranging from spline generation to 3D camera manipulations, passing through animation, shading techniques, etc.With our modules we wanted to break the limitations of static images and videos, giving a more interactive support to teachers for their explain.Each module uses the MVisio engine and can be executed on virtually any personal computers, thanks to the characteristics of our graphics engine.Modules are also distributed with their source code, in order to show to students a concrete implementation of the different topics. This approach simplifies the implementation of such techniques into student projects (or any project based on Mvisio).
  19. Typically, modules feature: a screenshot of the lesson slide, to keep a guiding thread with the ex cathedra explainations an intuitive interface (few buttons, click &amp; drag interaction), allowing users to easilychange the different parameters of the algorithms and see the result a powerpoint style, to give a more coherent design to class notes and presentations when they’re started directly from a slide
  20. Our teaching/learning pipeline looks as follows.The teacher uses a module as interactive support during classes to improve his explainations. At home (or remotely, in the case of e-learning), students can download the same module and practice or try to repeat the manipulations seen during the lesson as an exercise.If the technique introduced in the class is also one of the assignments for practical work, students can look at the module source code to figure out how to implement in their projects the same algorithm. Thanks to this approach, we have a unified series of tools ranging from theory to practice. Many assistants in our laboratory are also working with Mvisio for their research projects.This way it is easier for them to help students fixing their problem, since both assistants are students using the same software and don’t need to learn a new one only for teaching activities.
  21. Our CAVE is made by a home-cinema display folded in the shape of a cube. We used nylon wires to fold it on the corners. The floor is made from a white wooden panel. 4 computers (one per side) generate images orchestrated by a server PC.Computers are connected through a private 1 gigabit LAN network. Two beamers are connected to each PC, using dual-output video cards.Up to three users can stay comfortable within the CAVE.Audio is integrated through a standarddolby home-cinema audiosystem.
  22. Stereographic rendering has been implemented in two ways. The easiest one through colored glasses. This solution is very inexpensive and practical, mainly when we have many visitors coming to see demos in our laboratory. The other solution is more elegant and sophisticated. It is based on a very simple principle: two beamers, each one continuously beaming images for one eye. Shutters are put in front of each beamer and synchronized with shutter glasses worn by users. This way we don’t need to rely on expensive projectors with high vertical retrace speeds (like CRT beamers).Separate shutters and shutter glasses are synchronized through an external clock and infrared emitters. By using two projectors instead of one we also improved the overall luminosity of the system, since more lamps to generate light.
  23. Unfortunately, the adoption of commodity hardware and the use of two beamers introduced a series of problems:The main ones are:First: corners curved like parenthesis around nylon wiresSecond: images projected from two beamers were not aligned when superposed on the CAVE sides (even after a fine-tuned calibration of the support)Third: different pixel resolutions, coming from side projectors being rotated by 90 degreesFourth: projectors and room conditions may change over time (because of the humidity, the temperature), so recalibration is often required
  24. We fixed all these problems through a software calibration system.We used render to texture to generate images into textures which were then rendered on a triangle grid following the shape of the CAVE.Control points on the border of these grids allowed to match the irregular curved shape of the CAVE sides.While control points inside the grid allowed to align the image superposition of the two beamers. We developed an application to calibrate the CAVE walls in few minutes. A single user can comfortably select and adapt the different grids from inside the CAVE by using a wireless joypad.
  25. An adaptation for CAVE of the previous source code example looks as follows.Only very small modifications are required. A #define command tells Mvisio to activate the CAVE pipeline of the engine.Information about the amount of CAVE sides to use is stored into a configuration file, which contains also the IP addresses of the different clients. The only important difference is about the putUser method. This procedure specifies the user head position in meters inside the CAVE. This information is used by the graphics engine to compute the correct projection matrices and stereographic rendering.
  26. Our wearable framework is made by a PDA (used as core device), a see-through head-mounted display and some connectivity and power-supply facilities. We had to create a signal adapter since the VGA signal emitted by the PDA was not compatible with the HMD. The entire system weights about half a kilo and can be used for about 2 hours, according to the battery used.
  27. The wearable framework works by using the PDA version of our graphics engine. Porting an Mvisio-based application from PC to PDA is a very easy task, as we can see in this source code example. The code is almost identical to the version for PC.
  28. The Mental Vision platform is completed by some additional tools. One of them is a plugin for 3D studio max. This plugin allows user to export with just one button click, the whole content available in 3D Studio Max (including textures, light sources, meshes, material properties, etc.).Exported files can be directly loaded into Mvisio with just one line of code, as showed in the different source code examples illustrated so far. From the slides you can see how close the scene loaded in Mvisio is to its original in 3d studio max.
  29. To have some technical evaluation of our framework, we developed a benchmark application running on the different devices supported by our solution. The goal of this benchmark is to evaluate the speed, code modifications and image fidelity across the different devices. Unlike other existing benchmarks strongly stressing the hardware to determine which computer can output the higher amount of triangles in millions, our speed indicator is used to show that our approach is giving enough responsiveness on the target system.
  30. These are the results we obtained by running the software version of Mvisio for PDA.It is a bit slow because rendering is not performed through hardware accelerated units. And the computational power of PDA is very limited. Nevertheless, we achieve at least interactive framerates on all the models tested. And this version of Mvisio can be used on any PDA based on Windows Mobile. We tested it on 6 different PDAs and obtained always the same results (with some speed change according to the power of the CPU).
  31. The hardware accelerated version of Mvisio for PDA is obviously performing faster and at an higher screen resolution. Images are more defined than on the previous slide, but they feature the same characteristics and ratio.
  32. Same considerations for the PC version, keeping the same image restitution but, obviously, at higher framerates.
  33. Things are a bit different in the CAVE. Graphics user interfaces are not rendered into the CAVE but kept on the server PC, while all the 3D rendering is executed on the different client PCs. In this case too images are rendered with the same characteristics showed on the previous devices. The speed impact is mainly due to network-oriented synchronization system, waiting for all the 4 CAVE sides to complete their rendering before starting to display a new image.
  34. Our framework has been widely used by students on their class projects (like in the two upper images).We asked them to create a curling simulation (one year) and a snooker table (this year). During these VR projects they had to deal with many aspects:Real-time graphicsBasic physicsStereographic renderingUser input and force feedbackPositional audioGame mechanicsThanks to Mvisio, and unlike during previous years, we released students from the task to create a CG system from scratchThis way they could focus more on the orchestration of the different elements composing user-centric virtual environment instead of learning plain opengl all the time (which is more the goal of computer graphics classes and not virtual reality).Besides class projects, Mvisio has been used also for diploma and master projects, like in the bottom right images to simulate a truck gear box interface with haptic feedback.
  35. Our platform has been used on many research and thesis projects. Researchers took advantage of the different Mvisio characteristics in order to spend less time to satisfy their visualization needs, thus focusing more on their thesis instead of computer graphics. Among the most welcomed features: the integrated graphics interface, easy portability from PC to PDA or from PC to CAVE, and versatility ranging from the creation of CAD-like applications (upper right image) and 3D simulations (bottom right).It is important to mention that these colleagues started to work first with different software and then asked to use Mvisio and were happy of their choice.
  36. Our work has been published into 1 journal and 3 international conferences, and used and cited in many others.
  37. The mental vision platform is also often used to disseminate scientific technologies during special events or doors open. Like in upper left image, where we used a portable adaptation of Mvisio (as a V-Cave) to show anatomical 3d models during a medical event.Or the upper right image, showing young students visiting our laboratory. Or for very important people, like in the last picture, where the former swiss president Pascal Couchepin enjoyed an haptic simulation using Mvisio for visual rendering during the inauguration of one of the EPFL new buildings.
  38. 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”, without major modifications to the project.Creating an high quality CAVE with market level products is possible, easier and less expensive than in the past Most of the hardware problems can be solved through software with a good calibration system and a bit of practical senseModern PDAs are a valid alternative to bring high quality 3D interactive and real-time onboard rendered images to wearable and mobile contextsBut since computational resources are limited: it is important to fine-tuning the software for acceptable frame rates
  39. Client/server network based on TCP/IPOnly high-level commands are sent (“load this model”, “put the light here”, “render this portion of the scene graph”, …)Very small and few packets sent, Nagle disabled MVisio objects have an unique serial numberComputational expensive operations are computed locally on each client (like particles/skinning) and synchronized through unique seeds and timersDynamic texture update is bandwidth consuming (RTP alternative)Dynamic geometry also bandwidth consuming