OpenGL
Major changes
- Reorganization of scene rendering in TGLViewer - render opaque
objects from all scenes first, then all transparent ones.
- Modularization of input event-handling in TGLViewer: all
event-handling is done by the TGLEventHandler class. One can
sub-class it now and modify behaviour of a given viewer. For
example, see TEveLegoEventHandler.
- Support highlighting of physical shapes for providing feedback and
showing selection.
Minor changes, fixes and improvements
- Improve saving of images from the GL-viewer so that the dialog
boxes and other windows do not result in black areas on the saved
image. The window must still be fully contained within the desktop.
- Improved camera controls. Three new orthographic cameras have
been added to TGLViewer, looking at the scene from another
side than the one present so far.
- Improved FTGL font management across rendering contexts and text
rendering support.
- New class TGLAxisPainter that can render 2D and 3D axes
via GL. For example see tutorials/eve/cms_calo.C.
Possible performance issues with ATI drivers (fglrx)
In late 2007 ATI switched to a new driver architecture. With these
drivers a significant degradation of GL performance in selection mode,
up to a factor of 50, was observed. Both linux and Windows drivers
were affected. The issue has been resolved in the latest driver
versions.
Eve
Major changes
- Support for multiple, parallel OpenGL views that can show different
projections of the same event.
- Provide object selection and feedback highlight across all GL-views and
list-trees.
- New classes for visualization of calorimeter data,
TEveCaloXYZ, see tutorials/eve/cms_calo.C. Available
representations: 3D-cylindrical view, projected views r-phi and rho-z,
and lego-view (with dedicated event handler allowing detailed
inspection of the data).
- Support for compound objects in view of selection, highlight and
color managament (see class TEveCompound).
- Optimize updates of GL-scenes by introducing change-stamping bits
into TEveElement. See methods AddStamp() and
StampXyzz().
- Added support for central management of visualization parameters
of objects. Instead of specifying visual attributes individually by
set-methods a single string tag can be used to retrieve all of them
with a single command, e.g.,
track->ApplyVizTag("MuonTrack"). The parameter-database can
be saved as a CINT script, edited manually and loaded. This provides more
flexibility as different users can share the same code to
instantiate visualziation objects but still override visualization
parameters independently. See TEveElement::CopyVizParams()
and TEveManager::*VizDB() methods for more information.
Minor changes, fixes and improvements
- Improved handling of projected elements.
- For fish-eye projections, allow fixing of compression scale
beyond given distance from the center.
- Add support for step-function scaling of 2D-projections. This
allows arbitrary magnification of concentric regions in r-phi and
rho-z views. See tutorial
tutorials/eve/projection_test_prescale.C.
- Path-mark type representing 2D clusters was added for
TEveTrack and TEveTrackPropagator classes.
- Add support for representing a set of arbitrary cones to
TEveBoxSet (see tutorials/eve/cone_test.C).
- TEveFrameBox now supports arbitrary 2d frame shapes -
user specifies individual points via SetQuadByPoints() function. See
tutorials/eve/quad_test.C::quad_test_circ() for an example.
- Consolidation of existing classes and code.