Вы можете использовать класс ID3DXSprite
в библиотеке D3DX9 для рисования 2D-текстур для HUD.
Вы можете использовать преобразования идентичности и рисовать с использованием нормированных координат (от -1, -1 до 1,1) с отключением глубины, но большинство людей считают менее интуитивно понятными элементы позиции. Вместо этого они создают простую орфографическую проекцию, которая преобразует нормированные координаты в нечто более естественное, как пиксели (от 0,0 до ширины, высота). Вы можете использовать D3DXMatrixOrthoOffCenterLH
, если вы используете левые координаты или D3DXMatrixOrthoOffCenterRH
, если вы используете правые координаты взгляда (что не имеет значения для 2D-чертежа, но оно менее запутанно, чтобы оно соответствовало вашему 3D-чертежу).
Почему вы используете устаревший DirectX 9, который старше десятилетия? Если вы использовали Direct3D 11, вы можете использовать DirectX Tool Kit и класс SpriteBatch
, чтобы нарисовать ваш HUD. DirectX SDK устарел, библиотека D3DX устарела, D3DXMath устарела, а отладка для DirectX 9 не поддерживается в Windows 8 или новее. См. MSDN
Я не могу использовать Direct3D 11, потому что я использую MinGW с CLion, и я не могу заставить его работать правильно. – oliveryas01