Finalmente he conseguido implementar el algoritmo, una vez comprendido el tema de crear los rayos y el tema de intersecciones no tiene mayor misterio.
Además, puedo decir que está tirando bastante rápido, el color picking es ideal cuando no se necesita control a nivel de primitiva, solo a nivel de partes o id's de modelos. Lo único que no me acaba de convencer es el tener que hacer dos pasadas de la escena para el picking, una para los id's y otra para las intersecciones del modelo usando el depth.
Cuando sea posible leer directamente el depth buffer en webgl y utilizar MRT esto empezará a molar mucho más
