When translucent or highly reflective materials are used, secondary rays are generated and shadow calculations may become impossible. There is no limit to the complexity of ray tracing calculations. We may use our limited knowledge of ray tracing simple solid objects for the ray tracing and realistic rendering of very complex objects such as machine parts. Many manufacturable objects can be constructed by the combination of primitive solids when three logical operations are applied to them. The simples way to represent a complex solid with CSG is the binary tree where the nodes are operations, the leafs are solids and the bottom leafs are primitives.
Execution is bottom up and right to left for the minus.
We can start with primitive solids. When two solids are combined, the intersection spans of the ray with the solids are determined. These spans are between the intersection points where the ray enters and exits the solid material of the object. The combined solid has now two spans and four intersection points. However, the procedure is fairly straight forward.