Créez une carte d'occupation en 3D.
Spécifiez 25 coordonnées aléatoires dans la carte d'occupation comme étant occupées.
Créez une sphère de collision et un objet cylindre de collision.
Visualisez la carte d'occupation et la géométrie des collisions dans la même figure.
Effectuez uniquement la vérification de collision en phase large pour la sphère et le cylindre en définissant la propriété CheckNarrowPhase
d'un objet occupancyMap3DCollisionOptions
sur false
. Renvoie les informations sur les voxels et la distance jusqu'aux voxels occupés les plus proches.
Vérifiez les distances des voxels pour les géométries de collision. Notez que, comme le cylindre est en collision avec des voxels, les valeurs de distance sont NaN
. Étant donné que la sphère n'est en collision avec aucun voxel, ses résultats de distance ne sont pas des valeurs NaN
.
bpWitnessptsCylinder = 3×2
NaN NaN
NaN NaN
NaN NaN
Étant donné que le cylindre est en collision avec les voxels, les résultats de distance contiennent des valeurs NaN
. Puisque la sphère n'est pas en collision avec les voxels, les résultats de distance sont constitués de valeurs non NaN
.
bpWitnessptsSphere = 3×2
3.0000 5.1000
-6.0000 -5.0000
-7.5000 -7.5000
Tracez une ligne entre la sphère et le voxel le plus proche en utilisant ses points témoins.
Effectuez maintenant une vérification en phase étroite, en utilisant un objet occupancyMap3DCollisionOptions
avec la propriété CheckNarrowPhase
définie sur true
.
Renvoie la distance du voxel et les coordonnées du point témoin de la sphère. La distance et les points témoins sont légèrement plus précis cette fois, car la phase étroite utilise la distance entre la primitive et le voxel, tandis que la phase large précédente utilise la distance entre la boîte englobante alignée sur l'axe (AABB) de l'objet de collision et l'objet de collision. voxel.
npWitnesspts = 3×2
3.0000 5.2596
-6.0000 -4.5419
-7.5000 -7.5000
Visualisez à nouveau la carte d’occupation et tracez la ligne indiquant la distance la plus courte entre le voxel et la sphère. La ligne entre les points témoins semble visuellement précise après avoir effectué la vérification en phase étroite.