Привет друзья. Последние мои статьи были ориентированы на тему графики и видеоадаптеров. Думаю, что тему эту продолжу раскрывать и дальше. В прошлых статьях мы разговаривали про DirectX и шейдеры, сегодня окунемся в мир OpenGL. Узнаем что это такое, где скачать и для чего он нужен. Тема будет рассчитана на тех кто только этих заинтересовался и кому очень интересно узнать что-то новое про компьютеры. Томить не буду начну писать. Приятно вам чтения 🙂
OpenGL — это графический стандарт в области компьютерной графики. На данный момент он является одним из самых популярных графических стандартов во всём мире.
OpenGL переводится как Открытая Графическая Библиотека (Open Graphics Library), это означает, что OpenGL — это открытый и мобильный стандарт. Программы, написанные с помощью OpenGL можно переносить практически на любые платформы, получая при этом одинаковый результат, будь это графическая станция или суперЭВМ.
OpenGL освобождает программиста от написания программ под какое-то конкретное оборудование. Если устройство поддерживает какую-то функцию, то эта функция выполняется аппаратно, если нет, то её реализацией занимается программа-библиотека.
На одном популярном сайте можно найти подробности сего стандарта:
Он включает в себя около 150 различных команд, с помощью которых программист может определять различные объекты и производить рендеринг. Говоря более простым языком, вы определяете объекты, задаёте их местоположение в трёхмерном пространстве, определяете другие параметры (поворот, масштаб, …), задаёте свойства объектов (цвет, текстура, материал, …), положение наблюдателя, а библиотека OpenGL позаботится о том чтобы отобразить всё это на экране.
Как вы могли понять из выше описанного. Что OpenGL, это всего лишь некая описанная спецификация по 3D графике. Чтобы эту спецификацию преобразить в жизнь необходимо написать (реализовать) код. Код затем упаковывается в специальную библиотеку. И вот таких библиотек существует несколько, от разных программистов.
Первая из этих библиотек называется GLU. Эта библиотека уже стала стандартом и поставляется вместе с главной библиотекой OpenGL. Следующая библиотека, также широко используемая — это GLUT. Это также независимая от платформы библиотека. Она реализует не только дополнительные функции OpenGL, но и предоставляет функции для работы с окнами, клавиатурой и мышкой. Есть ещё одна библиотека похожая на GLUT, называется она GLAUX. Это библиотека разработана фирмой Microsoft для операционной системы Windows. Она во многом схожа с библиотекой GLUT, но немного отстаёт от неё по своим возможностям.
Хотя библиотека OpenGL и считается одной из лучших библиотек, но существует она в этой отрасли не одна. Есть у неё один прямой конкурент, о котором я рассказывал в одной из прошлой статей. И этим конкурентом считается Direct3D из пакета DirectX, разработанный фирмой Microsoft. Direct3D создавался исключительно для игровых приложений. Между ними существует множество различий, из наиболее явных можно выделить, что Direct3D осуществляем поддержку начиная с дешёвого оборудования, а OpenGL же поддерживается не на всех графических картах.
В случае если Вы уже установили драйвера на свою видеокарту, то нет. Так как последняя версия OpenGL устанавливается при установке драйверов от вашей графической карты.
Чтобы установить новую версию OpenGL необходимо обновить драйвера вашей видеокарты. Зайдите на сайт производителя Вашей видеокарты: NVIDIA, AMD или прочее. Скачайте последние драйвера для вашей карты, установите их.
Например, моя видеокарта Radeon 7850. Захожу я на сайт www.amd.com нахожу там страничку с моей видеокартой, смотрю технические характеристики.
Как можете заметить, с OpenGL 4.2 мой видеоадаптер дружит. Теперь подбираем драйвера.
Да. Обе программы включены в версию Windows, работают на высокой скорости и предоставляют много функций для геймеров и видеоредакторов. Поэтому нет поводу переживать, насчёт их совместного «проживания» на вашем компьютере 🙂
На этот вопрос нельзя дать однозначной инструкции. Вообще по умолчанию поддержка сей технологии прописывается создателем игры ещё в момент написания кода. И использование скажем DirectX или OpenGL, может настраиваться через определённый пункт в меню игры, либо включать самой игрой по-умолчанию. Поэтому если создатель игры не выпускает дополнительный обновлений и инструкций к ним по установке скажем дополнительных библиотек, то нет смысла Вам думать об этом вопросе . Ну а если какие-то дополнения вышли, скажем на тот же Counter Strike 1.6, энтузиасты написали чит (а чит — это плохо!! атата), то для этого установки необходимо скачать небольшой файл.dll и закинуть в корневую директорию игры, а затем в настройках игры выбрать пункт OpenGL.
За счёт этого игра начинает использовать функции написанные внутри этого файла.
Вот и пробежались мы по ещё одной библиотеке для работы с графикой. OpenGL скажем такая специфичная вещь, которая в большей степени применяется в профессиональной деятельности для 3D моделей. В играх по большему счету хватает и функций Direct3D, да даже больше. Взять недавно вышедшую версию 12. Но OpenGL тоже не стоит на месте и с определённым промежутком времени выпускает новые версии из последних — версия 4.5 от 11 августа 2014 года.
Вопрос: Определить версию opengl
Ответ: во первых должен использовать VBO. т.е glGenBuffers, glBindBuffer и т.п. хотя эта штука поддерживается с 1.5. Во вторых должен пользовать шейдеры. т.е glCreateProgram, glLinkProgram, glSetShader и т.д. ну и в комплекте с кодом должен быть код шейдеров (хотя до 3.3 обязаловки на шейдеры нет, но без шейдеров от 2.0 толку что от 1.5).
Вопрос: Какую версию OpenGL выбрать, чтобы приложение поддерживало наибольшее количество видеокарт?
Ответ:
В общем как думаю я.
Сначала количество пользователей пк увеличивалось экспоненциально и я думаю что своего пика этот рост достиг где то в промежутке 2008-2011 годов (для каждых стран этот пик был в разное время, а где то еще может быть и не достиг) и теперь этот прирост уменьшается.
Я бы собственно отталкивался от этого пика, то есть.. я бы посмотрел какая версия OpenGL была в тот момент времени и использовал ее для своей цели, если бы мне надо было чтобы поддержка была наиболее вероятна. Ну может еще минус пару месяцев.. то есть то время пока пк от производителя идет до покупателя.
Вопрос: Выбор оптимальной версии OpenGL
Ответ:
Сообщение от 8Observer8
У меня такая ситуация, что я собираю (в exe) игры на современном ноуте на ОС Win7.
Не имеет значения на чём собирать.
Для движка важна конфигурация машины, на которой он запускается.
Сообщение от 8Observer8
Получается, что движок собирает exe таким образом, что при запуске exe приложение само выберет, что ему использовать: OpenGL 2.0 или OpenGL 4.x?
В exe заключён движок.
Он-то и собирает свою конфигурацию динамически при запуске из имеющихся модулей.
Вопрос: Версия OpenGL
Ответ: Если не пользоваться расширениями и функциями типа glCreateShaderObjectARB(..), glAttachObjectARB(..) и т.п. (т.е. совсем обойтись без любых шейдеров), то это и будет OpenGL 1.5
Вопрос: Определить версию Windows
Приветсвую всех.
Столкнулся с такой проблемой, надо определить версию ОС, не используя GetVersionEx. Дело в том, что на msdn по поводу этой функции написано:
Цитата |
Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). Once an application is manifested for a given operating system version, GetVersionEx will always return the version that the application is manifested for in future releases. |
Вот, собственно и вопрос: есть ли какие способы определить версию винды используя только user-mode функции (RtlGetVersion не подходит, т.к. она выполняется в kernel-моде).
Это сообщение отредактировал(а) rudolfninja
- 13.8.2015, 12:16
Вопрос: Определить версию установленного ASP.NET
Ответ:
Сообщение от nevbie
или она соответствует версии NET Framework?
Она не может отсутствовать, ибо это и есть NET Framework , просто несколько сборок из его состава.
Несомненно, многие геймеры знают, что для корректной работы таких известных игр, как Minecraft или CS, одним из самых основных условий является наличие в системе установленных последних версий драйверов OpenGL. Как обновить этот пакет драйверов, сейчас и будет рассмотрено, поскольку, как и любое другое программное обеспечение, они могут устаревать. Именно поэтому иногда возникают проблемы с запуском любимых игр.
Прежде всего, если при запуске игры или какого-то специфичного приложения система сообщает, что драйверы OpenGL нуждаются в обновлении, следует использовать самое стандартное решение.
Для активации процесса следует войти в стандартный «Диспетчер устройств», что можно сделать из «Панели управления», раздела администрирования компьютера или командой devmgmgt.msc через строку консоли «Выполнить», и найти там установленный видеоадаптер.
Апдейт можно запустить, используя одноименную команду в меню правого клика или в разделе свойств устройства. Если указать автоматический поиск, это может не дать результата, и система сообщит, что самый подходящий драйвер уже установлен. Поэтому желательно сначала обратиться на сайт производителя оборудования, выбрать свою модель графической карты, скачать самый новый драйвер, а при установке указать местоположение сохраненного дистрибутива.
Для владельцев чипов NVIDIA и Radeon задача может быть несколько упрощена. Как правило, для них в комплекте в предустановленном виде поставляются специальные управляющие программы вроде PhysX и Catalyst. Именно поэтому обновить драйвер OpenGL можно с их помощью.
Если по каким-либо причинам такие утилиты отсутствуют, следует их просто скачать и интегрировать в систему. При наличии постоянно активного интернет-подключения они пригодятся не только для настройки игр, а и для автоматического слежения за появлением новый версий необходимых драйверов, включая и OpenGL.
В принципе, если такой вариант пользователю не нравится, можно воспользоваться не менее интересными программами наподобие Driver Booster, которые без участия пользователя обновляют драйверы абсолютно для всех «железных» и программных устройств, установленных на компьютере или ноутбуке. Приложение в процессе сканирования системы само определит версию драйвера OpenGL. Как обновить его? Нужно всего лишь согласиться с предложением установки найденных апдейтов. По завершении процесса обновления в обязательном порядке потребуется полная перезагрузка.
Наконец, можно установить специальную утилиту под названием OpenGL Extensions Viewer, с помощью которой можно и узнать версию установленного пакета драйверов, и обновить его до последней версии.
Однако обновление может и не дать желаемого положительного результата без апдейта платформы DirectX, которая является неким связующим мостом между железом и программным комплексом в плане мультимедиа.
Узнать установленную версию можно при помощи команды dxdiag, вводимой в меню «Выполнить». Загрузить новый дистрибутив можно с официального сайта поддержки Microsoft в разделе Downloads.
Как уже понятно, DirectX OpenGL обновить можно обычным стартом процесса инсталляции загруженного дистрибутива. Преимущество этого обновления состоит еще и в том, что в самом диалоговом окне DirectX можно провести ряд тестов, включая производительность DirectSound, ffdshow, Direct3D и т. д.
Если вдруг ни одно из вышеперечисленных решений не помогает, вероятнее всего, причина кроется только в том, что видеоадаптер инсталлируемую версию OpenGL попросту не поддерживает, поэтому, как ни пытайся, драйвер установить не получится. Единственным выходом станет установка более мощной видеокарты.
Кстати сказать, наиболее часто такая проблема встречается в случае с интегрированным видеочипами стандарта video-on-board, которые встроены в материнские платы. С дискретными видеокартами, как правило, таких проблем нет (естественно, при условии, что чип не является слишком устаревшим и изначально поддерживает технологию OpenGL). Как для таких карт, думается, уже понятно. Но иногда может потребоваться апдейт платформ JAVA Runtime или даже.NET Framework от Microsoft - об этом тоже забывать нельзя. Но как правило, в большинстве случаев этого делать не требуется - достаточно и параллельно использовать утилиту OpenGL Extensions Viewer.