Boolesche 3D-Operationen in Java

Ich suche nach Bibliotheken, die boolesche 3D-Operationen (Vereinigung, Subtraktion, Schnittmenge) in Java zur Verwendung in einem Spiel bereitstellen. Im Grunde werden also die booleschen Operationen in 3D-Modellen dynamisch, prozedural, nach dem Willen des Spielers (oder herausfordernd) ausgeführt. Die Eingabe und die resultierende Ausgabe ist eigentlich ein einfaches 3D-Netz, es muss keine Datei generiert werden, dies sind eigentlich Datenobjekte im Speicher.

Die Bibliothekslizenz muss für meine Zwecke mit der BSD-Lizenz kompatibel sein, aber es ist akzeptabel, wenn auch Verweise auf andere Bibliotheken mit anderen Lizenzen vorhanden sind. UnBBoolean war einst GPL, und auf Wunsch wurde es Public Domain (es hätte übrigens BSD sein können, nur um JME zu entsprechen).

Wenn möglich, sollten sie Leistung haben und Texturunterstützung bei den dynamisch generierten Meshes bieten, schließlich wird dies ein Spiel sein, und Spiele, um erfolgreich zu sein, müssen gut aussehen, es sei denn, es handelt sich um Minecraft (aber das ist ein anderes Thema ...)

PS.: Ich bin nicht bereit, irgendetwas zu programmieren, um diese Funktion wie hier bereitzustellen .

Antworten (1)

In der Reihenfolge der Benutzerfreundlichkeit (JME-fähig) und Robustheit:

  1. jMonkeyCSG Dies ist eine JMonkey-Portierung von UnBBoolean (also im Grunde wurde UnBBoolean zu 100 % kompatibel mit JMonkeyEngine (erneut) gemacht), lesen Sie hier mehr . Es verfügt über alle erforderlichen booleschen Operationen und ist BSD-lizenziert. Es unterstützt Texturen und seine Leistung scheint gut zu sein. ATM, dies wäre die beste Wahl, da es fehlersicher erscheint.

  2. Fabian CSG ist JME3-fähig und bietet auch alle booleschen Operationen, die Lizenz ist hier und scheint mit BSD kompatibel zu sein. Es unterstützt auch Texturen mit guter Leistung. Sie können dies auch versuchen, aber wenn sehr kleine Dreiecke verarbeitet werden, kann es zum Absturz kommen. Übrigens, (1.) die Entwicklung wurde auch von diesem inspiriert.

  3. UnBBoolean Aktuell , v1.1, unterstützt keine Texturen. Hier gibt es einen einfachen Code, um ihn einfach in JME3 zu integrieren, er hat alle erforderlichen booleschen Operationen und seine Lizenz ist Public Domain. Leistung nicht getestet (siehe JMonkeyCSG oben). Trotz letztem Eintrag kann es immer noch als Kern (Basis/Inspiration zu allen anderen oben genannten) betrachtet werden.

In Bezug auf die Leistung : Wenn die Ergebnisse nicht in Echtzeit erfolgen müssen, können sie in einem Hintergrund-Thread verarbeitet werden, um die Bildrate des Spiels nicht zu beeinträchtigen.

PS.: Dies ist eigentlich eine neue Technologie, daher gibt es derzeit nicht viele Optionen.