three-base 2.0.85 → 2.0.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/threeLoader.js +23 -0
- package/threeLoader.ts +26 -0
package/package.json
CHANGED
package/threeLoader.js
CHANGED
|
@@ -317,6 +317,29 @@ class ThreeLoader extends EventDispatcher {
|
|
|
317
317
|
.catch((err) => {
|
|
318
318
|
console.log(`${url},加载失败`, err);
|
|
319
319
|
});
|
|
320
|
+
case "obj":
|
|
321
|
+
const objObject3d = await this.objLoader.loadAsync(url);
|
|
322
|
+
objObject3d.traverse((obj) => {
|
|
323
|
+
const mesh = obj;
|
|
324
|
+
if (mesh.isMesh) {
|
|
325
|
+
// 如果obj没有材质就给默认的材质
|
|
326
|
+
if (!this.objLoader.materials) {
|
|
327
|
+
mesh.material = new MeshStandardMaterial({
|
|
328
|
+
metalness: 0.5,
|
|
329
|
+
roughness: 0.5,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
const uv = mesh.geometry.getAttribute("uv");
|
|
333
|
+
if (uv) {
|
|
334
|
+
for (let i = 0; i < uv.count; i++) {
|
|
335
|
+
uv.setY(i, 1 - uv.getY(i));
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// obj只翻转uv不翻转贴图
|
|
339
|
+
this.setFlipYIsFalse(mesh.material);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
return objObject3d;
|
|
320
343
|
default:
|
|
321
344
|
if (suffix) {
|
|
322
345
|
console.log(`${suffix},不支持的格式`);
|
package/threeLoader.ts
CHANGED
|
@@ -399,6 +399,32 @@ class ThreeLoader extends EventDispatcher {
|
|
|
399
399
|
console.log(`${url},加载失败`, err);
|
|
400
400
|
});
|
|
401
401
|
|
|
402
|
+
case "obj":
|
|
403
|
+
const objObject3d = await this.objLoader.loadAsync(url);
|
|
404
|
+
objObject3d.traverse((obj) => {
|
|
405
|
+
const mesh = obj as Mesh;
|
|
406
|
+
|
|
407
|
+
if (mesh.isMesh) {
|
|
408
|
+
// 如果obj没有材质就给默认的材质
|
|
409
|
+
if (!this.objLoader.materials) {
|
|
410
|
+
mesh.material = new MeshStandardMaterial({
|
|
411
|
+
metalness: 0.5,
|
|
412
|
+
roughness: 0.5,
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
const uv = mesh.geometry.getAttribute("uv");
|
|
417
|
+
if (uv) {
|
|
418
|
+
for (let i = 0; i < uv.count; i++) {
|
|
419
|
+
uv.setY(i, 1 - uv.getY(i));
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
// obj只翻转uv不翻转贴图
|
|
423
|
+
this.setFlipYIsFalse(mesh.material);
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
return objObject3d;
|
|
427
|
+
|
|
402
428
|
default:
|
|
403
429
|
if (suffix) {
|
|
404
430
|
console.log(`${suffix},不支持的格式`);
|