| |
Principe
Données surfaciques en entrée :
Soit des Triangles, organisés en blocs. Les triangles ne sont pas copiés
par RayBooster, c'est la base de données du logiciel hôte qui est utilisée
au moyen de callbacks.
Soit des Instances : duplications d'une base de données RayBooster,
ayant subit une transformation matricielle.
Manipulation des données surfaciques : les surfaces (triangles et instances)
peuvent être ajoutées, modifiées, supprimées.
Définition d'un rayon (entrée):
origine, direction.
distances minimales et maximales de calcul d'impact.
précision : distance minimale entre 2 impacts consécutifs.
optionnel : identificateur de la surface de départ (permet d'éviter les
auto-intersections).
Définition d'un impact (sortie) :
position, normale normée, coordonnées barycentriques.
distance sur le rayon.
identificateur de la surface.
Différents types d'intersection rayon / scène :
Calcul du premier impact le long d'un rayon.
Test d'occlusion : comme ci-dessus, mais en évitant le calcul de l'intersection.
Calcul des n premiers impacts le long d'un rayon.
Compatibilité Multi-thread : RayBooster est thread-safe. Plusieurs intersections
rayon / scènes peuvent être faits simultanément dans différents threads.
Fonctionnalités avancées :
Childhood : organisation des bases de données en arborescence,
pour calculer un rayon sur plusieurs scènes simultanément.
Définition de Surface : il y a possibilité d'ajouter n'importe quel type
de surface.
|