Каковы различия между OpenGL, библиотеками GTK и QT?

Вы можете использовать Операторы короткого замыкания для преобразования назначений doc.uri и doc.info в:

doc.uri = doc.uri || () => {shouldUpdate = true; return encodeURI(offer.title)};
doc.info = doc.info || () => {shouldUpdate = true; return {
    activation: offer.activation,
    image: offer.image
}};

23
задан casperOne 14 December 2011 в 18:13
поделиться

4 ответа

OpenGL - это библиотека для рисования графики на низком уровне. Это превосходит в основном в 3D-графике. Наиболее важным конкурентом OpenGL является Direct3D (, а не весь DirectX).

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

Для повседневного взлома GL может служить многим необычным целям. Причина в том, что вы можете использовать вычислительную мощность графического процессора для задач, связанных с графикой. Для чего-либо неграфического, более новые языки, такие как CUDA, также существуют для доступа к GPU.

Несмотря на то, что настоящие сильные стороны GL заключаются в рендеринге 3D-сцены, его часто также используют для 2D-манипуляции или композиции. Причина в том, что 2D-архитектуры ускорения видеокарт часто не достигают мощности (свободы) или производительности GL. Вот почему иногда GL используется для вывода видео (в основном, масштабирования) или задач смешивания, даже если для этих задач было бы доступно специальное 2D-ускорение. Mac OS X является ярким примером того, как весь рабочий стол (опционально) визуализируется через GL, чтобы обеспечить привлекательные эффекты без высокой загрузки процессора. Но его также можно использовать, например, для смешивания сглаженных глифов текста на текстурированном фоне.

Как только вы выполните графическое, критически важное для производительности задание, вы, вероятно, захотите, чтобы GPU выручил (возможно, даже если вы не рисуете на экране), и тогда OpenGL - это чистый, стандартизированный, кроссплатформенный ответ на твои нужды. Сегодняшние наборы инструментов с графическим интерфейсом в основном предлагают не графическое ускорение, а включение визуализации GL в их виджеты. Таким образом, вы можете использовать их для рисования пользовательского интерфейса и включать вашу графику реального времени, критичную для производительности, где это подходит. Создание целого пользовательского интерфейса внутри GL - это боль, но есть и решения для этого (типичные сценарии использования - игры с игровым интерфейсом).

29
ответ дан 29 November 2019 в 01:10
поделиться

Это - что-то более фундаментальное. OpenGL позволяет Вам выполнить, низкоуровневый рисунок (думайте, "чертят линию отсюда до здесь", а не "тянут кнопку"). Операции OpenGL также часто аппаратно ускоряются и таким образом очень эффективные, и API OpenGL позволяет Вам легко работать с 3D.

Выбор между OpenGL и инструментарием GUI как QT или GTK действительно зависит от того, пытаетесь ли Вы потянуть элементы UI для своего приложения или хотеть очень точную регулировку по тому, как оттянута Ваша графика.

Иногда, инструментарии GUI используют OpenGL под покрытиями для рисования их экранных элементов.

17
ответ дан 29 November 2019 в 01:10
поделиться

OpenGL - это графический API, на котором построены более сложные графические библиотеки, ориентированные на пользователя. Если вы заинтересованы в разработке графики и, в частности, в трехмерной графике, то вам стоит познакомиться с ней. Это и чрезвычайно мощная система, которая может делать все, от рисования линий до рендеринга Quake, до обработки фотореалистичного атмосферного рендеринга.

Отправной точкой для всего, что связано с OpenGL, является OpenGL.org , в котором есть ссылки на все, что вам нужно.

Если вы предпочитаете учебник, и это не плохая идея с OpenGL, то окончательный текст - «Руководство по программированию OpenGL», в просторечии известное как «Красная книга» из-за его обложки. Вы можете дополнить это «языком затенения OpenGL» (или «Оранжевой книгой»), который делает то, что говорит.

Одна из приятных особенностей OpenGL заключается в том, что существует простой набор инструментов для тестирования - GLUT, который был реализован на большинстве языков с привязками и который необычайно прост в настройке для экспериментов и, как правило, с ним можно взломать.

Так иди возьми свой чайник!

9
ответ дан 29 November 2019 в 01:10
поделиться

GTK, QT, MFC, wxwidget и т.д. является инструментариями работы с окнами - они обеспечивают средства управления, такие как диалоговые окна, виджеты, кнопки и т.д. для создания gui приложений.

Одни из средств управления, которые они обычно предоставляют, являются холстом, который можно привлечь с графическими командами (drawline, нарисовать круг и т.д.). Они, вероятно, также предоставляют холст OpenGL также, что можно продвигаться с командами OpenGL.

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

Только для создания вещей немного более сложными существуют также инструментарии работы с окнами, записанные в OpenGL, где OpenGL обеспечивает ряд кнопок, диалоговые окна и т.д. в сцене И существуют времена, когда (негласно) все элементы GUI, используемые чем-то как QT, на самом деле оттягиваются OpenGL!

6
ответ дан 29 November 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: