Operaciones booleanas 3D en Java

Estoy buscando bibliotecas que proporcionen operaciones booleanas 3D (unión, resta, intersección) en Java, para usar en un juego. Entonces, básicamente, las operaciones booleanas en los modelos 3D sucederán de manera dinámica, procesal, a voluntad del jugador (o desafiándolo). La entrada y la salida resultante es en realidad una malla 3D simple, no es necesario generar ningún archivo, en realidad son objetos de datos en la memoria.

La licencia de la biblioteca debe ser compatible con la licencia BSD, para mis propósitos, pero es aceptable si también hay referencias a otras bibliotecas con otras licencias. UnBBoolean una vez fue GPL y, por pedido, se convirtió en dominio público (por cierto, podría haber sido BSD solo para cumplir con JME ).

Si es posible, deben tener rendimiento y brindar soporte de texturas en las mallas generadas dinámicamente, después de todo esto será un juego, y los juegos para tener éxito deben tener una buena apariencia, a menos que sea Minecraft (pero este es otro tema).

PD.: No estoy dispuesto a codificar nada para proporcionar esa característica, como aquí .

Respuestas (1)

Por orden de usabilidad (JME ready) y robustez:

  1. jMonkeyCSG este es un puerto JMonkey de UnBBoolean (básicamente, UnBBoolean fue (re)hecho 100% compatible con JMonkeyEngine), lea más aquí . Tiene todas las operaciones booleanas requeridas y es licencia BSD. Soporta texturas y su rendimiento parece bueno. Cajero automático, esta sería la mejor opción, ya que parece a prueba de errores.

  2. Fabian CSG está listo para JME3 y también proporciona todas las operaciones booleanas, su licencia está aquí y parece compatible con BSD. Admite texturas con buen rendimiento también. También puede probar esto, pero cuando se procesan triángulos muy pequeños, puede bloquearse. por cierto, (1.) el desarrollo también se inspiró en este.

  3. UnBBoolean La versión más reciente hasta la fecha, v1.1, no admite texturas. Aquí hay un código simple para integrarlo en JME3, tiene todas las operaciones booleanas requeridas y su licencia es de dominio público. Rendimiento no probado (ver JMonkeyCSG arriba). A pesar de la última entrada, aún se puede considerar el núcleo (base/inspiración para todos los demás mencionados anteriormente).

En cuanto al rendimiento : si no es necesario que los resultados sucedan en tiempo real, se pueden procesar en un subproceso en segundo plano para no interferir con la velocidad de fotogramas del juego.

PD: esta es en realidad una nueva tecnología, por lo que no hay muchas opciones disponibles hasta la fecha.