PDA

Просмотр полной версии : OpenGL 3 против DirectX 11: война закончена


dch
09.10.2008, 16:16
Ещё десять лет назад API OpenGL и Microsoft DirectX воевали между собой за рынок 3D-графики. С тех пор много изменилось, и с выходом DirectX 8 уже OpenGL оказался на догоняющей позиции. Многие надежды были направлены на новый OpenGL 3, который был объявлен на SIGGRAPH, однако третья версия API обернулась разочарованием. Между тем, Microsoft опубликовала детали о грядущем DirectX 11. Всё это мы подробно рассмотрим в нашей статье.

http://www.thg.ru/graphic/open_gl_3_directx_11/images/pic1.jpg

OpenGL 3 против DirectX 11: война закончена (http://www.thg.ru/graphic/open_gl_3_directx_11/index.html)

Fasterpast
09.10.2008, 17:58
Ну как обычно.. мелкомягкие всё давят своим весом...

system
10.10.2008, 00:55
тонна информации - аж голова затрещала. очень позновательно, но очень тяжело думать о том что microsoft будет монополистом скоро везде=(

Кулмен
10.10.2008, 01:02
Пасотрим че будет после лараба с его трасировкой

AngelQ
10.10.2008, 02:24
Небольшая опечатка в третьем предложении:
...Частично это произошло из-за успеха движка Quake; надёжная поддержка OpenGL стала важным фактором, чтобы заставить производителей GPU выпускать полный комплект драйверов. Фактически, это дало 3dfx одно из ранних преимуществ и отбросило ATI в аутсайдеры, пока компания решала проблемы с поддержкой OpenGL.


Всего одна буква, а смысл кардинально меняется ATI (wait) API

sergey33
10.10.2008, 10:32
renderPlasticSpot () : // rendering plastic using spot light :
renderPlasticOmni () : // rendering plastic using omni light :
renderMetalSpot() : //rendering metal using spot light ...
renderMetalOmni() : //rendering metal using omni light :
Пример очень простой, поскольку здесь всего два материала и два типа освещения, но на практике их может быть несколько десятков. Если продолжать таким же образом, то ситуация может быстро выйти из-под контроля. Мы получаем огромное количество дублированного кода, и если обнаруживается какая-либо ошибка, её нужно исправлять во всех шейдерах. Чтобы решить эту проблему, программисты используют так называемый uber-shader, который соединяет вместе все комбинации.

Render() #ifdef METAL // code specific to metal material #elif PLASTIC // code specific to plastic material #endif #ifdef SPOT // code specific to spot light #elif OMNI // code specific to omni light #endif
Это решение устраняет проблему, генерируя шейдеры "на лету" из общих сегментов кода. Недостатком является то, что шейдеры сложнее читать, да и требуются дополнительные усилия, чтобы удостовериться, что все сегменты есть там, где требуется. Но с Direct3D 11 можно сделать код намного лучше читаемым, используя производные интерфейсы и классы:

Light myLight; Material myMaterial; Render() myMaterial.render (); myLight.shade ();
Light и Material - это интерфейсы, а код содержится в производных классах OmniLight и SpotLight, PlasticMaterial и MetalMaterial. Поэтому код полностью размещён в одном месте, правки вносить проще. В то же время и удобство чтения не страдает благодаря организации кода, напоминающей принцип виртуальных функций в объектно-ориентированных языках. Эта функция наверняка будет с одобрением встречена программистами, хотя геймерам она вряд ли что-либо даст

--------------------------------------------------------------------

Немного прокомментирую. На самом деле первый код более эффективный, он включается в программу на этапе компиляции и не влияет на сложность программы. В зависимости от ситуации компилируется одно из этих действий. Переход на объекто-орентированный подход хуже с точки зрения быстродействия и тут вся надежда на очень крепкое современное железо, способное продавить недостатки кода.

Unre gistered
10.10.2008, 14:02
У прямого икса область применения - только виста (читай новый улучшенный неизвлекаемый анальный зонд)

У опенглюка область применения - практически все ОС.

Детишки-гамеры будут играться на висте, а кому работать нужно - те на чем угодно будут работать.

dude
11.10.2008, 01:30
Вычислительные шейдеры - ОГРОМНЫЙ плюс фанатам ati - можно будит не грустить о том, что видюха не потдерживается сuda.
И очень приятно, что MS взялась за многопоточность.
Скорее бы новая винда, новый директ икс и кнечно видюхи под всё это :) ну и игрухи конечно.
Эээх ещё бы трассировку лучей для большего реализьму )

Frolov
11.10.2008, 12:55
Самое главное что-бы пользователи увидели реальную пользу от перехода на дх11,а не как это было с дх10!

Valimut
11.10.2008, 12:58
да на 10 пока особенно и не перешли. В первую очередь из за низкой производительности видюх под него :) А обещали помница чуть ли не на 100% все полетит быстрее на том же железе.

dakar
11.10.2008, 14:55
Из статьи уже понятно что нагрузка на ГПУ возрастёт непропорционально графическим красотам.

Indigo-82
16.10.2008, 12:09
ну тут предельно все понятно!
Не охота чтобы Микрософт стала монополистом для АПИ да и вообще у пользователя всегда болжен быть выбор а если его нет то ето нарушении прав человека.. Как гласит конституция... Я например Голосую за Пен ЖЛ..

Добавлено через 1 минуту 20 секунд
Из статьи уже понятно что нагрузка на ГПУ возрастёт непропорционально графическим красотам.

угу тока все от оптимизации зависит... и тогда на радиках 5хххх можног в полне комфортно гамить в ДХ11

Добавлено через 4 минуты 37 секунд
не могу сделать подпись со своей конфигой.и аватар . хз не вижу куда жать:( помогите Ася: 262636800 спасибо

stalkerg
07.02.2009, 16:12
Поскольку обе HD-приставки на рынке используют GPU DirectX 9, у разработчиков есть все стимулы, чтобы придерживаться предыдущего API Microsoft

Враньё! Sony PS3 и PSP работают на OpenGL(можете просто открыть SDK и посмотеть если не верите)!!!

Так что DX11 далеко не выйграло у OpenGL!
В OpenGL совсем другая модель работы и подержки фич и сравнивать так дуболомно DX и OpenGL невозможно да и не просто DX, а только D3D.

OpenGL сейчас самый реалистиный, продуманный и адекватный API для 3D графики.

Zhanik
29.10.2009, 07:43
>OpenGL сейчас самый реалистиный, продуманный и адекватный API для 3D графики.
+1 Кроме того, он доступен практически для всех ОС.

vipeRzz_91
29.10.2009, 14:01
OpenGL
Zhanik, и на его основе аж 3% игр.

heavy-razzer
29.10.2009, 14:54
Просто игрушки почти все под Винду делаются. или под консоли с ДХ. Вот и получается такое.

dr-web
29.10.2009, 15:30
Доброго времени суток.
Мне больше всего понравилось : Многие из вас будут удивлены,но досихпор современные движки используют один процесс для рендеринга.
Правда здорого:)
Нужно добавить еще ядер,возможно заработает быстрее:)
С уважением к читателям.