Pull to refresh

Comments 102

OpenGL нужно использовать хотя бы небольшой группе людей для сохранения конкуренции.
UFO just landed and posted this here
Думаю что новым возможностям OpenGL надо доучиваться, а новым DirectX переучиваться. Однако выбор мой определила доустановка второй рабочей ОС GNU/Linux, а так же желание использовать некоторые открытые библиотеки, которые как ни странно :) почему то не используют DirectX для отрисовки графики.

А вообще пусть каждый сам для себя решает. Если как утверждают некоторые разработчики OpenGL действительно лучше, так надо наоборот радоваться, что конкуренты пойдут на заведомо худший продукт. Это же только опенсорсники добрые души делятся с миром, но те уже и так определились.
Честно говоря, бросил OpenGL после неудачной попытки настроить Vertex Buffer Objects, ибо это ад наяву.

Злостных кодеров вроде Кармака, которые способны брутфорсом подобрать правильный порядок из 15 OGL вызовов, к сожалению, почти нет.
Если у вас не получилось сделать даже такую простую вещь, то действительно лучше не беритесь за OpenGL.
Вот как пример для кубика. Извиняюсь за assembler — под рукой только такой код.

генерация:
glGenBuffers 1, offset vbo_vertex_ind

glBindBuffer GL_ARRAY_BUFFER, vbo_vertex_ind
glBufferData GL_ARRAY_BUFFER, 8*(3*(2*sizeof(DWORD))), offset vbo_vertex, GL_STATIC_DRAW
glBindBuffer GL_ARRAY_BUFFER, 0
...
вывод:
invoke glEnableClientState, GL_VERTEX_ARRAY
glBindBuffer GL_ARRAY_BUFFER, vbo_vertex_ind
glBindBuffer GL_ELEMENT_ARRAY_BUFFER, vbo_face_ind
invoke glVertexPointer, 3, GL_FLOAT, 2*(3*sizeof(DWORD)), NULL
invoke glDrawElements, GL_TRIANGLES, 36, GL_UNSIGNED_INT, NULL
Вы забыли про наложение текстуры, нормали и данные вершин.
Этот кусок и вырезан из полноценного кода.
Я не стремился дать готовый вариант. Цель была — показать, что работа с VBO ничем не отличается от работы со многими другими основополагающими элементами в OpenGL: дисплейные списки, текстуры, шейдерные программы. Во всех случаях работает одна и таже связка gen+bind+vertex. И в итоге один масштабный draw.
Кто-нибудь помнит последний успешный движок, с рендером на OGL?

irony
Кармак продал душу, OpenGL забыт, всем срочно паниковать.

Unigine. Поддерживает и DX, и OGL.
Речь идет не о местном тормозящем движке, вы же понимаете. Говоря о громких тайтлах, то кроме движка от Starbreeze ничего с ogl и не вспомнить.
Если бы не Torchlight, то нам было бы очень грустно, правда? Становится особенно грустно, глядя на его российское коммьюнити.
Кто тебе сказал что Кармак отказался от OpenGL? Он вроде от linux платформы отказался, по крайне мере так в оригинале было написано. Ogre и Unigine, IdTech (3,4,5,6), Unreal engine (2,3) используют оба api. Все зависит от того на какой рынок ты ориентируешься, если у тебя игроки используют PC и XBox 360 то зачем заморачиваться используй Direct3D, если есть желание окучивать рынки MaC OS и Playstation то тут уже OpenGL, если нужны все платформы, то придется реализовывать смешанный.

> Он вроде от linux платформы отказался
А когда он на неё соглашался?
>Кто тебе сказал
Прочитал, но не о отказе от ogl, а о написании рендера на d3d.

>Ogre и Unigine, IdTech (3,4,5,6), Unreal engine (2,3) используют оба api
Только разработчики обычно используют одно из. :)
>Только разработчики обычно используют одно из. :)
Если их интересует лишь некоторые платформы. В последних 2-х движках рендер написан компаниями которые продают сам движек, а уже разработчики уже непосредственно игр пользуются уже готовыми инструментами и не лезут в то как реализована поддержка API. И к финалу разработки собирают один и тот же код игры под все залицен платформы.
>Если их интересует лишь некоторые платформы.
Таким образом выходит, что win = d3d?
Да, IdTech и UE3 по дуфолту в win — d3d. Вполне логично вроде бы. Но при желании IdTech можно собрать и win = OpenGL.
И мы вернулись к началу, приверженцы как раз негодует от отсутствия ogl в ААА тайтлах.
>Речь идет не о местном тормозящем движке, вы же понимаете.

А о чём? Топовых игр поддерживающих OpenGL огромное количество. Конечно, они ещё чаще всего и DirectX держат, так не в этом суть.

Есть существенный разрыв между играми для Windows и Linux (без wine). А вот между играми Windows которые держат только DirectX и играми, которые держат и DirectX и OpenGL разрыв несущественный.

И ещё надо помнить, что OpenGL тормозит только с дровами от майкрософт (интересно почему бы это :) ). После установки винды ставьте дровишки вашей видеокарты от ATI или NVidia и всё будет путём.
На микрософтовских он чуть ли не софтвейрно там обрабатывается.
Кстати, дрова которые поставляет Windows 7 через обновления — нормально поддерживают OpenGL или нет?
Пробовал — скорость отрисовки упала почти в 10 раз. Более-менее вернул дровами от Intel (тестил на Asus eeePC 1005HA, win7).
А если на более-менее современных картах от ATI\nVidia?
Это была GMA945. На более-менее новых не проверял, вообще Виндой почти не пользуюсь. На нетбук ставил только с целью погонять тесты. Но с дровами от Intel получил в системе OpenGL 1.4 и DX9 с (софтварной правда) поддержкой шейдеров 3.0.
Да, в плане FPS, самописная OGL демка выдает 460 кадров. На X2300Mobile к примеру порядка 1080.
Source поддерживает обе платформы: и OGL, и DX.
Не поддерживает, есть выделенные сервера и все. Эмуляция не в счет.
а причем тут связь серверов и графической библиотеки?
В том, что единственная связь между линуксом и source — выделенные сервера, такие дела.
Эм. мы вроде говорим о графических библиотеках, а не о том, умеет ли source работать с линуксом. Сетевой код — это совсем далеко от графики.

Source OpenGL умеет, но только на PS3.
>мы вроде говорим о графических библиотеках
Поэтому я написал, что единственная, связанная с опенсорс технология — сетевой код.

Дайте пруф о поддержке ogl. Ничего кроме: «Rick Ellis: DirectX only.» — найти не удалось.
А вы то что знаете о Unigine? Постыдились бы бросаться — у меня не тормозил. Сходите скачайте демки, посмотрите чем тестируют карточки в Phoronix, и больше не трольте так погано.
Вы знаете больше, ок. Считаете, что один только графический движок должен так нагружать систему?
Так что, должен ли себя так вести коммерческий продукт?
А зачем паниковать?
Выживает сильнейший.
Ну а кроме того Кармак ждал. Но не дождался. С версии 2.0 (я не беру в расчет 2.1 — столь ожидаемый, но абсолютно невразумительный) до версии 3.0 прошло 4 (четыре) года. и только с 3 версии пошли хоть какие-то стабильные изменения в основной линейке OGL, а до этого все делали 2 движка — на исправлениях nVidia и исправлениях ATI. В итоге местами для более эффективной работы то на одной, то на другой видюхе приходилось писать 2 разных кода.
В dX такого не было. Он выиграл.
>irony
>Кармак продал душу, OpenGL забыт, всем срочно паниковать.

В первой строке ответ на ваш вопрос, а так да. МС победила. Больше всего удивителен хайп вокруг заявления никому не известных девелоперов. Вот если бы старина Гейб анонсировал HL3 на ogl — это да, было бы сильно.
Ну все относительно. Может среди инди-геймдевов — о них и знают, но проблема в том, что в сравнении с DX — OpenGL имеет тот же статус, что и Wolfire в мире БОЛЬШИХ игр.
Хоть тресни, id tech 3. И да, ogl был только в первой части. позже — dx only.
UFO just landed and posted this here
Что-то я сначала галочку не заметил про закрытый блог. Исправил.
Использовние OpenGL это дань уважения к когда-то велкиой и могущественной Silicon Graphics.
Уже тот факт, что этот продукт её детище внушает доверие.
(А директ икс лишь жалкая копия, ИХМО, компании, которая помогла великой упасть в пропасть, см. историю SGI)
>А о чём?
О количестве игровых движков, использующих ogl и количестве тайтлов, построенных на тех самых движках.

>Топовых игр поддерживающих OpenGL огромное количество.
id Tech 3 — максимум таких игр. Напомните, какое это поколение?

>Конечно, они ещё чаще всего и DirectX держат, так не в этом суть.
В этом, MS пришла и заборола рублем.

>И ещё надо помнить, что OpenGL тормозит только с дровами от майкрософт
Знаете, на драйверах от ms я не могу выставить full-hd разрешение и поиграть практически в любую 3d игру, заговор?
>Знаете, на драйверах от ms я не могу выставить full-hd разрешение и поиграть практически в любую 3d игру, заговор?

учите историю. когда MS ушла из OpenGL они заменили лютые библиотеки от SGI на свои тормознутые.
Был намек на тормоза и в d3d приложениях при нативных драйверах. Найдите его.
Ну наверное автор не правильно высказался про драйвера от МС. на драйверах от МС даже 2d нативные приложения тормозят.
Оно называется подтасовкой фактов.
Автор сказал правду, но не теми словами…
Ничего, что там половина правды и целая куча недомолвок?
Намек на тормоза в DirectX, как и в OpenGL при условии нативных драйверов. Не будьте ханжой, ваш аргумент — говно.
Какой зануда!

>И ещё надо помнить, что OpenGL тормозит только с дровами от майкрософт
Ваше?
Там дело гораздо хуже, лучше даже не программировать OpenGL реализацией от майкрософт. Хотя знаешь, если бы ты не ругался на ссылки, а почитал, то тебе бы рассказали, что реализация OpenGL такими дровами идёт или софтварно, или посредством DirectX.

Реальные же драйвера делают не так, поддержка встроена прямо в них. То есть в борьбе за fps эмуляция OpenGL даже через DirectX по любому бы проиграла самому DirectX.
Вы сказали о проблемах с ogl на нативных драйверах, так? Я ответил, что у мс также хреново на нативе и со своей технологией. Вы же начали кидаться ссылками и, возможно, минусовать. Печально.
>и, возможно, минусовать.

Я не могу минусовать или плюсовать, даже если бы захотел ставить кому-то оценки.

тоесть по сути вы сравнили с говном DX и тех кто использует DX? Так держать! мне это нравится.

p.s.
я правильно помню, что любая кроссплатформа использует OpenGL?
>я правильно помню, что
Если говорить о win-linux-mac, то скорее правило. Так как используется открытый id tech 3 или ue. На консолях несколько иначе.
а какая ситуация на консолях? (интересует ps3)

Кстате вот WoW, что использует? работает и на маке и на винде, а так же подвайном без проблем идет на линуксе…
WoW и DX использует, и OpenGL (если запустить c ключом -opengl). Под вайном отлично работает в OpenGL (чуть больше фпс в Ubuntu, чем в Win7), если запускать в DX — куча глюков (вода черная и пр.)

Blizzard разработывает и DX и OpenGL, я вот до сих пор не могу понять, почему нет родного линукс клиента, коль WoW может работать с OpenGL ))
При этом они сто лет обещают его выпустить
> WoW и DX использует, и OpenGL (если запустить c ключом -opengl)

Как и W3. При запуске с ключом -opengl никакой разницы нет под виндовс пускать или под вайном.
засада в поддержке. то, что есть opengl renderer — пол дела, далее надо доделать соответствующий обвяз к двиглу, чтобы оно работало на win/mac/linux.

с wine тоже не все так гладко, EVE Online попробовали и отказались от этой идеи. Слишком сейчас все мутно с графикой под linux. Драйвера ATI — работают через жопу(x1700 mobility — эта жесть). C Nvidia все получше, те работают как надо. Сам wine тоже от регрессий зачастую корячится.
Не перестаю пускать ежедневные лучезарные лучи поноса в сторону ATI.
под linux вообще нет нормальных драйверов для работы
Драйвера есть — Intel ;)
А вот чтобы и драйвера и железки хорошие, таких нет.
>C Nvidia все получше, те работают как надо

Чтобы играть в тот же X3: Reunion без wine — линуксовой сборки, мне пришлось поставить для NVidia проприетарные дрова с сайта производителя.

вайн директикс эмулирует же.
читать выше. Эмуляция вайном директ икса не обьясняет как я играл в вов на PowerPC'ишном маке. И опять же прочитвы выше можно заметить: «если запускать в DX — куча глюков (вода черная и пр.)». :)
>ps3
Знаю о ogl es2, у xbox 360 редакция d3d9.
На моей памяти в список OpenGL игр входят: две последние части хроников ридика (по-моему фанатов у игры хватает), серия игр Пенумбра, и еще что-то, да действительно движок Unigine имеет OGL рендер, но на их сайте я не встретил более менее известных (по крайней мере мне) игр на нем.
Я не программист, поэтому попытаюсь высказать свою точку зрения простого обывателя:
Раньше я разницы по скорости между DX и OGL я не замечал, поэтому выбор шёл от условия «под чем меньше глюков и вылетов», или «где красивее». В компьютерных игрушках DX был зачастую интересней — например в старом CS под DX на стенах оставались следы от пуль, а под OGL нет.
Последние несколько лет игрушки работают стабильно на настройках по-умолчанию, и в настройки графики обычно даже не лезу (о том, что в WOW есть OGL узнал только здесь из комментов)

«Пока DX11-карты станут популярными, до тех пор скорее всего появится OpenGL решение..» — если когда оно появится, оно будет свежим и с кучей багов, а DX уже будет старым и отлаженным. OGL надо быть лучше DX и думать чем привлечь пользователя, а не плестись в хвосте с фразой «а я не хуже». Имхо.
они и так привлекают. OpenGL приложения можно портировать. Вообщем OpenGL взяли правильный курс сейчас. Скоро DX будет запыхаясь догонять OGL.
Если не ошибаюсь, то Crystal Tools engine (a.k.a. White Engine) как раз OpenGL'ный, и вот он уделает любой дргуой движек.

Старый CS не аргумент, даже тогда он уже был старым и уродливым.

p.s.
ну и не могу обрабовать владельцев ящиков: графика на ящике в FF13 будет намного хуже чем на ps3 :)
Графика будет хуже не из-за использования другого API, а из-за меньшего разрешения текстур: FF13 для PS3 выходит на Blu-Ray, а для X360 — на обычном DVD.
а так же производительности. «ps» был совсем уж офтопиком и отвечать на него не надо было :)
> — ААА делаются на DirectX из-за эффекта популярности (мощный PR, в том числе нешарящих игровых журналистов с сравнительными скриншотами в кармане как всегда =), а популярность рождает множество навязываемых домыслов, суеверий и, кажущихся почти ощутимыми, рисков.

Во-первых нешарящий игровой журналист — не редкость, но и шарящих пруд пруди. К ним то и прислушиваются нешарящие.
Во-вторых сравнительный скриншот — прямое доказательство, и если в DX картинка лучше, то она ЛУЧШЕ.
Мощный пиар — детский сад. Любой разраб/издатель знает все необходимые доводы за и против и вряд-ли человек из Ubisoft, например, который решает издавать или нет игру — будет основываться на суевериях и домыслах.
> — DirectX API — высокоуровневое, а через OpenGL можно делать всякое очень низкоуровневое. Поэтому, например, для хардкора в производительности PS3 лучше сразу OpenGL. Тут трейд-офф про скорость получения релизного кода vs скорость в рантайме.

Вообще там несколько другое сказано. Как раз что GL высокоуровнеый, а у PS3 и других есть своё низкоуровневое АПИ:

— While PS3 has an OpenGL wrapper available, developers almost always use libGCM instead! Same for Wii and GX.
— You're right! Sorry about that, in my research I was confused by Sony's public statements that OpenGL ES was their standard API which must have been changed by the time it was released, or just been misreported. The developers I've heard from who work on high-performance graphics for PS3 say that they use libGCM because it's closer to the hardware, giving developers complete control of the PS3 hardware and avoiding the CPU overhead of a high-level API…
да и PS3 никогда DirectX и не поддерживало — отчего и проблемы с кросс-платформенным переносом игр.
Блин, я не понимаю, о чем спорить. Поддерживать надо те библиотеки, которые бытрее работают шире поддерживаются у пользователей. А аргументы насчет кроссплатформенности — глупые по моему, ну что за бред «зато работает на Open Solaris». да что это вообще такое, Open Solaris, и кому он нужен?

Я за то, чтобы игры работали быстро и не тормозили, а у линуксоидов в конце концов есть вайн, пусть сделают адаптер для Win-драйверов видеокарт и успокоятся уже.
Поздравляю. Вы только что продемонстрировали всему Хабру полное незнание предметной области.
>пусть сделают адаптер для Win-драйверов видеокарт
Хотел бы посмотреть на реализацию.

>ну что за бред «зато работает на Open Solaris». да что это вообще такое, Open Solaris, и кому он нужен?
OpenGL нужен не только для отрисовки игр.

UFO just landed and posted this here
Linux нужен не только для игр => Windows для игр, Linux — для всего остального ;)
UFO just landed and posted this here
Я вообще не доганяю. Это какой-то абсурдный холивар:
все большие игры выходят на PS3, PSP, желательно на Mac, Wii
Так выбора ж блин нету, OpenGL. В независимости нравится, не нравится, лучше, хуже. Так есть, это за гранью добра и зла.
На PS3 никто не использует OpenGL.
Медленно и невкусно.
UFO just landed and posted this here
UFO just landed and posted this here
Я и не говорил что его нет. Я говорил что никто не пользуется.
Разницу ощущаете?

UFO just landed and posted this here
libgcm — библиотека для работы с командным буфером GPU
UFO just landed and posted this here
Мне кажется я ответил на ваш вопрос «что же по вашему там используется»?
OpenGL использовался при портировании UE3 года ~4 назад.
Больше применений не встречал.

UFO just landed and posted this here
Наоборот, OpenGL реализован как надстройка над libgcm.
libgcm это удобная либа для работы с голым железом.
Cg же живёт сам по себе.
UFO just landed and posted this here
Вы какой-то упёртый =))
во-первых, там имелось в виду «and PSGL, based on OpenGL ES»
во-вторых, в профайл было сложно заглянуть?
UFO just landed and posted this here
Еще немного в тему: idTech 5 (Rage, Doom4) разрабатывается кросс-платформенным и основной рендер на OpenGL. Поддержка DX будет на уровне DX9. Про это везде написано, пруф найти не составит проблем.

Кроме того, есть интересная картинка сравнения OGL, D3D тут. Интересный момент — качество моделирование лиц на OpenGL.
Only those users with full accounts are able to leave comments. Log in, please.