En el grupo se nos genero una duda de como manejar el cilindro, esta bien si suponemos que siempre va a tener una orientacion, osea siempre va a ser como en la figura que esta parrado y lo unico que puede llegar a cambiar es el radio y la posicion del mismo? o tenemos que hacerlo para que este en cualquier orientacion?
Si implementan un cilindro con restricciones no van a perder el obligatorio, pero está claro que si la posición/orientación no tiene restricciones va a ser mejor considerado.
Para levantar las restricciones podés tener una ecuación general que contemple todos los casos, o podés transformar el rayo al sistema de coordenadas del cilindro para calcular los puntos de intersección y luego transformar a coordenadas del mundo los datos que necesites para hacer el render (ej: la normal).
Les puede interesar este link, en particular cómo define las primitivas con restricciones y luego como hace para levantar dichas restricciones.
Saludos
Bueno, muchas gracias.