I am trying to load a envmap dds file but am getting the errors
“THREE.DDSLoader.parse: Unsupported FourCC code” with the DX9 version
“THREE.DDSLoader.parse: Unsupported FourCC code DX10” with the DX10 version
these are the two options provided by the program I am using to export.
Here is a reproduced example codepen to show the error I am facing. Using the latest version 0.141.0 https://codepen.io/lablr/pen/MWQXGYy
Is there any way to load this kind of file in threejs? Is this something the loader needs new functionality to handle?
I would appreciate any help, thanks.
It looks like this is a cubemap with BC6H compression in a DDS container. I’m not sure what the DirectX 9 vs DirectX 10 distinction is in the file, or whether that’s a problem for three.js and WebGL.
THREE.DDSLoader cannot load this file, and even if it could, not all browsers and devices will support this compression type, so it’s not going to work for every user of your site without decoding BC6H to uncompressed RGBA8 data.
Usually we use .EXR or .HDR files for this, but since OpenImageIO can’t open the file I’m not sure how to convert it.
It may be worth filing an issue on the three.js repo, perhaps someone wants to add the feature in DDSLoader. At some point I’d like to support BC6H cubemaps in KTX2Loader as well but I’m not sure when we’ll get to that.
Thanks for your reply @donmccurdy. I am getting the same error even if I choose 16bit float for the datatype. Is there a data type that would be appropriate for the dds loader as it is?
I opened an issue on github as well, thanks. DDS Loader fails on trying to load dds texture with DX9/DX10+ header encoding. · Issue #24189 · mrdoob/three.js · GitHub
I don’t think DDSLoader has any cubemap support now, so (assuming that’s what this is) the compression type will not fix it. But if you could share versions with 16-bit and 32-bit float (e.g. upload a .ZIP with several options on github?) that might help us to try ways to convert to other supported formats.
@donmccurdy here is a zip with all the different versions.