Man Linux: Main Page and Category List


       icetCompositeOrder -- specify the order in which images are composited


       #include <GL/ice-t.h>

       void icetCompositeOrder( const GLint * process_ranks );


       If  ICET_ORDERED_COMPOSITE is enabled and the current strategy supports
       ordered composition, then the order which  images  are  composited  are
       specified   with  icetCompositeOrder.   If  compositing  is  done  with
       z-buffer comparisons (i.e. the depth buffer is  selected  as  an  input
       with  icetInputOutputBuffers),  then  the ordering does not matter, and
       ICET_ORDERED_COMPOSITE  should  probably  be  disabled.   However,   if
       compositing  is  done with color blending (i.e. the depth buffer is not
       selected as in input with icetInputOutputBuffers), then  the  order  in
       which the images are composed can drastically change the output.

       For  ordered  image compositing to work, the geometric objects rendered
       by processes must be arranged such that if the geometry of one  process
       is  ``in front'' of the geometry of another process for any camera ray,
       that ordering holds for  all  camera  rays.  It  is  the  application's
       responsibility  to ensure that such an ordering exists and to find that
       ordering. The easiest way to do this is to ensure that the geometry  of
       each  process  falls  cleanly  into  regions of an octree, k-d tree, or
       similar structure.

       Once the geometry  order  is  determined  for  a  particular  rendering
       viewpoint,  it  is  given to IceT in the form of an array of ranks. The
       parameter process_ranks should have exactly ICET_NUM_PROCESSES entries,
       each  with  a unique, valid process rank. The first process should have
       the geometry that is ``in front'' of  all  others,  the  next  directly
       behind  that,  and  so  on. It should be noted that the application may
       actually impose only a partial order on  the  geometry,  but  that  can
       easily be converted to the linear ordering requird by IceT .

       When  ordering  is  on,  it is accepted that icetCompositeOrder will be
       called in between every frame since  the  order  of  the  geometry  may
       change with the viewpoint.

       If  data  replication  is in effect (see icetDataReplicationGroup), all
       processes are still expected to be listed  in  process_ranks.   Correct
       ordering  can  be achieved by ensuring that all processes in each group
       are listed in contiguous entries in process_ranks.


               Not every entry in the parameter process_ranks  was  a  unique,
              valid process rank.




       If an ICET_INVALID_VALUE error is raised, internal arrays pertaining to
       the ordering of images may not be restored properly. If such  an  error
       is  raised,  the  function  should  be re-invoked with a valid ordering
       before preceding. Unpredictable results may occur otherwise.


       Copyright (C)2003 Sandia Corporation

       Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
       license  for  use  of this work by or on behalf of the U.S. Government.
       Redistribution and use in source and  binary  forms,  with  or  without
       modification, are permitted provided that this Notice and any statement
       of authorship are reproduced on all copies.

See Also

       icetInputOutputBuffers(3), icetStrategy(3)

IceT Reference                  April 12, 2006           icetCompositeOrder(3)