Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OpenGL || DirectX

12K
06 февраля 2006 года
IPz
30 / / 14.01.2006
Покоя не дает такой вопрос. Стал выбирать графи библиотеку под винду. Мне понравился OpenGL, потому что С знаю, а С++ через который DirectX почти нет.
Однако выяснилось, что OpenGL работает с видяхой через GDI. Ну вот так доки говорят. При этом вроде считается что GDI медленный. Значит DirectX быстрее пашет чем OpenGL. Где ошибка в рассуждении?

Помогите вообщем разобратся, из док в интернете ничерта не понятно. Одни говорят опенгл рулит, другие - директх рулит
12K
06 февраля 2006 года
IPz
30 / / 14.01.2006
два совершенно противоположных утверждения, как это понимать?

1.

http://www.nvworld.ru/docs/pr_video.html

[SIZE=3]
[ приложение использующее OpenGL "общается" с любой видеокартой практически напрямую, посредством нижнего слоя DirectX интерфейса, и работает в обход большей части Windows ]
[/SIZE]

2.

http://codenet.ru/progr/opengl/faq/gl_017.php

[SIZE=3][Можно ли в OpenGL получить прямой доступ к видеопамяти, как это делается в DirectX ? Нет, OpenGL - клиент-серверная идеология; связь между клиентом и сервером осуществляется по потенциально медленному каналу связи (как пример - скорость шин PCI и AGP намного ниже, чем внутренних трактов графического процессора, и шины 3D-чип - локальная видеопамять). Видеопамять находится на сервере, в роли которого может выступать как Ваша видеокарта, так и другой компьютер. В связи с этим функции вроде glReadPixels, glDrawPixels, glTexImage... и т.д. работают ужасно медленно, и, кроме этого, вызывают блокировку 3D-конвейера до завершения операции.][/SIZE]
255
06 февраля 2006 года
Dart Bobr
1.4K / / 09.04.2004
Блин, ну и бред, причем в обоих случаях.
Для начала:
"приложение использующее OpenGL "общается" с любой видеокартой практически напрямую, посредством нижнего слоя DirectX интерфейса, и работает в обход большей части Windows"
Это гнусный обман. Никакого DirectX-интерфейса OpenGL не использует. Он был написан задолго до выхода первой версии DirectX. Что значит: "в обход большей части Windows" ваще не понятно. DirectX работает через HAL, то-есть уровень абстракции от железа. По-этому ему абсолютно безразлична твоя видеокарта, главное что-бы были дрова. Если твое железо не может что-то сделать, то DirectX пытается это сэмулировать при помощи HEL(Hardware Emulation Level). Просто DirectX-приложения можна написать так, что им не потребуется ждать сообщений, которые поступают главному окну. А именно это и жрет "кучу" кадров.

Это тоже интересное высказывание:
"Можно ли в OpenGL получить прямой доступ к видеопамяти, как это делается в DirectX ? Нет, OpenGL - клиент-серверная идеология; связь между клиентом и сервером осуществляется по потенциально медленному каналу связи (как пример - скорость шин PCI и AGP намного ниже, чем внутренних трактов графического процессора, и шины 3D-чип - локальная видеопамять). Видеопамять находится на сервере, в роли которого может выступать как Ваша видеокарта, так и другой компьютер. В связи с этим функции вроде glReadPixels, glDrawPixels, glTexImage... и т.д. работают ужасно медленно, и, кроме этого, вызывают блокировку 3D-конвейера до завершения операции".
Клиент-серверная идеология это ваще не из этой оперы. Шоб сказать покороче, замечу, что все новые возможности видеокарт имеют свои собственные расширения OpenGL. И с их помощью можно не только загружать данные прямо в видеопамять, но и использовать шейдеры, для внесения изменений в процесс рендеринга. Видимо автор кроме стандарта 1.1 ничего не видел в своей жизни.

То-есть OpenGL и DirectX предоставляют одинаковые возможности. НО! OpenGL кроссплатформенный стандарт. А DirectX нет. Для того что-бы использовать новую фичу видяхи нужно ставить новый DirectX. А с OpenGL, эту фичу можна использовать даже имея стандарт 1.1 С другой стороны DirectX, более удобен и нагляден для програмирования за счет своей COM-архитекутры.

"Однако выяснилось, что OpenGL работает с видяхой через GDI"
Откуда такой пробел в знаниях?
GDI - к видяхе не имеет ни малейшего отношения. GDI - это интерфейс, при помощи которого осуществляется вывод на монитор. Ну, и в некоторых случаях чтения пикселей.
Читай Краснова. У него OpenGL, неплохо описан.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог