Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Вопрос по поводу версии OpenGL  (Прочитано 12384 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Swa

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Вопрос по поводу версии OpenGL
« : 12 Августа 2009, 22:01:43 »
Здравствуйте.
Заинтересовался программированием графики, поработал с SDL, узнал, что в приложении SDL можно использовать OpenGL. Захотел купить книжку по OGL, но мне интересна одна вещь: на их сайте последняя версия 3.2, а справка только по 2.1. А все книжки, какие я видел описывают максимум 1.4. У меня 2 вопроса: как узнать, какая версия у меня установлена и существенна ли разница в командах версии 1.4 и установленной у меня, то есть если я перепишу пример из книги, будет ли он вообще работать?
(и почему если уже выпущена 3.2 на  офсайте нет по ней документации )
Помогите разобраться.

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #1 : 12 Августа 2009, 22:24:28 »
Самая последняя OpenGl действительно версии 3.х
На данный момент эта версия реально поддерживается только на драйверах Nvidia (> 180 версии)
Есть много хороших книг по версии 2.х
Начни с версии OpenGL 2.x - очень близко к 3.х.
 1.4 лучше не нужно - там фиксированный конвейер - а это прошлое.
 
Также советую после изучения основ изучить библиотеку OpenSceneGraph - отличный пример движка.

Пользователь решил продолжить мысль 12 Августа 2009, 22:27:03:
, то есть если я перепишу пример из книги, будет ли он вообще работать?

будут) Полная обратная совместимость.
« Последнее редактирование: 12 Августа 2009, 22:27:03 от maximum2000 »

Оффлайн Swa

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #2 : 12 Августа 2009, 23:31:37 »
Понятно, спасибо.
Только вот книжек про версию 2.х я не видел в продаже у себя в городе. Хочется именно в бумажном виде. Может в интернет-магазинах посмотреть.

Оффлайн SepticFlesh

  • Участник
  • *
  • Сообщений: 223
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #3 : 13 Августа 2009, 03:18:08 »
1.4 лучше не нужно - там фиксированный конвейер - а это прошлое.
Нет уж, пусть учится, как работает нормальный конвейер, прежде чем переходить к программируемому. 1.4 - это вполне кошерно и удобно для написания игрушек, а вот 1.0 - это да, неюзабельная жесть.

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #4 : 13 Августа 2009, 12:19:06 »
Нет уж, пусть учится, как работает нормальный конвейер, прежде чем переходить к программируемому. 1.4 - это вполне кошерно и удобно для написания игрушек, а вот 1.0 - это да, неюзабельная жесть.

Так он когда 2.х будет учить, он сначала фиксированный пройдет, а потом только программируемый :)

Пользователь решил продолжить мысль 13 Августа 2009, 12:24:04:
Хочется именно в бумажном виде. Может в интернет-магазинах посмотреть.

Или доставкой или может будешь в крупном городе, там купишь.
Если честно, то можно посмотреть "уроки NeHe по OpenGL" - советую. Для старта самое то)
например http://pmg.org.ru/nehe/index.html
« Последнее редактирование: 13 Августа 2009, 12:24:04 от maximum2000 »

Оффлайн Swa

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #5 : 13 Августа 2009, 21:17:18 »
А как всё-таки узнать, какая у меня версия? Насколько я понимаю, реализация GL в убунте - это mesa. Я посмотрел её файлы и там такие строки есть
#define GL_VERSION_1_1   1
#define GL_VERSION_1_2   1
#define GL_VERSION_1_3   1
Значит ли это, что mesa реализует версию 1.3?

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #6 : 13 Августа 2009, 21:52:04 »
glxinfo|grep "OpenGL version"
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #7 : 14 Августа 2009, 02:00:47 »
glxinfo|grep "OpenGL version"

Lion-Simba как всегда на высоте :) Я уже готов был отправить программу для выяснения версии средствами самой OpenGl :)

Оффлайн Swa

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #8 : 21 Февраля 2010, 21:06:12 »
Чтобы не начинать новую тему спрошу тут.
В официальной документации есть функция  http://www.opengl.org/sdk/docs/man/xhtml/glBlendFuncSeparate.xml, там написано, что она поддерживается версией OpenGL 1.4  и выше. У меня glxinfo|grep "OpenGL version" выдаёт 3.0, однако приложение с вызовом этой функции не компилируется. В /usr/include/GL/gl.h её нет. Кто-нибудь знает, почему?

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #9 : 23 Февраля 2010, 15:16:50 »
Странно... на работе посмотрю что за ситуация с этой glBlendFuncSeparate....
Кстати, советую посмотреть на проект OpenSceneGraph.org  - очень хорошее решение для высокоуровнего 3D программироапния на OpenGl...

вот примеры проектов:
http://www.openscenegraph.org/projects/osg/wiki/Screenshots
вот мой проект
http://www.openscenegraph.org/projects/osg/wiki/Screenshots/TSOGU
« Последнее редактирование: 23 Февраля 2010, 15:20:05 от maximum2000 »

Оффлайн Swa

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #10 : 24 Февраля 2010, 23:48:41 »
Как я понял, 3.0 - это версия, которую поддерживает драйвер моей видеокарты. А реализация OpenGL под X11 - Mesa (файл /usr/include/GL/gl.h - именно от Mesa). И хотя у них на сайте написано, что текущая реализация Mesa поддерживает OpenGL 2.1, в файле /usr/include/GL/gl.h определена переменная
#define GL_VERSION_1_3   1, то есть максимальная поддерживаемая версия -1.3. Как всё запутано.

Цитировать
Кстати, советую посмотреть на проект OpenSceneGraph.org
Почитаю на досуге, хотя мне до 3D далеко, хотел сначала с 2D разобраться, а тут такая засада.

Цитировать
вот мой проект
Интересно. А Вы под Linux пишете? А драйверы для виртуальных перчаток сами писали?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #11 : 25 Февраля 2010, 06:27:07 »
Установить SDK от nVidia? скорее всего поможет. GL-библиотека то уже далеко не от Mesa раз дрова nVidia'вские стоят.

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #12 : 25 Февраля 2010, 12:52:15 »
А не пробовал поискать glBlendFuncSeparate в glext.h?
Она там есть и как положено с версии OpenGL 1.4.
Если внемательно посмотреть в вывод glxinfo то в расширениях можно найти GL_EXT_blend_func_separate. Почитай про расширения OpenGL и как с ними работать.

Если ставил SDL то в SDL_opengl.h тоже есть эта функция.
« Последнее редактирование: 25 Февраля 2010, 12:54:49 от Упс »
xUbuntu 12.04

Оффлайн Swa

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #13 : 25 Февраля 2010, 22:40:21 »
Упс, спасибо, Вы были правы.  В этот файл я почему-то не заглянул. Подключил, работает. Просто в книге ещё до главы с расширениями не дошёл.

Yurror , а что такое SDK, можете вкратце объяснить? А на сайте Nvidia ссылка на SDK есть только .exe

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Вопрос по поводу версии OpenGL
« Ответ #14 : 26 Февраля 2010, 04:56:08 »
SDK = Software Development Kit (набор разработчика ПО) обычно включает в себя библиотеки, заголовочные файлы, может включать дополнительные утилиты (компиляторы, препроцессоры, иногда даже свою IDE и прочее)
а вообще http://ru.wikipedia.org/wiki/SDK

 

Страница сгенерирована за 0.073 секунд. Запросов: 25.