Anton Golinko (8vmr) wrote,
Anton Golinko
8vmr

Category:

Что же случилось с OpenGL 3.0 ?

OpenGL3
11 августа в публичном доступе появилась спецификация долгожданного OpenGL 3.0. Но, увы, ожидания не оправдались. В новой версии стандарта практически не добавилось ничего нового: только стандартизированы старые расширения, и введен раздел "The Deprecation Model". Это почти тот же облом что и с версией 2.0, когда по-сути ничего не изменилось. Вот и новую версию тоже следовало б назвать, скажем, OpenGL 2.2, а не так как сейчас.

Хотя на официальном форуме полно матов и ругани в сторону Khronos'а, но считаю что не все так плохо, и хоронить OpenGL еще очень и очень рано.

MPC: So, you said Rage is a 60Hz game. Is it an OpenGL or DirectX game?

JC: It’s still OpenGL, although we obviously use a D3D-ish API [on the Xbox 360], and CG on the PS3. It’s interesting how little of the technology cares what API you’re using and what generation of the technology you’re on. You’ve got a small handful of files that care about what API they’re on, and millions of lines of code that are agnostic to the platform that they’re on.


И действительно, с какой стати все начали ныть про толстый API? Да он таков. Но что с этого? Ведь точек соприкосновения (читай: кода) серьезного 3D-движка с этим API не так уж и много, а точнее совсем мало. Кармак прав: какая разница насколько кривой/прямой API? Главное — возможности! А они у OpenGL есть.

Зачем люди так хотят современного API? Ну зачем? Что он им даст?
Ничего кроме удобства.

И ради этого удобства ломать совместимость и переписывать имеющийся код? Ну, это будет по душе только таким идеалистам как я... :)

Стадный эффект: кто-то начал ныть что нет удобного API, как сразу же началась массовая истерика. Ну не будет этого API в ближайшее время, ну и что? До этого жили ж как-то, и жили со старым, толстым, и сложным OpenGL, вместо красивого и гламурного DX10. Было сложно, да. Но OpenGL не был мертв. Живой он и сейчас, только стал немного лучше.

Спрашивается, так чего же хоронить?
(хотя комисию лишний раз поругать будет полезно, да)

Новый API будет хорош для написания нового кода. Для изучения OpenGL с нуля. Для изучения новых фич. В случае, когда это все известно и все уже написано толку от нового стандарта не так уж и много. А еще хуже будет, если этот стандарт окажется непродуманным и сырым. Если опять появится "extention hell". Если придется снова делать linebreak. Так что пусть думают и не торопятся (хотя совесть тоже надо иметь, да)...

Что сделал Khronos:
  • По возможностям, DX9 уже не конкурент. Прелести DX10 тоже меркнут (особенно в свете Vista Only)
  • API обратно совместим со старым
  • При этом есть хорошая "подготовка" к linebreak в API (Спецификация содержит раздел "The Deprecation Model", где подробно расписано, какая часть API будет отброшена в последующих версиях. Помимо этого с помощью расширения ARB_create_context можно создать контекст, в котором весь устаревший функционал не будет работать, а только сообщать об ошибках.)
  • Драйвер может использовать отдельный codepath для forward-контекста
А что с новым API?
А что с ним должно быть? Думают... Правда долго... Очень долго...
Ведь следующая версия OpenGL должно прослужить до конца эры нынешних растеризаторов (Да, да, рейтрейсинг уже маячит на горизонте).
А еще есть наполеоновские планы связать OpenGL с еще одним стандартом — OpenCL. И это вполне логично: использовать результаты вычислений OpenCL как входные данные для OpenGL (например, использовать расшаренные buffer objects)

PS: OpenGL is not dead. Just Khronos did not bring it out of the coma!
Tags: программинг
Subscribe

  • The Zen of Python

    Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is…

  • Qt becomes LGPL licensed

    Компания Nokia объявила, что начиная с версии 4.5 (ориентировнчно март 2009) платформа Qt будет доступна также под лицензией LGPL 2.1. Это…

  • Здравствуй, мир!

    Hello world на трехстах языках программирования

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments