我正在研究three.js,并且正在尝试导入一个带有相应mtl 文件的.obj 文件。mtl 文件引用的纹理是 .bmp,所以我调整了 mtl 文件以指向所有 .dds 文件并将我的所有资产转换为 dds。问题是它只是渲染白色纹理。我不确定它是否相关,但它说不支持 PVRTC 压缩纹理。这是我用于 obj/mtl 加载器的代码:
var onProgress = function(xhr) {
if (xhr.lengthComputable) {
var percentComplete = xhr.loaded / xhr.total * 100;
console.log(Math.round(percentComplete, 2) + '% downloaded');
}
};
var onError = function(xhr) {};
THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader());
var loader = new THREE.OBJMTLLoader();
loader.load('assets/FirstPersonExampleMap.obj', 'assets/FirstPersonExampleMap.mtl', function(object) {
object.position.y = 0;
scene.add(object);
}, onProgress, onError);
这是我调整的 .mtl 文件的示例:
newmtl assets/M_WhiteEditQuarter_M_WhiteEditQuarter
map_Kd M_WhiteEditQuarter_M_WhiteEditQuarter_D.dds
map_Ks M_WhiteEditQuarter_M_WhiteEditQuarter_S.dds
bump M_WhiteEditQuarter_M_WhiteEditQuarter_N.dds