Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текст, эффекты, тень, Вывод примитивов GDI 
:(
    Опции темы
Онегин
Дата 25.6.2005, 08:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вопрос, как средствами GDI реализовать такой эффект, как объемный текст? Выглядит как тест, а за ним другим цветом, создавая объем со смещением в один пиксел, повторяется он же.. много раз... но если именно так и делать, то получится довольно долгая прорисовка. К тому же текст преобразован в Path и выводится примитивами...
  Вверх
s-mike
Дата 25.6.2005, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Если хочется быстрого и качественного вывода, то я бы посоветовал воспользоваться GDI+, Direct X или OpenGL.
PM MAIL WWW   Вверх
Guest
Дата 25.6.2005, 14:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











GDI+ пробовал, но в при моих количествах примитивов он тоже заметно тормозит..
А DirectX, и GL наверное в векторных редакторах наверное сильно круто.. хотя...
Я вот думал, может какие алгоритмы хитрые.. или может настройки какие быстрые в Pen'e или в Brush'e..
  Вверх
s-mike
Дата 25.6.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Быстрее GDI+ ты не найдешь. Его многие векторные редакторы используют. А GDI - по сути древняя библиотека, созданная для старых 16-разрядных винд. Так что ни о какой оптимизации под процессор или видеокарту речи не идет. Поэтому GDI такое тормозное. Так что... смотри сам, может у тебя отрисовка проводится неоптимально?
PM MAIL WWW   Вверх
ДЫМ
Дата 26.6.2005, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: нет
Всего: 8



Кстати, немного не в тему.
Цитата
Быстрее GDI+ ты не найдешь.

s-mike, а ты сравнивал скорость прорисовки примитивов GDI и GDI+.
Попробуй на досуге. Я сравнивал - получилось, что GDI все-таки быстрее.
Просто у GDI+ больше возможностей.

Цитата
А GDI - по сути древняя библиотека, созданная для старых 16-разрядных винд. Так что ни о какой оптимизации под процессор или видеокарту речи не идет.


Аппаратная поддержка в GDI+ только декларировалась, но на сей день так и не реализована.
PM MAIL WWW   Вверх
s-mike
Дата 26.6.2005, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Цитата
а ты сравнивал скорость прорисовки примитивов GDI и GDI+.

Как-то сравнивал. GDI+ естественно оказалось быстрее.


ДЫМ, возможно это из-за того, что у тебя при рисовании было включено сглаживание. В GDI сглаживания линий вообще нет (или приходится делать вручную).

Но если ты так настаиваешь, то сравню еще раз.
PM MAIL WWW   Вверх
ДЫМ
Дата 1.7.2005, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: нет
Всего: 8



Цитата
Но если ты так настаиваешь, то сравню еще раз.


Сравнил?

Если нет, то прикркпляю тест - посмотри на досуге.

Присоединённый файл ( Кол-во скачиваний: 25 )
Присоединённый файл  Test.zip 2,14 Kb
PM MAIL WWW   Вверх
s-mike
Дата 1.7.2005, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



А ты какой версией заголовочных файлов (и чьей) пользуешься? У меня такие фокусы не проходят:
Код

 for i:=0 to High(aRects) do
  aRects[i]:=Rect(Random(2000), Random(2000),Random(2000), Random(2000));


У меня результаты такие:
Цитата
GDI  1,59299999999712
GDI+ 0


Я так понимаю, GDI+ явно выигрывает smile
Добавлено @ 06:55
С раскомментированной строчкой
Цитата

GDI  1,5
GDI+ 0,15599999999904


Это сообщение отредактировал(а) s-mike - 1.7.2005, 06:56
PM MAIL WWW   Вверх
s-mike
Дата 1.7.2005, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Цитата(s @ 1.7.2005, 06:54)
А ты какой версией заголовочных файлов (и чьей) пользуешься? У меня такие фокусы не проходят:

Прошу прощения, это у меня заголовки старые.
PM MAIL WWW   Вверх
ДЫМ
Дата 2.7.2005, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: нет
Всего: 8



Прошу прощения, это у меня заголовки старые.

Что-то я не понял, что в итоге? Я заголовки скачивал здесь
http://www.progdigy.com/modules.php?name=D..._op=getit&lid=8

Вот такие результаты у меня для 500 прямоугольников.
(комп у меня не сильно крутой)

Цитата
GDI  2,20299999999952
GDI+ 2,48400000000038


Получается, что разницы особой нет.




PM MAIL WWW   Вверх
s-mike
Дата 2.7.2005, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Со скоростью я действительно немного погорячился, все-таки медленнее. НО! Нужно смотреть глубже. Попробуйте рисовать стандартным GDI линии со сглаживанием, выводить текст со сглаживанием, загружать большие изображения и масштабировать их, я уже не говорю об AlphaBlending. Это все делается не просто медленно, а очень медленно. Прирост производительности в GDI+ часто более 300%. Так что можно признать, что GDI+ библиотека не для простого быстрого вывода, а для качественного быстрого вывода графики. И пожалуй с ней мало что сравнится.
PM MAIL WWW   Вверх
ДЫМ
Дата 3.7.2005, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: нет
Всего: 8



Цитата
Так что можно признать, что GDI+ библиотека не для простого быстрого вывода, а для качественного быстрого вывода графики. И пожалуй с ней мало что сравнится.


Абсолютно согласен. smile
Туда бы еще и аппаратную поддержку... Будем ждать.

Это сообщение отредактировал(а) ДЫМ - 3.7.2005, 02:52
PM MAIL WWW   Вверх
Coriolis
Дата 25.8.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 22.8.2005

Репутация: нет
Всего: 1



Для вывода объёмного текста с толстой тенью (не в один пиксель, а напр в 10) можно делать так:
1. выводим текст цветом тени на дополнительную поверхность (спрайт, битмап, - не важно).
2. копируем эту поверхность на рабочую 10 раз, каждый раз смещая координату(ты) на пиксель в нужную сторону
3. на рабочую поверхность сверху отрисовываем наш текст.

В итоге имеем: не зависимо от толщины тени текст выводится два раза.

Ну а если изменение текста планируется крайне редко, то тень можно отрисовать (любым способом) на дополнительной поверхности один раз, сверху нарисовать сам текст. Затем при перерисовке экрана просто копируем эту готовую поверхность на рабочую.

Выигрыш в производительности получится за счёт того, что для отрисовки очередного слоя производится простейшее копирование растра (с цветовым ключем естественно), а не отрисовка всей надписи заново.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.