The diagram above will be used with each CSG object to show simply
how it works. Circle A represents the first object and B represents the
second object in the pair of objects required for CSG in Rayshade.
The union operator joins the two specified objects, if the objects intersect
each other, then any internal surfaces are removed.
The example below is a variation on the rayshade input file used to show the
problems of incorrectly constructed CSG surfaces
(see figure 5-2 and/or
figure 5-12).
This file is correctly structured.
Figure 5-3
Union Object
[name objname] union
object1
object2
end [transformations] [textures]
Figure 5-4
Figure 5-5
/*
csg-ok.ray
chess piece, constructed so there are no
redundant surfaces.
Stephen Peter 8 mar 92
*/
eyep 150 50 150
lookp -15 0 45
background .9 .9 .9
light .5 point 250 0 150
screen 200 400
fov 20 37
surface salmon
ambient .2 .1 .1
diffuse 1 .5 .45
specular .3 .3 .3
name chess_piece
union
union
list /* bottom */
disc 25 0 0 0 0 0 -1
cylinder 25 0 0 0 0 0 4
cone 25 0 0 4 22 0 0 15
disc 22 0 0 15 0 0 1
end
list /* trunk */
disc 19 0 0 14 0 0 -1
cone 19 0 0 14 3 0 0 95
disc 3 0 0 95 0 0 1
end
end
union
list
disc 15 0 0 62 0 0 -1
cylinder 15 0 0 62 0 0 66
disc 15 0 0 66 0 0 1
end
sphere 14.75 0 0 77
end
end
difference
box 0 -30 -10 -30 30 100
object salmon chess_piece
end
Go to next section: Intersection Objects.
Return to Contents.
THE END - Notes on Rayshade - 5 - CSG Objects