Editing New Cross-Platform 3D Display Manager

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 +
==Cross Platform Display Manager==
 +
 
This project involves implementing a new cross-platform display manager for BRL-CAD's LIBDM display manager library using an API toolkit such as OGRE or Qt that abstract platform-specific implementation detail.  
 
This project involves implementing a new cross-platform display manager for BRL-CAD's LIBDM display manager library using an API toolkit such as OGRE or Qt that abstract platform-specific implementation detail.  
  
 
BRL-CAD's primary means to interact graphically with geometry is provided by '''''display managers''''', which handle drawing geometric wireframes, text, (sometimes) shaded triangle mesh geometry, and other visualization elements.  It's the 3D graphics window.  Currently BRL-CAD has specific display managers for X11 Opengl (ogl), Windows OpenGL (wgl), and raw X11 (X), in addition to a  variety of other special purpose and experimental display managers.  Consequentially, our existing display managers are all platform-specific and a burden to maintain.
 
BRL-CAD's primary means to interact graphically with geometry is provided by '''''display managers''''', which handle drawing geometric wireframes, text, (sometimes) shaded triangle mesh geometry, and other visualization elements.  It's the 3D graphics window.  Currently BRL-CAD has specific display managers for X11 Opengl (ogl), Windows OpenGL (wgl), and raw X11 (X), in addition to a  variety of other special purpose and experimental display managers.  Consequentially, our existing display managers are all platform-specific and a burden to maintain.
 +
 +
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.  OGRE has the added benefit of having built-in support for scene graph management allowing for accelerated 3D windows.
 +
 +
Qt (http://qt.nokia.com/) is a cross-platform application and UI framework of interest for new GUI development work in BRL-CAD.  It similarly has support for creating OpenGL-based display contexts that could serve as the implementation detail for a new display manager.  Qt has the added benefit of being able to use drawing canvases not reliant upon OpenGL or hardware acceleration.
  
 
Either OGRE or Qt could be utilized to implement a new display manager interface
 
Either OGRE or Qt could be utilized to implement a new display manager interface
Line 19: Line 25:
 
A good proposal for this task would demonstrate a good understanding of what approaches would be taken to embed OGRE or Qt into Tk and what functionality would be utilized to perform wireframe drawing, text drawing, etc.
 
A good proposal for this task would demonstrate a good understanding of what approaches would be taken to embed OGRE or Qt into Tk and what functionality would be utilized to perform wireframe drawing, text drawing, etc.
  
=References=
+
Requirements:
* src/libdm
 
* include/dm*.h
 
 
 
* http://www.ogre3d.org/
 
** OGRE 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.  OGRE has the added benefit of having built-in support for scene graph management allowing for accelerated 3D windows.
 
 
 
* http://qt.nokia.com/
 
** Qt is a cross-platform application and UI framework of interest for new GUI development work in BRL-CAD.  It similarly has support for creating OpenGL-based display contexts that could serve as the implementation detail for a new display manager.  Qt has the added benefit of being able to use drawing canvases not reliant upon OpenGL or hardware acceleration.
 
 
 
=Requirements=
 
 
*Familiarity with C and C++  
 
*Familiarity with C and C++  
 
*(optional) Familiarity with OGRE
 
*(optional) Familiarity with OGRE
 
*(optional) Familiarity with Qt
 
*(optional) Familiarity with Qt
  
=Past Efforts=
+
References:
[http://brlcad.org/wiki/User:Mesut/Reports | GSoC12]
+
* src/libdm
 +
* include/dm*.h
 +
 
 +
Difficulty: medium

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)