opengl vs directx с точки зрения шаровары
От: Тимофей  
Дата: 18.10.09 16:51
Оценка:
Всем привет!

Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.
Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
нужно что-то выбрать для освоения.

Какое приложение удобнее распространять и поддерживать?
С уважением! Тимофей
Re: opengl vs directx с точки зрения шаровары
От: Ippi  
Дата: 18.10.09 17:19
Оценка: +2
Здравствуйте, Тимофей, Вы писали:

Т>Всем привет!


Т>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>нужно что-то выбрать для освоения.

Т>Какое приложение удобнее распространять и поддерживать?


Для начала попробуйте рисовать не на экран, а в память, а потом уже готовое выводите на экран. Заодно и проблему смаргивания, мерцания, и прочих артефактов прорисовки решите раз и навсегда.

Ни OpenGL, ни DirectX для шаровары крайне нежелетелен без особых на то показаний, типа 3D-графики, видео или неких специфично игровых потребностей.
Re[2]: opengl vs directx с точки зрения шаровары
От: KingT  
Дата: 18.10.09 17:31
Оценка:
Здравствуйте, Ippi, Вы писали:

I>Здравствуйте, Тимофей, Вы писали:


Т>>Всем привет!


Т>>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>>нужно что-то выбрать для освоения.

Т>>Какое приложение удобнее распространять и поддерживать?


I>Для начала попробуйте рисовать не на экран, а в память, а потом уже готовое выводите на экран. Заодно и проблему смаргивания, мерцания, и прочих артефактов прорисовки решите раз и навсегда.


I>Ни OpenGL, ни DirectX для шаровары крайне нежелетелен без особых на то показаний, типа 3D-графики, видео или неких специфично игровых потребностей.


Не могли бы вы обьяснить почему не желательны?
Re[2]: opengl vs directx с точки зрения шаровары
От: Тимофей  
Дата: 18.10.09 17:33
Оценка:
Здравствуйте, Ippi, Вы писали:

I>Для начала попробуйте рисовать не на экран, а в память, а потом уже готовое выводите на экран. Заодно и проблему смаргивания, мерцания, и прочих артефактов прорисовки решите раз и навсегда.



Я так и делаю. Все равно медленно

I>Ни OpenGL, ни DirectX для шаровары крайне нежелетелен без особых на то показаний, типа 3D-графики, видео или неких специфично игровых потребностей.


Вот это мне интересно. Почему? Вроде как они оба составная часть Windows? Программа все равно виндовая, это рынок не сузит.
Новых наворотов мне не нужно, 3D там нет, просто быстро выводить очень много точек напрямую в видеопамять.
С уважением! Тимофей
Re: opengl vs directx с точки зрения шаровары
От: traveler Россия  
Дата: 18.10.09 17:59
Оценка: 1 (1) -1 :)
Здравствуйте, Тимофей, Вы писали:

Т>Всем привет!


Т>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>нужно что-то выбрать для освоения.

Т>Какое приложение удобнее распространять и поддерживать?


Чего думать-то? Ясно дело — OpenGL. Особенно если кроме дельфи (ObjectPascal) вы не знаете других языков.
C (си) интерфейс OpenGL будет куда понятнее, к тому же есть готовые .pas файлы с описанием функций/процедур.
Ну и в завершении — кроссплаформенность. На будущее. К тому же опыт на OpenGL чаще востребован с т.з. будущего трудоустройства.
Вот такие мои аргументы.

С уважением.
Re[3]: opengl vs directx с точки зрения шаровары
От: Ippi  
Дата: 18.10.09 18:13
Оценка: +2
Здравствуйте, Тимофей, Вы писали:

I>>Ни OpenGL, ни DirectX для шаровары крайне нежелетелен без особых на то показаний, типа 3D-графики, видео или неких специфично игровых потребностей.


Т>Вот это мне интересно. Почему? Вроде как они оба составная часть Windows? Программа все равно виндовая, это рынок не сузит.

Т>Новых наворотов мне не нужно, 3D там нет, просто быстро выводить очень много точек напрямую в видеопамять.

То, что вы называете "составной частью Windows" — лишь часть подсистемы (да и то, вместе с Windows посталяется лишь базовый вариант; полный DirectX нужно накатывать отдельно (к тому же он постоянно обновляется); насчёт OpenGL не помню); остальное находится в драйверах устройств, качество которых год от года, увы, не улучшается; связавшись с DirectX или OpenGL, вы можете обречь себя на постоянную борьбу за совместимость с зоопарком устройств и драйверов разных производителей и годов выпуска путём непрерывного строгания workaround'ов для вновь появлющихся не по вашей вине багов. Зависит от задачи, конечно, но потенциал возможных неприятностей вы должны оценить.

А "быстро выводить очень много точек напрямую в видеопамять" в общем случае медленнее, чем выводить их в основную память и потом единственным блитом отправлять в видеобуфер.
Re[4]: opengl vs directx с точки зрения шаровары
От: Ippi  
Дата: 18.10.09 18:17
Оценка:
I>А "быстро выводить очень много точек напрямую в видеопамять" в общем случае медленнее, чем выводить их в основную память и потом единственным блитом отправлять в видеобуфер.

Кстати, для справки — пульнуть точку c нужными координатами в 32-битный DIB — дело порядка десятка тактов CPU. Сотен миллионов точек в секунду вам достаточно?
Re[4]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 18.10.09 18:29
Оценка:
Здравствуйте, Ippi, Вы писали:

I>То, что вы называете "составной частью Windows" — лишь часть подсистемы (да и то, вместе с Windows посталяется лишь базовый вариант; полный DirectX нужно накатывать отдельно (к тому же он постоянно обновляется); насчёт OpenGL не помню);


С каких это пор полный DirectX надо накатывать отдельно? Он с WinXP идет в базе, для 2D графики никаких серъезных изменений нет.
Re[2]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 18.10.09 18:31
Оценка:
Здравствуйте, traveler, Вы писали:

T>Чего думать-то? Ясно дело — OpenGL. Особенно если кроме дельфи (ObjectPascal) вы не знаете других языков.

T>C (си) интерфейс OpenGL будет куда понятнее, к тому же есть готовые .pas файлы с описанием функций/процедур.
T>Ну и в завершении — кроссплаформенность. На будущее. К тому же опыт на OpenGL чаще востребован с т.з. будущего трудоустройства.
T>Вот такие мои аргументы.

Серьезная заявка. Каким боком OpenGL поможет в 2D графике? Чем он лучше и понятнее родного DirectX?
Re[5]: opengl vs directx с точки зрения шаровары
От: Ippi  
Дата: 18.10.09 18:39
Оценка:
Здравствуйте, icezone, Вы писали:

I>>То, что вы называете "составной частью Windows" — лишь часть подсистемы (да и то, вместе с Windows посталяется лишь базовый вариант; полный DirectX нужно накатывать отдельно (к тому же он постоянно обновляется); насчёт OpenGL не помню);


I>С каких это пор полный DirectX надо накатывать отдельно? Он с WinXP идет в базе, для 2D графики никаких серъезных изменений нет.


Для чего же тогда они DirectX redistributables выпускают (в т.ч. и под XP), да ещё и обновляют их несколько раз в год?
Re[6]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 18.10.09 20:30
Оценка:
Здравствуйте, Ippi, Вы писали:

I>Для чего же тогда они DirectX redistributables выпускают (в т.ч. и под XP), да ещё и обновляют их несколько раз в год?


Это обновления. Для WinXP в базе DX8, для WinXPSP2 в базе DX9, для Vista DX10. Не смотрели чем занимается их инсталлятор?
Он проверяет текущие версии файлов и обновляет только при необходимости. Удалить DX из винды практически невозможно.
В части DirectDraw начиная с 8 версии изменений не обнаружено.

А вот OpenGL как раз таки и не установлен в чистой винде, он устанавливается вместе с драйверами видеокарты.
Re: opengl vs directx с точки зрения шаровары
От: KPbIC  
Дата: 18.10.09 22:01
Оценка: +4
Здравствуйте, Тимофей, Вы писали:

Т>Всем привет!


Т>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>нужно что-то выбрать для освоения.

Т>Какое приложение удобнее распространять и поддерживать?


никого не слушай, находи dxsdk 8.1 или 9.0 самую раннюю, и используй.
только не используй при компиляции последние версии, они будут от юзвера требовать новую версию dx
Re[3]: opengl vs directx с точки зрения шаровары
От: gear nuke  
Дата: 18.10.09 22:09
Оценка:
Здравствуйте, Тимофей, Вы писали:

Т>Новых наворотов мне не нужно, 3D там нет, просто быстро выводить очень много точек напрямую в видеопамять.


А значит OGL ни к чему. Для этого хватит старого интерфейса IDirectDraw7, который есть практически в любой системе. Примеров в сети должн быть достаточно (только рисовать не сразу в видеопамять, а в бэкбуфер, но это детали)
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: opengl vs directx с точки зрения шаровары
От: Ippi  
Дата: 18.10.09 23:29
Оценка: +1
Здравствуйте, gear nuke, Вы писали:

Т>>Новых наворотов мне не нужно, 3D там нет, просто быстро выводить очень много точек напрямую в видеопамять.


GN>А значит OGL ни к чему. Для этого хватит старого интерфейса IDirectDraw7, который есть практически в любой системе. Примеров в сети должн быть достаточно (только рисовать не сразу в видеопамять, а в бэкбуфер, но это детали)


А всё равно точку в обычном массиве обычного битмапа гораздо быстрее самому поставить, чем вызывать функцию DirectDraw (OpenGL, GDI, GDI+, whatever). Да и проще, пожалуй. Юзанье для такой задачи DirectX напоминает недавнюю отправку тяжёлого атомного ракетного крейсера на борьбу с пиратами на резиновых лодках.
Re[5]: opengl vs directx с точки зрения шаровары
От: cheerysoft.com Россия  
Дата: 19.10.09 04:38
Оценка:
Здравствуйте, Ippi, Вы писали:

I>Юзанье для такой задачи DirectX напоминает недавнюю отправку тяжёлого атомного ракетного крейсера на борьбу с пиратами на резиновых лодках.


Может его направили, чтобы уже наконец уничтожить источник этой гадости в резиновых лодках?
Re[5]: opengl vs directx с точки зрения шаровары
От: gear nuke  
Дата: 19.10.09 06:05
Оценка:
Здравствуйте, Ippi, Вы писали:

I>А всё равно точку в обычном массиве обычного битмапа гораздо быстрее самому поставить, чем вызывать функцию DirectDraw (OpenGL, GDI, GDI+, whatever). Да и проще, пожалуй. Юзанье для такой задачи DirectX напоминает недавнюю отправку тяжёлого атомного ракетного крейсера на борьбу с пиратами на резиновых лодках.


Ха-ха, понимаю, сам себя не уволишь

Re: Плавное затемнение экрана
Автор: gear nuke
Дата: 19.09.05


И повторю — в бэкбуфер будет еще быстрее, из-за особенностей видеопамяти.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: opengl vs directx с точки зрения шаровары
От: funikov  
Дата: 19.10.09 06:34
Оценка:
Здравствуйте, Тимофей, Вы писали:

Т>Всем привет!


Т>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>нужно что-то выбрать для освоения.

Т>Какое приложение удобнее распространять и поддерживать?


Найди для начала чего это у тебя оно тормозит. Чем ты пользуешься для вывода графики сейчас? GDI? Если да и это просто 2d-графика типа нарисовать линию тут, а тут точечку, то не должно ничего тормозить. Не представляю, что там можно рисовать, чтобы оно тормозило, лучши покажи кому-нибудь что ты такое там делаешь.
10 лет назад сталкивался с Дельфи, там был какой-то TCanvas(или это было в С++ билдере? ), это всерьез использовать было нельзя, феерически тормознутая штука, не знаю, изменилось ли там что-то.

opengl или directx целесообразно использовать если ты рисуешь какое-то 3d, с заливками всякими. Для 2d это целесообразно только в особых случаях.
Re[3]: opengl vs directx с точки зрения шаровары
От: traveler Россия  
Дата: 19.10.09 07:03
Оценка:
Здравствуйте, icezone, Вы писали:

I>Здравствуйте, traveler, Вы писали:


T>>Чего думать-то? Ясно дело — OpenGL. Особенно если кроме дельфи (ObjectPascal) вы не знаете других языков.

T>>C (си) интерфейс OpenGL будет куда понятнее, к тому же есть готовые .pas файлы с описанием функций/процедур.
T>>Ну и в завершении — кроссплаформенность. На будущее. К тому же опыт на OpenGL чаще востребован с т.з. будущего трудоустройства.
T>>Вот такие мои аргументы.

I>Серьезная заявка. Каким боком OpenGL поможет в 2D графике? Чем он лучше и понятнее родного DirectX?


Что значит каким? Самым непосредственным. Аппаратный блиттинг, со всякими альфами, фильтрацией, аффинными преобразованиями и т.д.
Но на самом деле правильно люди говорят: OpenGL и DirectX по сути одно и тоже, только с разными бантиками.
Если нужна будет кросс-платформенность (включая мобильники), то следует выбрать OpenGL, если нет — можно поизучать DirectDraw — там все просто.
А вообще, для Delphi есть готовая хрень: DelphiX называется. Смотрели такую?

С уважением.
Re[4]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 19.10.09 09:56
Оценка:
Здравствуйте, traveler, Вы писали:

T>Что значит каким? Самым непосредственным. Аппаратный блиттинг, со всякими альфами, фильтрацией, аффинными преобразованиями и т.д.

T>Но на самом деле правильно люди говорят: OpenGL и DirectX по сути одно и тоже, только с разными бантиками.
T>Если нужна будет кросс-платформенность (включая мобильники), то следует выбрать OpenGL, если нет — можно поизучать DirectDraw — там все просто.
T>А вообще, для Delphi есть готовая хрень: DelphiX называется. Смотрели такую?

Почитайте ТС, ему не нужна фильтрация, ему нужен быстрый вывод графики. Очевидно массивы большие используются для построения графиков. Про различия OpenGL и DX мне рассказывать не надо, я еще с DX5 начинал. Тогда проблем с OpenGL было гораздо больше. DelphiX мне нафиг не нужен, у меня стандартные хидеры. Это вы ТС'у посоветуйте.

Хотя честно говоря я не понял зачем ему вообще понадобилось что-то вместо GDI. Подозреваю, что он не использует сканлайны,
а закрашивает попиксельно — отсюда и тормоза.
Re[2]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 19.10.09 09:57
Оценка:
Здравствуйте, KPbIC, Вы писали:

KPI>никого не слушай, находи dxsdk 8.1 или 9.0 самую раннюю, и используй.


Вас тоже не слушать?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.