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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "2.0.85",
3
+ "version": "2.0.86",
4
4
  "description": "three 3d three-base",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
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},不支持的格式`);