IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Различие между OpenGL и DirectX? (http://www.imho.ws/showthread.php?t=121013)

The Pig 04.07.2007 01:32

Различие между OpenGL и DirectX?
 
Вопрос заслуживающий быть занесенным в FAQ для начинающих.
Есть некоторый опыт работы с DELPHI (простые утилиты походу)
Нужно:
реализовать простые динамические 2D эффекты с изображением - изменение прозрачности, масштабирование, вращение и пр. Скорость довольно важна, нужно чтобы все было плавненько.
Вопрос:
что выбрать - OpenGL или DirectX?
критерии - что проще в осовоении, более доступно.
Как я понимаю, это 2 разных подхода, один специфически борландовский и вроде бы заглохший, второй процветающий микрософтовский.
Спасибо заранее за ответы.

Borland 04.07.2007 08:14

The Pig, неправильно понимаешь...
Сколько помню, OpenGL является развитием открытой версии GL, специфического API для работы с 3D-графикой от SGI (ранее Silicon Graphics Inc.) и никакого отношения к Borland/Inprise (а уж тем более ко мне! ;)) не имеет.
В отличие от проприетарного DirectX разработки одной малоизвестной фирмы, OpenGL имеет порты под большинство (практически под любую) существующих ОС, т.е. является кроссплатформенным.
С другой стороны, даже в рамках Windows корректнее сравнивать OpenGL не с DirectX в целом, а с одной из его составляющих Direct3D (ибо в состав DX входят, кроме D3D, ещё и DirectDraw, DirectMusic и DirectPlay, аналогов которых в OpenGL просто нет).
Использование API трёхмерной графики при создании "простых динамических 2D эффектов с изображением" - стрельба из пушки по воробьям, если не планируется написание кроссплатформенного приложения. Под Windows достаточно DirectDraw...

Flexz 06.07.2007 15:06

Основная разница между OpenGL и Direct3D - в том что первый это скорее С, а второй С++. Т.е Direct3D объектно ориентирован со всеми вытекающими. Хотя для OpenGL есть надстройки, которые добавляют ему ОО. Что именно использовать - обычно дело вкуса.

по задаче:
1 вариант (Borland уже предложил) юзать DirecDraw, там через IDirectDrawSurface::Lock получаешь указатель на саму поверхность (пиксели) и работаешь с ней как с массивом. Все трансформации писать придется самому (или это и нужно?). Все будет происходить на проце.
2 вариант - юзая Direct3D или OpenGL (абсолютно не важно, что именно) загнать в текстуру исходное изображение, отобразить ее во весь экран и работать с картинкой используя готовые методы - теже повороты, блендинг и тд. Все вычисления будут в видюхе, если тебе не нужно каких-то мудреных преобразований (хотя тут шейдеры спасут), то этот вариант однозначно быстрее и пишется и работает

PSyton 29.07.2007 07:56

еще 5 копеек:
DirectX - Microsoft Specific (читай Windows), Wine не в счет.
OpenGL - по сути кроссплатформенный.

Borland 29.07.2007 11:38

PSyton, БОЯН!
Цитата:

Сообщение от Borland (Сообщение 1431387)
В отличие от проприетарного DirectX разработки одной малоизвестной фирмы, OpenGL имеет порты под большинство (практически под любую) существующих ОС, т.е. является кроссплатформенным.

:biggrin:

rockin 16.10.2007 19:41

Вопрос, в принципе, не особо относится к программированию, но вот нашёл через поиск такую тему, может, кто просветит? :help:
Я уже очень давно пользуюсь гну/линукс (неважно каким, там уже мало осталось от исходника). Так вот, любое опенгл-виндовс-приложение, пущенное через вайн, работает просто на все 110%. А директх, естественно, нет.

Мне, как продвинутому пользователю, для полного понимания этого вопроса, хотелось бы узнать, почему разработчик стремится использовать директх.

Можно дать ссылочку на ресурс даже на английском, я понимаю.

pnp2000 16.10.2007 23:31

Цитата:

Сообщение от rockin (Сообщение 1471290)
почему разработчик стремится использовать директх

дело в том что DX это , грубо говоря , полный набор для создания игры , в то время как OpenGL это только графика , у MS же есть и звуковая составляющая и полная графическая + удобство работы со всем этим из под Win , зато во всех Pro софтинах юзают именно OGL

rockin 20.10.2007 00:40

Цитата:

Сообщение от pnp2000 (Сообщение 1471389)
дело в том что DX это , грубо говоря , полный набор для создания игры , в то время как OpenGL это только графика

Нет, как раз это я прекрасно понимаю.
А вот в плане технической составляющей, поддержки всяческих новомодных технологий как дело обстоит и огл и дх?

pnp2000 21.10.2007 10:23

Цитата:

Сообщение от rockin (Сообщение 1473148)
всяческих новомодных технологий

ну незнаю что за технологии тебе нужны , я видел на что способен OGL 2.0 , и могу сказать это ОЧЕНЬ круто , на что способна 3,0 уже даже и незнаю :) , вобще в англоязычном нете эта проблема рассматривается , так что могёш там посмотреть , как то недавно глядел я на сравнение DX 9.0 vs OGL 2.0

kibal4ich 21.10.2007 11:59

Цитата:

Основная разница между OpenGL и Direct3D - в том что первый это скорее С, а второй С++.
Есть еще Open Inventor (это для тех кому надо С++), а для Силиконов есть Motif или RapidApp, которые успешно заменяют MFC.

rockin 22.10.2007 00:33

Кстати, вбив в гугел "DX 9.0 vs OGL 2.0" я прямиком вышел на статью от 2005 года в Компьютерре :biggrin: Хех, до этого все мои заклинашки, содержащие "opengl" "directx" и "vs/versus" в разных вариациях такого результата не дали.
В принципе, там, всё, что мне нужно, рассматривается. И мне, тупому, объясняется.

Короче, я теперь знаю, почему большинство игр пишется под ДХ и в которые я не могу поиграть. Потому что разработчик, как и я, существо ленивое! ;)


Часовой пояс GMT +4, время: 22:00.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.