我正在尝试加载DDS纹理,该纹理存储为base64字符串。由于parseDDS
需要一个“包含dds数据的字符串。”然后我通过调用atob
将其转换为二进制表示。
但是,当我将结果发送到parseDDS
时,会导致日志中出现以下错误:
ImageUtils.parseDDS(): Invalid magic number in DDS header
代码: (b64字符串因可读性而被截断)
var b64 = "RERTIHwAAAAHEAoAAAEAAAABAAAAgAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAA...";
var data = atob(b64);
var dds = THREE.ImageUtils.parseDDS(data,false);
输出data
到控制台的结果至少看起来是它的相应字符串表示 - 包括魔术:
DDS |
我使用相同的过程来解析完整的(3D)文件格式(使用jParser / jDataView),所以我非常有信心在翻译中没有任何“丢失”。
所以我只能假设这种方法期望“数据”采用不同的格式 - 而且我似乎找不到任何关于什么格式的信息。