2017-08-24 2 views
1

J'utilise csg.js avec three.js et il semble qu'il ne supporte que CSG 3D. Vérifier thisThree.js 2D CSG - intersection, union, soustraction

Je voudrais recouper et union des géométries 2D (Three.js). Y at-il un moyen que je peux faire 2D CSG avec three.js?

+0

Eh bien, avez-vous essayé? Quel a été le résultat? – Marquizzo

+0

Oui j'ai essayé. En essayant d'intersecter, il n'y a pas de résultat et en essayant d'union, il se donne pas uni avec le paramètre. – hyewon330

Répondre

1

La chose que vous devez considérer est que les plans sont infiniment minces. Donc, lorsque 2 plans se croisent, vous obtenez une ligne à une dimension, qui n'a pas de faces à rendre. Si vous utilisez un plan 2D avec un solide, cela peut ne pas fonctionner car l'une des entrées n'est pas un solide et le nom du plugin suggère qu'il fonctionne sur des solides.

prendre en considération les types de sortie, vous aurez quand croisent deux types de géométrie:

Si vous voulez un plan que la sortie, je vous recommande Intersection avec une boîte très mince, par exemple un 2 x 2 x 0,01, au lieu d'utiliser vrais plans 2D. Pensez-y comme cookie-cutter.

Aussi, assurez-vous d'utiliser la géométrie multiple, au lieu de non-manifold, que vous pouvez lire ici: https://blender.stackexchange.com/questions/7910/what-is-non-manifold-geometry

+0

J'essaie d'avoir la géométrie 2D comme résultat géométrique et de faire de la géométrie 3D avec une certaine hauteur en utilisant ExtrudedGeometry dans three.js. Pour ce faire, j'ai d'abord appliqué la hauteur et l'intersection, mais ce n'était pas si précis avec des courbes dans la géométrie. Comme vous l'avez dit si je donne une hauteur ignorable à la géométrie 2D et que j'en fais la géométrie 3D, puis-je convertir la géométrie 3D du résultat en géométrie 2D? Merci. – hyewon330

+0

Désolé, j'essaie de vous aider, mais il est difficile de visualiser ce que vous essayez de réaliser sans voir quelques exemples. Pouvez-vous mettre à jour votre question avec des images? Aussi, si ce que vous voulez est une forme plate, avez-vous essayé la méthode dans cet exemple: https://threejs.org/examples/?q=shape#webgl_geometry_shapes? Il commence à sonner comme tout ce dont vous avez besoin est un objet 'THREE.Shape'. – Marquizzo