【发布时间】:2015-08-20 21:43:15
【问题描述】:
我正在处理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
【问题讨论】:
-
当我的文件是 bmp 时,它也呈现为白色......在我调整 mtl 文件(assets/M_WhiteEdit... 部分)之前的某个时刻,它呈现黑色
-
你的纹理在资产中吗?
-
是的,纹理在 assets 目录中。我拥有所有代码的资产和 JS 文件夹都是根目录(但彼此分开)。
标签: three.js .obj dds-format