En el programa de ejemplo se ha preferido mantener una única estructura para los diferentes tipos de objeto, con un número (tipo) que diferencia entre los distintos objetos. Esto quiere decir que cada objeto no utilizará todas las variables de la estructura RT_objecto (¿qué sentido tiene el radio en un plano?). Las rutinas dedicadas a la trayectoria de los rayos de luz, iluminación y cámara se mantienen, básicamente, iguales. Sólo cambia el hecho de que en el momento de calcular la intersección de los rayos con los objetos, y al obtener el vector normal a la superficie se llaman a otras rutinas (get_intrersect y get_normal) que diferencian entre los distintos tipos de objeto y hacen los cálculos correspondientes. Con esto terminamos por este mes. En el próximo explicaremos cómo generar cilindros (tanto paralelo a los ejes como orientados en cualquier dirección). |
![]() |