2008-10-06 5 views
6

Je sais dessiner des objets de base en utilisant JOGL ou LWJGL pour me connecter à OpenGL. Ce que je voudrais, c'est quelque chose qui peut générer une sorte de géométrie pour les arbres, semblable à ce que SpeedTree est célèbre. Évidemment, je ne m'attends pas à la même qualité que SpeedTree.Quelles sont les possibilités de dessiner des arbres 3D en utilisant Java et OpenGL?

Je veux que les arbres ne soient pas répétitifs. La vitesse n'est pas une préoccupation, je ne m'attends pas à avoir besoin de plus de 100 arbres à la fois.

Existe-t-il des bibliothèques de dessin d'arbres libres disponibles en Java? Ou un exemple de code ou de démos? Y at-il quelque chose dans d'autres langues que je pourrais porter ou apprendre?

Répondre

2

Il existe des milliers de méthodes. Une meilleure question définirait «mieux» d'une manière plus confinée. Parlons-nous le «meilleur» comme dans la vitesse de dessin (approprié pour des milliers ou des millions d'arbres)? Meilleur que dans le plus beau? etc.

2

2D ou 3D?
En 2D, une manière courante consiste à utiliser des systèmes L.
J'ai aussi essayé une approche OO, en définissant des objets pour le tronc, les branches, les feuilles, tout en étendant une classe abstraite et en implémentant une interface Génotype (pour varier le type d'arbres).
Je ne sais pas si c'est efficace (beaucoup d'objets créés, surtout si j'anime l'arbre) mais intéressant à faire.

0

Si vous utilisez eclipse/SWT, essayez Draw 2D.

0

Si vous voulez vraiment obtenir de beaux arbres rapides, il existe une bibliothèque commerciale C++ SpeedTree. Beaucoup de jeux de grande envergure l'utilisent (par exemple, GTA, Elder Scrolls).

+0

SpeedTree est incroyable, mais je prévois un logiciel qui sera gratuit et open source (probablement sous licence GPL) et donc je dois soit trouver une solution gratuite ou faire la mienne. – Liam

0

Une combinaison de OpenSceneGraph et SpeedTree a fonctionné pour moi.

0

Je connais deux bibliothèques qui permettent l'utilisation d'OpenGl avec Java. (Léger Java Gaming Library), qui est le meilleur en raison de sa simplicité et de sa similitude avec l'utilisation opengl avec c/c + +. Si vous voulez mélanger des composants swing avec opengl c'est peut-être le meilleur choix, je ne l'ai jamais utilisé, mais il y a quelques années il était connu pour être assez buggé, je ne sais pas si c'est mûri depuis. Comme pour dessiner des arbres, il y a plusieurs façons de le faire, comme le dit l'autre affiche, vous pourriez vouloir être plus précis.

edit: Je suppose que j'ai mal compris la question un peu, oh bien:/Vous pouvez charger dans un modèle 3d d'un arbre et l'afficher.

1

Voici les ressources couple qui peuvent être utiles:

  • gamedev thread on the subject - contient quelques conseils utiles/suggestions
  • ngPlant - un outil de génération de plantes de procédure open source. Il n'est pas écrit en Java, mais vous pourrez peut-être trouver des idées dans ses algorithmes.
Questions connexes