Позвольте мне описать «поле боя» моей задачи:Advanced Text Rendering с Direct3D
- Multi-комнатной аудио/видео-чат с более чем 1 млн пользователей;
- Custom Direct3D renderer;
Что мне нужно реализовать, это функция TextOverVideo. Сам текст идет по сети и должен быть отображен на стороне получателя с помощью средства визуализации Direct3D. AFAIK, он обычно используется в разработке игр, чтобы создать свою собственную текстуру с буквами/цифрами и нарисовать эти предметы. Поскольку наше приложение должно поддерживать многие языки, мы должны использовать стандарт. Вот почему я работал с интерфейсом ID3DXFont, но обнаружил некоторые неудовлетворенные ограничения.
То, с чем я столкнулся, - это отсутствие масштабируемости. Например. если пользователь изменяет размер окна видео, я должен RE-создать D3DXFont с новым D3DXFONT_DESC, пока он это делает. Я думаю, что это неприемлемо. Именно поэтому единственное решение, которое я вижу (из-за моих навыков), как-то визуализирует текст текстуры и поэтому рисует спрайт с масштабированием, переводом и т. Д.
Итак, я не уверен, если я пойду в правильное направление. Пожалуйста, помогите с советами, опытом, литературой, источниками ...
Большое спасибо за ваш ответ! «Неприемлемо» - я имел в виду, что создание D3DXFont требует больших ресурсов, и производительность имеет решающее значение для нашего программного обеспечения. Но если я правильно понял, то возможные решения № 2 и 3 еще хуже. ID3DXRenderTarget-да, я подумал о чем-то вроде этого. Но я не мог найти достаточно примеров того, как его использовать. Что я боялся - это то, что кто-нибудь скажет мне: «Эй, НЕ используйте D3DXFont! Его производительность хуже всех! ID3DXRenderTarget - это решение!» Итак, скажите, пожалуйста, должен ли я двигаться с помощью подхода D3DXFont или углубляться в технику ID3DXRenderTarget? – Dalamber
@ Антон: Я обновил свой ответ. – SigTerm
Еще раз спасибо! Буду признателен, если вы можете дать мне пример того, как визуализировать ID3DXFont текстуре. * SCRATCH * Слишком мало информации о ID3DXRenderTarget. Заранее спасибо! Btw, я пробовал динамически обновлять шрифт во время изменения размера и да - использование ЦП при изменении размера сравнительно. – Dalamber