Какие существуют способы рисования трехмерных деревьев с использованием Java и OpenGL? - PullRequest
6 голосов
/ 06 октября 2008

Я знаю, как рисовать базовые объекты, используя JOGL или LWJGL для подключения к OpenGL. То, что я хотел бы, это то, что может генерировать какую-то геометрию для деревьев, подобно тому, чем славится SpeedTree. Очевидно, я не ожидаю такого же качества, как SpeedTree.

Я хочу, чтобы деревья не выглядели повторяющимися. Скорость не имеет значения, я не ожидаю, что на экране будет необходимо более 100 деревьев одновременно.

Существуют ли бесплатные библиотеки рисования деревьев на Java? Или пример кода или демонстрации? Есть ли что-нибудь на других языках, которые я мог бы перенести или выучить?

Ответы [ 9 ]

4 голосов
/ 04 февраля 2009
2 голосов
/ 06 октября 2008

2D или 3D?
В 2D распространенным способом является использование L-систем.
Я также попробовал подход ОО, определяющий объекты для ствола, ветвей, листьев, все расширяя абстрактный класс и реализуя интерфейс Genotype (чтобы варьировать вид деревьев).
Не уверен, что это эффективно (много объектов создано, особенно если я анимирую дерево), но интересно сделать.

2 голосов
/ 06 октября 2008

Есть тысячи методов. Лучший вопрос будет определять «лучший» более ограниченным образом. Мы говорим «лучше», как по скорости рисования (подходит для тысяч или миллионов деревьев)? Лучше как в самом красивом? и т.д.

1 голос
/ 04 февраля 2009

Вот несколько полезных ресурсов:

  • ветка gamedev по теме - содержит некоторые полезные советы / предложения
  • ngPlant - инструмент для генерации процедур с открытым исходным кодом. Он не написан на Java, но вы можете найти идеи в его алгоритмах.
0 голосов
/ 02 февраля 2009

http://www.codeplex.com/LTrees имеет некоторый исходный код. хотя это с ++.

0 голосов
/ 25 ноября 2008

Мне известны две библиотеки, которые позволяют использовать OpenGl с Java.

LWJGL (легковесная библиотека Java-игр), которая, imo, является лучшей из-за своей простоты и сходства с использованием opengl с c / c ++.

JOGL Если вы хотите смешать компоненты Swing с OpenGL, это может быть лучшим выбором, я никогда не использовал его, но несколько лет назад он был довольно глючным, я не знаю, если его созрели с тех пор.

Что касается рисования деревьев, есть много способов сделать это, как сказал другой автор, возможно, вы захотите быть более конкретным.

edit: Думаю, я немного неправильно понял вопрос, да ладно: / Вы можете загрузить в 3d модель дерева и отобразить это.

0 голосов
/ 08 октября 2008

Комбинация OpenSceneGraph и SpeedTree сработала для меня.

0 голосов
/ 06 октября 2008

Если вы серьезно настроены получить красивые, быстрые деревья, есть коммерческая библиотека C ++ SpeedTree . Множество больших игр используют его (например, GTA, Elder Scrolls).

0 голосов
/ 06 октября 2008

Если вы используете Eclipse / SWT, попробуйте Draw 2D.

...