@needle-tools/engine 3.5.9-alpha.2 → 3.5.9-beta

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.
@@ -5,6 +5,7 @@ import { Context } from "../engine_setup";
5
5
  export declare const EXTENSION_NAME = "NEEDLE_progressive";
6
6
  export declare class NEEDLE_progressive implements GLTFLoaderPlugin {
7
7
  static assignTextureLOD(context: Context, source: SourceIdentifier | undefined, material: Material, level?: number): void;
8
+ private static assignTextureLODForSlot;
8
9
  get name(): string;
9
10
  private parser;
10
11
  private sourceId;
@@ -1,4 +1,4 @@
1
- import { TextureLoader } from "three";
1
+ import { RawShaderMaterial, TextureLoader } from "three";
2
2
  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
3
3
  import { addDracoAndKTX2Loaders } from "../engine_loaders";
4
4
  import { delay, getParam, resolveUrl } from "../engine_utils";
@@ -31,32 +31,44 @@ export class NEEDLE_progressive {
31
31
  return;
32
32
  for (let slot of Object.keys(material)) {
33
33
  const val = material[slot];
34
- if (val?.isTexture === true) {
34
+ if (val?.isTexture)
35
+ this.assignTextureLODForSlot(context, source, material, level, slot, val);
36
+ }
37
+ if (material instanceof RawShaderMaterial) {
38
+ // iterate uniforms
39
+ for (let slot of Object.keys(material.uniforms)) {
40
+ const val = material.uniforms[slot].value;
41
+ if (val?.isTexture)
42
+ this.assignTextureLODForSlot(context, source, material, level, slot, val);
43
+ }
44
+ }
45
+ }
46
+ static assignTextureLODForSlot(context, source, material, level, slot, val) {
47
+ if (val?.isTexture !== true)
48
+ return;
49
+ if (debug)
50
+ console.log("-----------\n", "FIND", material.name, slot, val?.name, val?.userData, val, material);
51
+ NEEDLE_progressive.getOrLoadTexture(context, source, material, slot, val, level).then(t => {
52
+ if (t?.isTexture === true) {
35
53
  if (debug)
36
- console.log("-----------\n", "FIND", material.name, slot, val?.name, val?.userData, val, material);
37
- NEEDLE_progressive.getOrLoadTexture(context, source, material, slot, val, level).then(t => {
38
- if (t?.isTexture === true) {
39
- if (debug)
40
- console.log("Assign LOD", material.name, slot, t.name, t["guid"], material, "Prev:", val, "Now:", t, "\n--------------");
41
- material[slot] = t;
42
- t.needsUpdate = true;
43
- material.needsUpdate = true;
44
- if (debug) {
45
- let debug_map = debug_toggle_maps.get(material);
46
- if (!debug_map) {
47
- debug_map = {};
48
- debug_toggle_maps.set(material, debug_map);
49
- }
50
- let entry = debug_map[slot];
51
- if (!entry) {
52
- entry = debug_map[slot] = { original: val, lod0: t };
53
- }
54
- entry.lod0 = t;
55
- }
54
+ console.log("Assign LOD", material.name, slot, t.name, t["guid"], material, "Prev:", val, "Now:", t, "\n--------------");
55
+ material[slot] = t;
56
+ t.needsUpdate = true;
57
+ material.needsUpdate = true;
58
+ if (debug) {
59
+ let debug_map = debug_toggle_maps.get(material);
60
+ if (!debug_map) {
61
+ debug_map = {};
62
+ debug_toggle_maps.set(material, debug_map);
56
63
  }
57
- });
64
+ let entry = debug_map[slot];
65
+ if (!entry) {
66
+ entry = debug_map[slot] = { original: val, lod0: t };
67
+ }
68
+ entry.lod0 = t;
69
+ }
58
70
  }
59
- }
71
+ });
60
72
  }
61
73
  get name() {
62
74
  return EXTENSION_NAME;
@@ -151,6 +163,11 @@ export class NEEDLE_progressive {
151
163
  console.log("Loading finished " + uri, material.name, slot, ext.guid);
152
164
  let index = -1;
153
165
  let found = false;
166
+ if (!gltf.parser.json?.textures) {
167
+ if (debug)
168
+ console.warn("No textures in glTF " + uri + " - may be a bug", material.name, slot, ext.guid);
169
+ return resolve(null);
170
+ }
154
171
  for (const tex of gltf.parser.json.textures) {
155
172
  index++;
156
173
  if (tex?.extensions) {
@@ -1 +1 @@
1
- {"version":3,"file":"NEEDLE_progressive.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_progressive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NEEDLE_progressive.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_progressive.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "3.5.9-alpha.2",
3
+ "version": "3.5.9-beta",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
5
5
  "main": "dist/needle-engine.umd.cjs",
6
6
  "type": "module",
@@ -1,4 +1,4 @@
1
- import { Material, Texture, TextureLoader } from "three";
1
+ import { Material, RawShaderMaterial, Texture, TextureLoader } from "three";
2
2
  import { GLTF, GLTFLoader, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
3
3
  import { SourceIdentifier } from "../engine_types";
4
4
  import { Context } from "../engine_setup";
@@ -36,42 +36,55 @@ if (debug) {
36
36
  });
37
37
  }
38
38
 
39
-
40
39
  export class NEEDLE_progressive implements GLTFLoaderPlugin {
41
40
 
42
41
  static assignTextureLOD(context: Context, source: SourceIdentifier | undefined, material: Material, level: number = 0) {
43
42
  if (!material) return;
43
+
44
44
  for (let slot of Object.keys(material)) {
45
45
  const val = material[slot];
46
- if (val?.isTexture === true) {
46
+ if (val?.isTexture)
47
+ this.assignTextureLODForSlot(context, source, material, level, slot, val);
48
+ }
47
49
 
48
- if (debug) console.log("-----------\n", "FIND", material.name, slot, val?.name, val?.userData, val, material);
50
+ if (material instanceof RawShaderMaterial) {
51
+ // iterate uniforms
52
+ for (let slot of Object.keys(material.uniforms)) {
53
+ const val = material.uniforms[slot].value;
54
+ if (val?.isTexture)
55
+ this.assignTextureLODForSlot(context, source, material, level, slot, val);
56
+ }
57
+ }
58
+ }
49
59
 
50
- NEEDLE_progressive.getOrLoadTexture(context, source, material, slot, val, level).then(t => {
51
- if (t?.isTexture === true) {
60
+ private static assignTextureLODForSlot(context: Context, source: SourceIdentifier | undefined, material: Material, level: number, slot: string, val: any) {
61
+ if (val?.isTexture !== true) return;
52
62
 
53
- if (debug) console.log("Assign LOD", material.name, slot, t.name, t["guid"], material, "Prev:", val, "Now:", t, "\n--------------");
63
+ if (debug) console.log("-----------\n", "FIND", material.name, slot, val?.name, val?.userData, val, material);
54
64
 
55
- material[slot] = t;
56
- t.needsUpdate = true;
57
- material.needsUpdate = true;
65
+ NEEDLE_progressive.getOrLoadTexture(context, source, material, slot, val, level).then(t => {
66
+ if (t?.isTexture === true) {
58
67
 
59
- if (debug) {
60
- let debug_map = debug_toggle_maps.get(material);
61
- if (!debug_map) {
62
- debug_map = {};
63
- debug_toggle_maps.set(material, debug_map);
64
- }
65
- let entry = debug_map[slot];
66
- if (!entry) {
67
- entry = debug_map[slot] = { original: val, lod0: t };
68
- }
69
- entry.lod0 = t;
70
- }
68
+ if (debug) console.log("Assign LOD", material.name, slot, t.name, t["guid"], material, "Prev:", val, "Now:", t, "\n--------------");
69
+
70
+ material[slot] = t;
71
+ t.needsUpdate = true;
72
+ material.needsUpdate = true;
73
+
74
+ if (debug) {
75
+ let debug_map = debug_toggle_maps.get(material);
76
+ if (!debug_map) {
77
+ debug_map = {};
78
+ debug_toggle_maps.set(material, debug_map);
71
79
  }
72
- });
80
+ let entry = debug_map[slot];
81
+ if (!entry) {
82
+ entry = debug_map[slot] = { original: val, lod0: t };
83
+ }
84
+ entry.lod0 = t;
85
+ }
73
86
  }
74
- }
87
+ });
75
88
  }
76
89
 
77
90
  get name(): string {
@@ -176,6 +189,12 @@ export class NEEDLE_progressive implements GLTFLoaderPlugin {
176
189
  if (debug) console.log("Loading finished " + uri, material.name, slot, ext.guid);
177
190
  let index = -1;
178
191
  let found = false;
192
+
193
+ if (!gltf.parser.json?.textures) {
194
+ if (debug) console.warn("No textures in glTF " + uri + " - may be a bug", material.name, slot, ext.guid);
195
+ return resolve(null);
196
+ }
197
+
179
198
  for (const tex of gltf.parser.json.textures) {
180
199
  index++;
181
200
  if (tex?.extensions) {