Synopsis
#include <IceT.h>
void icetCompositeMode( | IceTEnum | mode ); |
Description
Sets the composite mode used when combining images. IceT enables parallel rendering by allowing each process in your code to independently render images of partial geometry. These partial-geometry images are then ``composited'' to form a single image equivalent to if all the geometry were rendered by a single process.
IceT supports multiple operations that can be used to combine images. The operator you use should be equivalent to that used by your rendering system to resolve .ighidden surfacehidden surfaces or mix occluding geometry with that behind it.
The argument mode is one of the following enumerations:
- ICET_COMPOSITE_MODE_Z_BUFFER
-
Use the .igz-bufferz-buffer hidden-surface removal operation. The compositing operation compares the distance of pixel fragments from the viewpoint and passes the fragment closest to the user. In order for this operation to work, images must have a depth buffer (set with icetSetDepthFormat). - ICET_COMPOSITE_MODE_BLEND
-
Blend two fragments together using the standard .igover operator.igunder operatorover/under operator. in order for this operation to work, images must have a color buffer (set with icetSetColorFormat)that has an alpha channel and there must be no depth buffer (as the operation makes no sense with depth). Also, this mode will only work if ICET_ORDERED_COMPOSITE is enabled and the order is set with icetCompositeOrder.
The default compositing mode is ICET_COMPOSITE_MODE_Z_BUFFER. The current composite mode is stored in the ICET_COMPOSITE_MODE state variable.
Errors
- ICET_INVALID_ENUM
-
mode is not a valid composite mode.
Warnings
None.
Bugs
icetCompositeMode will let you set a mode even if it is incompatible with other current settings. Some settings will be checked during a call to icetDrawFrame or icetCompositeImage. For example, if the image format (specified with icetSetColorFormatand icetSetDepthFormat)does not support the composite mode picked, you will get an error during the call to icetDrawFrame.
Other incompatibilities are also not checked. For example, if the composite mode is set to ICET_COMPOSITE_MODE_BLEND, IceT will happily use this operator even if ICET_ORDERED_COMPOSITE is not enabled. However, because order matters in the blend mode, you will probably get incorrect images if the compositing happens in arbitrary order.
Copyright
Copyright (C)2010 Sandia Corporation
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.
This source code is released under the New BSD License.