home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / tt / raysh402 / guide.tex / node25_mn.html < prev    next >
Text File  |  1992-02-09  |  2KB  |  65 lines

  1.  
  2. <H2><A ID="SECTION00741000000000000000">
  3. CSG in <EM>Rayshade</EM></A>
  4. </H2>
  5.  
  6. <P>
  7. CSG in <#500#><#1959#><EM>rayshade</EM><#1959#><#500#> will generally operate properly when applied to
  8. conjunction with
  9. on boxes, spheres,
  10. tori, and blobs.
  11. These primitives are by nature consistent, as they all
  12. enclose a portion of space (no hole from the ``inside'' to the
  13. ``outside''), have surface normals which point outward (they
  14. are not ``inside-out''), and do not have any extraneous surfaces.
  15.  
  16. <P>
  17. CSG objects may also be constructed from aggregate objects.
  18. These aggregates contain
  19. whatever is listed inside, and may therefore be inconsistent.
  20. For example, an object which contains a single triangle will not
  21. produce correct results in CSG models, because the triangle does not enclose
  22. space.  However, a collection of four triangles which form a pyramid
  23. does enclose space, and if the triangle normals
  24. are oriented correctly,
  25. the CSG operators should work correctly on the pyramid.
  26.  
  27. <P>
  28. CSG objects are specified by surrounding the objects upon
  29. which to operate, as well as any associated surface-binding commands,
  30. by the operator verb on one side and the <#501#><TT>end</TT><#501#>
  31. keyword on the other:
  32.  
  33. <P>
  34. <DL>
  35. <DT><STRONG><#4878#><#4878#></STRONG></DT>
  36. <DD><#1371#><TT>union</TT><#1371#> ;SPMlt;<#1372#><EM>Object</EM><#1372#>;SPMgt; ;SPMlt;<#1373#><EM>Object</EM><#1373#>;SPMgt;
  37. [;SPMlt;<#1374#><EM>Object</EM><#1374#>;SPMgt; ...] <#1375#><TT>end</TT><#1375#> 
  38. <BR>    Specify a new object defined as the union of the
  39.     given objects.
  40. </DD>
  41. </DL>
  42. <P>
  43. <DL>
  44. <DT><STRONG><#4885#><#4885#></STRONG></DT>
  45. <DD><#1378#><TT>difference</TT><#1378#> ;SPMlt;<#1379#><EM>Object</EM><#1379#>;SPMgt; ;SPMlt;<#1380#><EM>Object</EM><#1380#>;SPMgt; 
  46. [;SPMlt;<#1381#><EM>Object</EM><#1381#>;SPMgt; ...] <#1382#><TT>end</TT><#1382#> 
  47. <BR>    Specify a new object defined as the difference of the
  48.     given objects.
  49. </DD>
  50. </DL>
  51. <P>
  52. <DL>
  53. <DT><STRONG><#4892#><#4892#></STRONG></DT>
  54. <DD><#1385#><TT>intersect</TT><#1385#> ;SPMlt;<#1386#><EM>Object</EM><#1386#>;SPMgt; ;SPMlt;<#1387#><EM>Object</EM><#1387#>;SPMgt;
  55. [;SPMlt;<#1388#><EM>Object</EM><#1388#>;SPMgt; ...] <#1389#><TT>end</TT><#1389#> 
  56. <BR>    Specify a new object defined as the intersection of the
  57.     given objects.
  58. </DD>
  59. </DL>
  60. <P>
  61. Note that the current implementation does not support more that two
  62. objects in a CSG list (but it is planned for a future version).
  63.  
  64. <P>
  65.