The Object Graphics subsystem is designed to provide a rich set of graphical functionality that can be displayed in reasonable time. This section offers suggestions on how to adjust your system and programs to achieve the best rendering performance.
Hardware vs. Software Rendering
The RENDERER property to the IDLgrWindow object (or associated platform-specific preferences in the IDL Preference system) allows you to select between the operating system’s native (hardware) rendering system and a platform independent (software) rendering system for IDL Object Graphics displays.
Hardware rendering allows IDL to make use of 3D graphics accelerators that support OpenGL, if any are installed in the system. In general, such accelerators will provide better rendering performance for many object graphics displays. This is typically true for images rendered using texture-mapped polygons (the default behavior for IDLgrImage beginning with IDL 6.2).
The software rendering system will generally run more slowly than the hardware rendering system. However, use of the software rendering system has a few important advantages:
- Software rendering is available in situations where hardware rendering is not (remote display to non-OpenGL capable X servers, for example).
- The number of expose events an IDL application will have to respond to is much smaller when software rendering is used.
- The software rendering system is generally much faster than the hardware rendering system for Instancing.
- Software rendering can be used to avoid bugs in third-party hardware rendering system driver software.
- Finally, on some displays (most notably SGI systems with 24 or fewer bitplanes), the quality of the screen display will be better when using the software rendering system because its design allows more bitplanes to be used.
Note: By default, IDL uses the renderer specified by the IDL_GR_WIN_RENDERER preference (Microsoft Windows) or the IDL_GR_X_RENDERER preference (UNIX). If your platform does not have a native OpenGL implementation, IDL uses its own software implementation regardless of the preference value or the value of the RENDERER property.