Я пытаюсь дополнить функциональность ID3DXFont, рендеринг текста в текстуру, а затем ID3DXSprite.Draw () - по мере необходимости.
Старый (прямой) способ:
ID3DXSprite *sprite;
ID3DXFont *font;
sprite->SetTransform(mw);
font->DrawText(sprite, ...);
Новый (оптимизированный) способ:
RenderTextToATexture(texture, ...);
sprite->SetTransform(mw);
sprite->Draw(texture, ...);
Текст получается красивым и читаемым независимо от масштабирования при прямом рендеринге, но становится уродливым при визуализации в текстуру, а затем масштабируется как текстура.
См. это изображение : первая строка отображается с помощью масштабирования текстуры, вторая строка - с использованием масштабирования ID3DXFont.
Просто чтобы быть уверенным, что двойного масштабирования нет, я сохраняю (предположительно немасштабированный)Текстура в файл.Это действительно немасштабированный (просто чистые пиксели $ 000 и $ FFF в BMP, даже, так что сглаживание не работает).
Я что-то упустил?Я всегда думал, что ID3DXFont делает то же самое, рендерит глифы в текстуру, а затем перетягивает их в Sprite.Draw ().Почему он так масштабирует текст?