0

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

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

有什么帮助或提示吗?提前致谢。

4

1 回答 1

0

//注意:我不使用 D3D11

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

两个建议:

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