Читайте .tga с DirectX 11

Так как несколько дней я работаю над инструментом, где мне нужно рисовать текстуры в нескольких форматах файлов с DirectX 11. После того, как я много гуглил, я не нашел, как это сделать.

Я использую D3DX11CreateShaderResourceViewFromFile для загрузки файлов .dds и .png, но я где-то читал, что .tga больше не поддерживается. Я тоже кое-что прочитал о D3DLOCKED_RECT, чтобы установить каждый пиксель текстуры, и прочитал файлы .tga, чтобы узнать эти пиксели, но это было для DirectX 9.

Любая помощь или советы? Заранее спасибо.

0

Решение

// примечание: я не использую D3D11

Страница MSDN для D3DX11CreateShaderResourceViewFromFile говорит, что есть DirectXTex библиотека, что должен уметь загружать * .tga файлы используя LoadFromTGAFile рутина. Вы должны попробовать. Если это не работает для вас, вам придется написать свой собственный загрузчик текстур. (потому что можно было сделать свой загрузчик для текстур в D3D9, это должен можно сделать то же самое в D3D11). * .tga формат где-то задокументировано и многие учебники для начинающих специально посвящены загрузке этого конкретного формата без сторонних библиотек.

Два совета:

  1. В следующий раз, когда будете сомневаться, читайте документацию.
  2. НЕ смотрите в формате * .png. Этот формат загружается очень медленно (jpeg быстрее, несжатый bmp быстрее, dds быстрее) и, скорее всего, не подходит для игр, в которых нужно часто загружать много изображений (можно использовать его для меню «Пуск», экрана завершения и т. Д. ). Либо используйте несжатый формат (например, * .tga), либо (так как вы используете directx), используйте формат * .dds. Скорее всего, ваши изображения займут больше места на диске, но загрузятся быстрее.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]