BC3_UNORM格式纹理分辨率非4倍数时DirectX加载报错的解决方案
BC3压缩纹理加载触发尺寸对齐限制报错
我有一张分辨率为95x90、格式为DXGI_FORMAT_BC3_UNORM的纹理,尝试加载该纹理时出现如下错误:
D3D11 ERROR: 调用
ID3D11Device::CreateTexture2D创建2D纹理时,若采用格式(0x4d, BC3_UNORM),资源尺寸存在对齐限制。当前传入的尺寸(Width: 95, Height: 90)必须为(Width: 4, Height: 4)的整数倍。[ STATE_CREATION ERROR #101: CREATETEXTURE2D_INVALIDDIMENSIONS]
手动打开绘图软件调整原始纹理分辨率的方案并不合理,请问是否有更合适的方式解决该报错?
补充说明
- 使用Visual Studio加载该纹理时,其尺寸识别为4的整数倍,加载效果符合预期,相关效果原文配有截图说明。
- 使用DirectX Tex组件加载时表现存在差异,当前使用的加载代码如下:
auto hr = DirectX::CreateDDSTextureFromFile(Graphic::Device(), path.data(), &_texture, &_srv);
内容的提问来源于stack exchange,提问作者Mona04_
相关产品推荐
相关产品推荐

