200 likes | 339 Views
3D Mental Vision. A teaching platform for Computer Graphics and Virtual Reality. Plan. Introduction MVisio modules MVisio engine Conclusion and perspectives. Foreword. Virtual Reality Laboratory (VRLab/EPFL) VRLab mainly involved in virtual humans, virtual crowds, haptic VR.
E N D
3D Mental Vision A teaching platform for Computer Graphics and Virtual Reality
Plan • Introduction • MVisio modules • MVisio engine • Conclusion and perspectives
Foreword • Virtual Reality Laboratory (VRLab/EPFL) • VRLab mainly involved in virtual humans, virtual crowds, haptic VR. • VRLab also in charge to teach Computer Graphics and Virtual Reality to bachelor, master and doctoral students.
What is this Mental Vision? • MVisio is the short name of “Mental Vision” • A set of interactive compact demonstrators (called pedagogical modules) • A programmer-friendly, pedagogical-oriented 2D/3D graphic engine • MVisio is aimed at CG and VR.
MVisio goals • Improve comprehension of abstract notions of 3D Computer Graphics (CG) • Break the limitations of static images and videos • Bring interactivity and direct experience about the learned topics • Offer to advanced student a comfortable development framework for their projects (VR)
MVisio goals • Unify the work, to avoid unprofessional copy/pasted course content and a unique, common graphic engine to be used by students and assistants • Reduce students’ time involved on corollary aspects during their projects (weeks spent learning how to configure the APIs, adapting/importing 3D models, brief: solving CG problems on a VR project)
MVisio modules • Modules are small demos allowing students and teachers to dynamically interact with the algorithms and concepts introduced during the class • Modules uses the MVisio engine and we provide the source-code to students • Modules run virtually on every pc/laptop (MVisio automatically tunes itself)
MVisio modules • Typically, a module features: • a screenshot of the lesson slide • an intuitive and user-friendly interface (few buttons, click & drag interaction) • Students can practice with modules directly on their notebooks or PDAs during the lessons • Modules can be directly inserted in PowerPoint presentations or launched separately
MVisio modules Lesson slide Click & drag controls Real-time WYSIWYG display Simplified interface PowerPoint-like style
MVisio graphic engine • Technically spoken, MVisio is: • Built in C++ on the top of OpenGL, OpenGL|ES and SDL (Simple DirectMedia Library) • Just a 200 KB DLL • Capable to display a complex textured scene with dynamic lighting and shadows in just 7 lines of code
MVisio graphic engine • MVisio directly support VR specific devices, like stereographic rendering on HMDs or camera handling through motion/rotation sensors • MVisio allows students to immediately start using the different devices we dispose in our lab
MVisio graphic engine • MVisio reduces: • Lines of code to write to obtain results • Complexity of the code itself, by automatically optimizing the scene-graph, managing the resources, sorting, etc. • Data import, through a powerful plugin for 3D Studio Max and a plethora of 3D objects, scenes, characters and animations ready to be used
MVisio graphic engine 3D Studio Max MVisio application .MVE (MVisio Entity file format) Our exporter
MVisio graphic engine #include <mvisio.h> #pragma comment(lib, "mvisio.lib") #pragma comment(lib, "sdl.lib") #pragma comment(lib, "sdlmain.lib") int main(int argc, char *argv[]) { MVISIO::init(NULL); MVNODE *bar = MVISIO::load("bar.mve"); MVISIO::clear(true, true, true); MVISIO::begin3D(NULL); bar->pass(); MVISIO::end3D(); MVISIO::swap(); _sleep(5000); MVISIO::free(); return 0; } Initialize MVisio (NULL means autosetup) Load the scene exported from 3D Studio MAX Clear buffers, start a 3D rendering, tell MVisio to render the bar entity, execute the rendering, swap back to front buffer Free resources
MVisio graphic engine • MVisio used on student projects:
Current status • Modules actually available: • Mixing parabola • Hermite interpolation • Kochanek-Bartels splines • Bézier splines • Bézier surfaces • Camera handling • Sweeping techniques • The graphic engine is currently used on several on-going student projects
Currentstatus MVisio engine features: • Extremely user-friendly API, based on an C++ class-oriented architecture • Multi-device rendering on PC, PDA and CAVE, without changing the source code • Full OpenGL and OpenGL|ES support • Dynamic scene graph management • Dynamic lighting and real-time shadows • Vertex and pixel shaders • Skinning and animations • Particle emitters • Terrain engine • Loading of scenes directly exported from 3D Studio MAX through a specific plugin • 2D GUI system with event handling • Object picking • Support for Head-Mounted Displays (HMD) • Expandability through new customizable objects directly pluggable to the MVisio core
Current status • MVisio now runs also on CAVE systems (75% done)
Next steps • Add more modules, mainly on advanced topics like inverse kinematics, skeletal animation, … • Bring more modules to handheld devices, more comfortable to use during the lessons
Try MVisio! http://vrlab.epfl.ch http://vrlab.epfl.ch/~apeternier