【问题标题】:How to load a texture on DirectX?如何在 DirectX 上加载纹理?
【发布时间】:2012-01-09 00:47:46
【问题描述】:

我正在使用此代码加载纹理:

HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture);

但它总是返回D3DXERR_INVALIDDATA错误!

我正在渲染的三角形工作得很好,所以程序的其余部分都在工作,除了纹理加载。

我错过了什么?该文件肯定存在。我也尝试使用 jpg 和 png,以及尺寸为 256x256 的较小图像。该图像对我来说很好用..所以它不能是无效数据,即使它这么说。

【问题讨论】:

    标签: c++ visual-c++ directx


    【解决方案1】:

    很可能,即使该文件可用,但它不在程序访问的正确路径中。

    如果您在 Visual Studio 中运行程序,请确保工作目录指向包含您的 test.bmp 的文件夹。不幸的是,这个设置的位置在不同版本的 VS 之间变化很大,但在 VS 2005 中它是Project->Properties->Debugging->Working Directory。确保调试和发布模式的设置相同。

    您可以通过GetCurrentDirectory 的代码检查您的当前目录。

    【讨论】:

    • 太棒了!就是这样。这可能节省了我数小时的调试时间!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多