2014-02-21 2 views
0

Я изучаю компьютерную графику с Java. Мне было интересно, должен ли я изучать Java2D до изучения JOGL, или мне нужно просто изучить JOGL (который также обрабатывает 3D-графику)? Это (я надеюсь) не вопрос, основанный на мнениях, в том смысле, что я ищу правильный путь для подражания. Я полагаю, по-другому, мой вопрос: в чем смысл наличия 2D-библиотеки Java Graphics, если JOGL вокруг?Использование Java Graphics2D vs JOGL

Примечание: моя конечная цель - создать графику для бизнес-приложений.

+0

Если у вас нет опыта работы с компьютерной графикой, я бы очень рекомендовал начать с «Graphics2D», вы можете немного поработать с ним. Когда вы будете готовы попробовать более продвинутые идеи, в том числе более сложные 2D и базовые 3D, перейдите в специализированные библиотеки - IMHO.Graphics2D - это стандартная реализация механизма рисования Java/Swing, стандартизирована на всех платформах и работает в ящике, JOGL - это привязка к определенному движку рендеринга для определенной цели. У каждого есть свое место, и вам нужно решить, исходя из ваших требований в то время – MadProgrammer

ответ

2

Не совсем понятно, что вы подразумеваете под «бизнес-приложениями». Вы не говорите о «бизнесе компьютерной игры», не так ли? ;-)

Серьезно: почти каждый вопрос о форме «Должен ли я использовать X или Y?» имеет те же виды ответов:

  1. «Это зависит от того, что именно вы хотите сделать» и
  2. субъективные.

Класс Graphics2D - довольно абстракция на высоком уровне, и с помощью нескольких линий вы можете выполнять свои первые пользовательские операции рисования. И они интуитивно понятны. Вы хотите нарисовать линию с Graphics2D? Ну, позвоните graphics.drawLine(0,0,100,100);. Вы быстро почувствуете успех. Базовый код для начала удобно суммируется в http://docs.oracle.com/javase/tutorial/uiswing/painting/, и со знанием от http://docs.oracle.com/javase/tutorial/2d/geometry/index.html и некоторой фантазией вы уже можете добиться приятных эффектов.

OpenGL - это другой мир. В первую очередь его фокус - 3D графика, и это не «просто супермер 2D». В то время как вы технически можете сделать 2D-графику с OpenGL, это не то, для чего это было сделано. Это намного ближе к оборудованию, предназначенному для высокопроизводительного управления большими 3D-объектами с мощными (и сложными) методами рендеринга. Вы хотите сделать линию с OpenGL? Ну, если вы хотите сделать это с помощью чистого, современного (!) OpenGL, он будет включать в себя, может быть, 100 строк кода, включая ваши собственные шейдерные программы, написанные в GLSL. И без глубокого фона некоторые области математики и графических карт, и без чтения сложных учебников или книг (например, http://arcsynthesis.org/gltut/), вы вряд ли сможете привести что-нибудь на экран на всех.

Итак, подведем итог его, относительно вашего фактического вопроса:

, что точка, имеющий Java Графика 2D библиотеку, если JOGL вокруг?

Если вы хотите создать некоторые 2D-чертежи, возможно, некоторые штриховые, круговые или линейные диаграммы и, возможно, несколько изображений, вы просто не будете использовать OpenGL из-за его сложности. Java2D является частью стандартного API, и он предназначен для таких вещей (хотя, конечно, все еще существуют разные более специализированные библиотеки для разных целей). Если вы хотите сделать что-либо, что выходит за рамки 2D, или использовать некоторые действительно сложные эффекты рендеринга, вам придется использовать OpenGL.

Смежные вопросы