Je travaille actuellement sur l'implémentation de l'occlusion sur tri.js, et je veux savoir s'il y a un moyen, à partir d'un TROIS.Box3, de récupérer toutes les maillages correspondants qui sont dans cette boîte englobante.
est ce que la boîte englobante dans three.js garde trace des maillages qu'elle contient?
Merci à tous.Comment récupérer les maillages d'une boîte englobante dans trois js?
1
A
Répondre
2
Répondre vous des questions dans l'ordre inverse:
Non, Box3
n'a pas de « sens de l'environnement » Si vous voulez garder une liste des mailles un Box3
contient, vous auriez besoin de construire cette liste lorsque vous créez le Box3
et maintenez-le en tant que votre scène et Box3
changez. Vous pouvez cependant obtenir toutes ces maillages en recherchant bounding box intersections. Une mise en garde majeure est que les boîtes doivent être traduites dans leurs transformations mondiales. Cela peut rendre l'intersection moins précise, car la boîte englobante se dilatera pour contenir la partie transformée tout en restant alignée dans le monde.
myMesh.geometry.computeBoundingBox(); // computes a LOCAL bounding box
var tmpBox = new THREE.Box3().copy(myMesh.boundingBox);
tmpBox.applyMatrix4(myMesh.matrixWorld); // converts tmpBox into a WORLD bounding box
console.log("Boxes intersect:", someOtherWorldBox.intersectsBox(tmpBox)); // true/false
merci pour l'aide monsieur. –