Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с большими объемами 2д графики  (Прочитано 8895 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Артем
Опытный

nz
Offline Offline
Пол: Мужской
Beware the wolf in sheep's clothing.


« : 16-03-2009 12:40 » 

Добрый день /вечер  Улыбаюсь

У меня небольшой вопрос:
 С использованием чего лучше всего выводить на экран 2Д графику в Windows XP?


Немного поясню:

 Есть много (ОЧЕНЬ много) фрагментов акустического изображения + координаты этих фрагментов. Фрагмент изображения это файл, в котором вначале записано [КОЛИЧЕСТВО ТОЧЕК В СТРОКЕ], потом [КОЛИЧЕСТВО СТРОК], а далее яркость каждой строки (по одному байту на точку). Размер такого фрагмента -- десятки мегабайт. Количество фрагменов -- десятки тысяч. Т.е. размер всей информации может быть больше сотни гигов.
 Теперь все это счастье надо вывести на экран в соответствии с координатами. Уметь масштабировать, менять яркость/контрастность (каждого фрагмента отдельно) и, пожалуй, еще вращать. + еще рисовать сверху всякую дополнительныю инфу (сетку, метки, пройденный путь и т.д.).


Сейчас это делается "в лоб" функциями WinAPI и жутко тормозит.

 Вопрос: если попробовать выводить все это с помощью, например, DirectShow будет ли это работать быстрее? А может лучше взять OpenGL? или еще какую-нибудь библиотеку?

А может, кто-нибудь знает что можно почитать про теорию работы с такими большими объемами графики?


  
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 16-03-2009 13:15 » new

DirectX - однозначно. OpenGL - не знаю, думаю что будет побыстрей чем АПИ, особенно если карта хорошо его поддерживает.
Но под виндой я бы делал на последней версии DirectX.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 16-03-2009 13:22 » 

ps Ты всё-равно не будешь видеть ВЕСЬ объём инфы на экране. При общем обзоре это будет сжато, а при зуме будет показана только часть. Объём инфы на экране будет определяться только размерами и глубиной цвета.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Артем
Опытный

nz
Offline Offline
Пол: Мужской
Beware the wolf in sheep's clothing.


« Ответ #3 : 16-03-2009 14:02 » 

Ты всё-равно не будешь видеть ВЕСЬ объём инфы на экране. При общем обзоре это будет сжато, а при зуме будет показана только часть. Объём инфы на экране будет определяться только размерами и глубиной цвета.

Это то да...
Просто сейчас масштабирование производиться "руками" и не самым оптимальным образом Улыбаюсь
Но с другой стороны, боюсь, все повиснет, если я скормлю все 100 гигов в какую-нибудь функцию DirectX (c целью отмасштабировать все это в рамки экрана).

Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 16-03-2009 14:58 » 

Работу ручками никто не отменит. Грубо говоря если тебе надо будет показать 10 000 точек данных на 1000 пикс. монитора, то только тебе и никому другому придётся решать какая именно десятая точка должна отображаться. Ага

А вот уже отображение подобной матрицы 1280х1024, её трансформация через DirectX будет происходить в десятки (если не в сотни) раз быстрей. На таком же принципе (непосредственная работа с DirectX, а не с GDI) построены новые красивости Висты.
Если тебе не нужно кроссплатформенность, то делай всё на DirectX. Я ессно с такими данными не работал, но попробуй. Я думаю тестовая прожка много не займёт. А ты сможешь реально оценить улучшение производительности.

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

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines