(1) For each ray do
(2) {
(3) Retrieve the information of previous intersected object
(4) Perform the intersection test between the ray and previous intersected surface
(5) If intersection is not exist then
(6) {
(7)  For each object in a tree do
(8)  {
(9)   Extract two surfaces from each object
(10)   Perform intersection test with the first candidate surface
(11)    If intersection is found then
(12)   {
(13)   Store the information of the intersected object
(14)   Stop searching
(15)  }
(16)  Else
(17)  {
(18)   Perform the intersection test with the next candidate surface of the same object
(19)   If intersection is found then
(20)   {
(21)    Store the information of the intersected object
(22)      Stop searching
(23)   }
(24)  }
(25)  }
(26) }
(27) }
Algorithm 1: Minimization_of_Ray_Object_Intersection().