使用DirectX 11阅读.tga

Read .tga with DirectX 11

本文关键字:tga 阅读 DirectX 使用      更新时间:2023-10-16

几天以来,我一直在开发一个工具,需要用directX 11在几种文件格式上绘制纹理。在谷歌上搜索了很多之后,我没有找到该怎么做。

我使用D3DX11CreateShaderResourceViewFromFile加载.dds和.png文件,但我在其他地方看到.tga不再受支持。我也读了一些关于D3DLOCKED_RECT的内容来设置纹理的每个像素,并读了.tga文件来了解这些像素,但那是针对directX 9的。

有什么帮助或建议吗?提前谢谢。

//注意:我不使用D3D11

D3DX11CreateShaderResourceViewFromFile的MSDN页面上说有DirectXTex库,应该能够使用LoadFromTGAFile例程加载*.tga文件。你应该试一试。如果它不适合你,你将不得不编写自己的纹理加载程序。(因为可以在D3D9中为纹理制作加载程序,所以应该可以在D3D11中做同样的事情)。*。tga格式有文档记录,许多初学者教程专门处理在没有第三方库的情况下加载这种特定格式的问题。

两个建议:

  1. 下次,如果有疑问,请阅读文档
  2. 不要看*.png格式。这种格式加载非常慢(jpeg更快,未压缩的bmp更快,dds更快),很可能不适合经常需要加载许多图像的游戏(可以将其用于开始菜单、结束屏幕等)。请使用未压缩的格式(如*.tga)或(因为您使用的是directx)使用*.ds格式。您的图像很可能会占用额外的磁盘空间,但加载速度会更快