home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
tt
/
raysh402
/
guide.tex
/
node23_mn.html
< prev
next >
Wrap
Text File
|
1992-02-09
|
3KB
|
67 lines
<H1><A ID="SECTION00730000000000000000">
Aggregate Objects</A>
</H1>
<P>
An aggregate is a collection of primitives, aggregate, and CSG
objects. An aggregate, once defined, may be instantiated at will,
which means that
copies that are optionally transformed and textured may be made.
If a scene calls for the presence of many geometrically identical
objects, only one such object need be defined; the one defined object
may then be instantiated many times.
<P>
An aggregate is one of several possible types. These aggregate types
are differentiated by the type of ray/aggregate intersection algorithm
(often termed an <#477#><EM>acceleration technique</EM><#477#> or <#478#><EM>efficiency scheme</EM><#478#>)
that is used.
<P>
Aggregates are defined by giving a keyword that defines the
type of the aggregate, followed by
a series of object instantiations and
surface definitions, and terminated using the <#479#><TT>end</TT><#479#> keyword.
If a defined object contains no instantiations, a warning message
is printed.
<P>
The most basic type of aggregate, the <#480#><EM>list</EM><#480#>, performs
intersection testing in the simplest possible way: Each object in the
list is tested for intersection with the ray in turn, and the closest
intersection is returned.
<P>
<DL>
<DT><STRONG><#4874#><#4874#></STRONG></DT>
<DD><#1362#><TT>list</TT><#1362#> ...<#1363#><TT>end</TT><#1363#>
<BR> Create a List object containing those objects instantiated between
the <#484#><TT>list</TT><#484#>/<#485#><TT>end</TT><#485#> pair.
</DD>
</DL>
<P>
The <#487#><EM>grid</EM><#487#> aggregate
divides the region of space it occupies into a number of discrete
box-shaped
voxels. Each of these voxels contains a list of the objects that
intersect the voxel. This discretization makes it possible to
restrict the objects
tested for intersection to those that are likely to hit the ray,
and to test
the objects in nearly ``closest-first'' order.
<P>
<DL>
<DT><STRONG><#4875#><#4875#></STRONG></DT>
<DD><#1366#><TT>grid</TT><#1366#> <#1367#><EM>xvox yvox zvox</EM><#1367#> ...<#1368#><TT>end</TT><#1368#>
<BR> Create a Grid objects composed of <#492#><EM>xvox</EM><#492#> by <#493#><EM>yvox</EM><#493#> by
<#494#><EM>zvox</EM><#494#> voxels containing those objects
instantiated between the <#495#><TT>grid</TT><#495#>/<#496#><TT>end</TT><#496#> pair.
</DD>
</DL>It is usually only worthwhile to ``engrid'' rather large,
complex collections of objects. Grids also use a great deal more
memory than List objects.
<P>