Size: a a a

2020 March 13

SB

Sergey Bodrov in Delphi & Lazarus
Геннадий Малинин
Я всегда использую Direct2D, так что
Железо уже лет 20 не умеет в ускорение 2D. =) Раньше умело, в эпоху первых видео и аудио карт. И ускорялись только операции над спрайтами (блоками памяти) за счет того, что они выполнялись целиком на железе видеокарты. Геометрию в любом случае приходилось считать на центральном проце. Как только начали считать геометрию на видеочипах, так сразу возник вопрос, а нахрена нужно ускорять 2D, если в 3D все то же самое, только больше лучше и нужнее.
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Sergey Bodrov
Железо уже лет 20 не умеет в ускорение 2D. =) Раньше умело, в эпоху первых видео и аудио карт. И ускорялись только операции над спрайтами (блоками памяти) за счет того, что они выполнялись целиком на железе видеокарты. Геометрию в любом случае приходилось считать на центральном проце. Как только начали считать геометрию на видеочипах, так сразу возник вопрос, а нахрена нужно ускорять 2D, если в 3D все то же самое, только больше лучше и нужнее.
Это да. Логичный и ожидаемый результат.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Сейчас из 2D осталось только ускорение копирования больших блоков памяти и FFT (быстрые преобразования Фурье) над массивами, которые повсеместно используются в JPEG/MPEG.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Я с этой странной фигней столкнулся, когда делал движок для отрисовки географической карты. Там вся геометрия построена на линиях и полигонах (многоугольниках). И оказалось, что в современном мире для 2D холста нет ускорения отрисовки линий, полигонов, заливки, сглаживания углов, определения пересечений и наложений, выполнения ряда математических функций над массивами. Отрисовка подробной карты одного района города занимает около секунды и выглядит страшновато. Но если разбить линии и полигоны (включая буквы и условные знаки) на треугольники (триангуляция по Делоне или по Вороному) и засунуть их координаты в видеокарту, то оно не только отрисовывает за сотую долю секунды, но и позволяет мгновенно вертеть и масштабировать сцену. А также применять всякие эффекты сглаживания, закругления, отбрасывания тени.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
gdi весь рисуется железом
источник

DB

Dmitry Belkevich in Delphi & Lazarus
иначе было бы совсем грустно
источник

DB

Dmitry Belkevich in Delphi & Lazarus
безаксельные карты я видел ) это была реально грусть
источник

SB

Sergey Bodrov in Delphi & Lazarus
Dmitry Belkevich
gdi весь рисуется железом
Даже GDI+ далеко не весь оптимизирован под железо, увы.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
gdi+ вот как раз рисуется процем
источник

DB

Dmitry Belkevich in Delphi & Lazarus
потому и тормозит
источник

DB

Dmitry Belkevich in Delphi & Lazarus
а gdi рисует видео-железо
источник

SB

Sergey Bodrov in Delphi & Lazarus
GDI это тупо часть WinAPI, а за оптимизацию под железо отвечают драйвера. И насколько мне известно, "бытовые" драйвера не оптимизированы совсем никак или очень слабо. Есть оптимизации в драйверах профессионального железа для CAD, например железо от Matrox.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
оптимизация - как получится. но если бы gdi рисовалось по точкам процессором, как бывало ) то было бы грустно совсем
источник

DB

Dmitry Belkevich in Delphi & Lazarus
все примитивы - линии и т п рисует аксель
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Мы карты делали сразу на opengl
источник

SB

Sergey Bodrov in Delphi & Lazarus
Dmitry Belkevich
все примитивы - линии и т п рисует аксель
Предлагаю ткнуть меня носом в доказательства. =)
источник

DB

Dmitry Belkevich in Delphi & Lazarus
поищи почему тормозит gdi+
источник

DB

Dmitry Belkevich in Delphi & Lazarus
я так сходу не найду - но писали - что он рисуется процессором, в отличие от gdi
источник

DB

Dmitry Belkevich in Delphi & Lazarus
было актуально - переписывал движок с gdi на gdi+
источник

SB

Sergey Bodrov in Delphi & Lazarus
Могу легко доказать, что ускорение не работает для ряда видеокарт ATI/AMD. Достаточно в стандартных приложениях Windows потянуть за рамку приложения (изменить размер).
источник