New Cross-Platform 3D Display Manager
OGRE Display Manager
BRL-CAD's primary means to interact graphically with geometry is provided by display managers, which handle drawing geometric wireframes, text, (sometimes) shaded trianges, and other in-display elements. Currently BRL-CAD has specific display managers for X11 Opengl (ogl), Windows OpenGL (wgl), and raw X11 (X), in addition to a variety of more special purpose and experimental display managers. Current display managers interact with a lot of platform specific features, which tends to lead towards increased maintenance and duplication of logic.
OGRE (http://www.ogre3d.org/) is a cross platform, open source 3D graphics engine that provides the features needed to implement a display manager for BRL-CAD, while abstracting many of the low level platform specific details. The steps for this task would be:
- Review current display manager code to identify features a new display manager needs to support
- Get OGRE running and embedded within a Tk window (this will be necessary for Archer/MGED to use the display manager). Bear in mind that one of the goals is to use this display manager on multiple platforms.
- Identify how to perform the basic operations needed for a display manager in OGRE, including
- line drawing
- text display
- keyboard and mouse input integration between OGRE and Tk
- embedding a framebuffer window (see overlay/interlay/underlay settings in the MGED raytrace control panel)
- Writing routines to perform tasks needed (the display manager functionality) and hooking it into libdm
- Testing (ideally cross platform)
A good proposal for this task would demonstrate a good understanding of what approaches would be taken to embed OGRE into Tk (if_ogl.c, our OpenGL framebuffer, does this with an OpenGL window) and what OGRE functionality would be utilized to perform wireframe drawing, text drawing, etc.
Requirements:
- Familiarity with C and C++
- (optional) Familiarity with OGRE
Difficulty: low