180 likes | 198 Views
GRAPHITE , a research platform for 3D modeling and texturing. Name: Ben Wan Chiu LI Position: Associate Engineer Project: ISA INRIA Lorraine LORIA. Content. 1. Introduction to GRAPHITE 2. Overview of GRAPHITE 3. Recent improvements in GRAPHITE
E N D
GRAPHITE, a research platform for 3D modeling and texturing Name: Ben Wan Chiu LI Position: Associate Engineer Project: ISA INRIA Lorraine LORIA
Content 1. Introduction to GRAPHITE 2. Overview of GRAPHITE 3. Recent improvements in GRAPHITE 4. On going development of GRAPHITE
Introduction to Graphite • GRAPHITE is a research platform for 3D modeling and texturing • User-friendly GUI that is described by a XML file. Appearance of the GUI could be changed without recompiling. • Project Development • In C++ • Mainly under Linux and IRIX • Binary executable also available for MS Windows
Introduction to Graphite (2) • The current version contains tools for: • Interactive constrained texturing of polygonal models • Multi-resolution analysis, decimation of triangulated surfaces • Volume rendering and iso-surfaces extraction for polyhedral grids
Introduction to Graphite (3) • Who are the users of GRAPHITE? • Bruno Levy(Senior Researcher INRIA), for his researches on numeric geometry. • Nicolas Ray (PhD student), for his researches on the generation of the atlas of textures. • Jean-Christophe Ulysse (PhD student), for his researches on interactive visualization of large scenes. • Gilles Depret (post-doc), for the volume visualisation volumique of the fusion of plasmas, in cooperation with the LPMIA (physique des plasmas a Nancy), Applied Math team in Strasbourg, and CEA in Cadarache. • Guillaume Caumon (PhD student at l’ecole de geologie, Gocad, application on petrol exploration), for volume visualization for the oil industry.
Introduction to Graphite (4) • Radia Bouhtou (stagiare DESS), for the optimization of deformation caused by a parametrisation. • Arghyro Paouri (dept. communication de l'Inria Rocq.) : realisation of a court metrage presenting the technologie of morphing of textures. • Thibaut Neiger (stagiare IUT) who develops some interactive 3D tools.
Overview of GRAPHITE • Based on a XML dialect called GXML. <?xml version="1.0" ?> <MainWindow name="hello" id="main"> <PushButton name=”Hello world!" id="button" help_string=”test button" width=”50" height=”20” /> <SignalConnect from="button:activate" to="main:stop" /> </MainWindow>
Overview of GRAPHITE • The basic GRAPHITE classes are high-level C++ classes. • One can create instances of already-binded GRAPHITE classes through a GXML file that parsed by a GXML parser. • The GXML file describes how different GRAPHITE objects talk to each other.
Overview of GRAPHITE (2) • In order to add new classes in GRAPHITE, the user must do an interfacing step respecting the GRAPHITE object model so that the new classes could be binded.
Recent improvements of GRAPHITE • Qt, a cross-platform GUI API, is integrated into GRAPHITE. • Motif was used in the past. However, it is limited to X-Window systems.
Recent improvements of GRAPHITE (2) • Advantages using Qt • Platform independent. Linux, Unix, Microsoft Windows, Macintosh. Allowing porting of GRAPHITE to other operating systems. • More GUI widgets. • Still evolving
Recent improvements of GRAPHITE (3) • With Qt, GRAPHITE has been ported to MS Windows using Visual C++ 6.0. • GRAPHITE has also been ported to the Reality Center. • More researchers could be benefited from the developments in GRAPHITE project. • Users could choose their own operating system.
Recent improvements of GRAPHITE (4) • A Gesture Recognition system is added • A particular mouse movement, in a form of a sequence of number --> to a command, for example, open a file. • No training of the recognition of the gestures is needed. • The sequence could be changed at any time.
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 78963 7412369 7415963 456 753 Recent improvements of GRAPHITE (5) • Defined by a XML tag. <?xml version="1.0" ?> <MainWindow name="hello" id="main"> <Gesture id=“7412369” /> <SignalConnect from=”7412369:activate" to="main:stop" /> </MainWindow>
Recent improvements of GRAPHITE (6) • It is faster than manipulating menus or button panels. • Easy-to-use and convenient • Different users can define different sets of gesture according to their preferences • The number of gestures being registered is unlimited • Can be used in Reality Centers.
On going development of GRAPHITE • To be able to allow users to define GRAPHITE classes without the pain to write the interfacing codes. • The interfacing would be automatic. • How to achieve? • By using OpenC++ • a C++ source code parser
On going development of GRAPHITE (2) • To design a reflective object model for GRAPHITE --> we need a Run Time MetaObject Protocols (MOP) What is a MOP? • A C++ class is a compile-time entity that defines the form of all objects (instances) of the class • Classes have no explicit representation as objects at run time • A MOP is such an explicit representation of classes. • C++ has no built-in concept of Metaclasses or a Metaobject Protocol (MOP), one has to implement it by himself/herself.
On going development of GRAPHITE (3) • A reflective object model in GRAPHITE allows: • automatic generation of GUI • automatic testing of algorithms • Now, it is being designed and implemented with the use of Open C++, which provides Compile Time meta-object information.