2008-10-06 29 views
6

Sé cómo dibujar objetos básicos usando JOGL o LWJGL para conectar a OpenGL. Lo que me gustaría es algo que pueda generar algún tipo de geometría para los árboles, similar a lo que SpeedTree es famoso. Obviamente, no espero la misma calidad que SpeedTree.¿De qué maneras hay para dibujar árboles 3D usando Java y OpenGL?

Quiero que los árboles no se vean repetitivos. La velocidad no es una preocupación, no espero necesitar más de 100 árboles en la pantalla a la vez.

¿Hay librerías de dibujo en árbol disponibles en Java? ¿O código de muestra o demos? ¿Hay algo en otros idiomas que pueda portar o aprender?

Respuesta

2

Hay miles de métodos. Una mejor pregunta definiría 'mejor' de una manera más confinada. ¿Hablamos "lo mejor" como en velocidad de dibujo (adecuado para miles o millones de árboles)? ¿Mejor en apariencia? etc.

2

¿2D o 3D?
En 2D, una forma común es usar L-systems.
También probé un enfoque OO, definiendo objetos para tronco, ramas, hojas, todos extendiendo una clase abstracta e implementando una interfaz Genotype (para variar el tipo de árboles).
No estoy seguro de si es eficiente (la gran cantidad de objetos creados, especialmente si animo el árbol) pero es interesante de hacer.

0

Si está utilizando eclipse/SWT, intente Dibujar 2D.

0

Si realmente quiere obtener árboles apuestos y rápidos, hay una biblioteca comercial de C++ SpeedTree. Muchos juegos importantes lo usan (por ejemplo, GTA, Elder Scrolls).

+0

SpeedTree es increíble, pero estoy planeando algún tipo de software que va a ser de código libre y abierto (probablemente con licencia GPL) y por lo que necesito o encuentre una solución gratis o haga la mía. – Liam

0

Una combinación de OpenSceneGraph y SpeedTree me ha funcionado.

0

Conozco dos bibliotecas que permiten el uso de OpenGl con java.

LWJGL (Light Weight Java Gaming Library), que imo es el mejor debido a su simplicidad y su similitud con el uso de opengl con c/C++.

JOGL Si desea mezclar componentes oscilantes con opengl, esta puede ser la mejor opción, nunca la he usado, pero hace varios años era bastante defectuosa, no sé si ha madurado desde entonces.

En cuanto a dibujar árboles, hay muchas maneras de hacerlo, como dijo el otro cartel, es posible que desee ser más específico.

corregir: Supongo que malentendí un poco la pregunta, bueno:/Puede cargar un modelo en 3D de un árbol y mostrar eso.

1

Aquí hay un par de recursos que pueden ser útiles:

  • gamedev thread on the subject - contiene algunos consejos/sugerencias útiles
  • ngPlant - una herramienta de generación de la planta de procedimiento de código abierto. No está escrito en Java, pero es posible que pueda encontrar ideas en sus algoritmos.
Cuestiones relacionadas