D3D9 рисование спрайтов кажется медленным

Я только начал изучать PdfBox Apache именно для этой цели. Похоже, что один из их примеров, PrintTextLocations.java, является хорошей отправной точкой для того, что вам нужно.

-1
задан dcdr 18 January 2019 в 08:04
поделиться

1 ответ

Основная проблема заключается в том, что вы используете отдельный экземпляр ID3DX11Sprite для каждого спрайта, по крайней мере, на основе приведенного выше кода. Это исключает любую возможность для спрайтового механизма пакетного рендеринга, и поэтому вы тратите максимальное время рендеринга. Он должен захватить состояние, обновить VB / IB, установить VB / IB и все состояния рендеринга, нарисовать 4 точки, а затем восстановить состояние на каждом спрайте. Это будет медленно.

Вы должны иметь один экземпляр ID3DX11Sprite для всех ваших рисунков и рисовать столько спрайтов, сколько сможете между одним вызовом Begin и одним вызовом [113 ].

Direct3D 9 является устаревшим. ID3DX11Sprite является частью D3DX9, которая устарела и доступна только в конце DirectX SDK. См. Документы Microsoft .

Вам гораздо лучше использовать Direct3D 11 или Direct3D 12 для любого современного приложения. SpriteBatch в DirectX Tool Kit обеспечивает функциональность, необходимую для эффективного рисования спрайтов, а также загрузчиков текстур и т. Д. См. Жизнь без D3DX .

0
ответ дан Chuck Walbourn 18 January 2019 в 08:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: