@needle-tools/gltf-progressive 4.0.0-alpha.7 → 4.0.0-alpha.8
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/README.md +4 -0
- package/lib/index.d.ts +4 -3
- package/lib/loaders.d.ts +2 -2
- package/lib/lods.manager.d.ts +4 -3
- package/lib/plugins/plugin.d.ts +4 -3
- package/lib/renderer.d.ts +4 -0
- package/lib/renderer.js +1 -0
- package/lib/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -217,3 +217,7 @@ Read more about Needle Progressive GLTF loading in the [Needle Engine documentat
|
|
|
217
217
|
[Twitter](https://twitter.com/NeedleTools) •
|
|
218
218
|
[Discord](https://discord.needle.tools) •
|
|
219
219
|
[Forum](https://forum.needle.tools)
|
|
220
|
+
|
|
221
|
+
### Renderer types
|
|
222
|
+
|
|
223
|
+
Progressive loading accepts both WebGLRenderer and initialized WebGPURenderer instances. The exported ProgressiveRenderer type is shared by loader setup, the LOD manager, and plugin callbacks. Initialize a WebGPU renderer before configuring its loaders. Run npm run test:types to verify both public renderer contracts.
|
package/lib/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
export type { ProgressiveRenderer } from './renderer.js';
|
|
2
|
+
import type { ProgressiveRenderer } from './renderer.js';
|
|
1
3
|
export { version as VERSION } from "./version.js";
|
|
2
4
|
export * from "./extension.js";
|
|
3
5
|
export * from "./plugins/index.js";
|
|
4
6
|
export { LODsManager, calculateMeshLODLevel, getLODColor, lodDebugColors, type LOD_Results, type MeshLODSelectionOptions, type MeshLODSelectionResult } from "./lods.manager.js";
|
|
5
7
|
export { setDracoDecoderLocation, setKTX2TranscoderLocation, createLoaders, disposeLoaders, addDracoAndKTX2Loaders, configureLoader } from "./loaders.js";
|
|
6
8
|
export { getRaycastMesh, registerRaycastMesh, useRaycastMeshes } from "./utils.js";
|
|
7
|
-
import { WebGLRenderer } from "three";
|
|
8
9
|
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
9
10
|
import { SmartLoadingHints } from "./loaders.js";
|
|
10
11
|
declare type UseNeedleGLTFProgressiveOptions = {
|
|
@@ -18,5 +19,5 @@ declare type UseNeedleGLTFProgressiveOptions = {
|
|
|
18
19
|
hints?: Omit<SmartLoadingHints, "progressive">;
|
|
19
20
|
};
|
|
20
21
|
/** @deprecated Use `useNeedleProgressive(loader, renderer)` - this method will be removed in gltf-progressive 4 */
|
|
21
|
-
export declare function useNeedleProgressive(url: string, renderer:
|
|
22
|
-
export declare function useNeedleProgressive(loader: GLTFLoader, renderer:
|
|
22
|
+
export declare function useNeedleProgressive(url: string, renderer: ProgressiveRenderer, loader: GLTFLoader, opts?: UseNeedleGLTFProgressiveOptions): any;
|
|
23
|
+
export declare function useNeedleProgressive(loader: GLTFLoader, renderer: ProgressiveRenderer, opts?: UseNeedleGLTFProgressiveOptions): any;
|
package/lib/loaders.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ProgressiveRenderer } from './renderer.js';
|
|
2
2
|
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
3
3
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
4
4
|
import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';
|
|
@@ -25,7 +25,7 @@ export declare function setKTX2TranscoderLocation(location: string): void;
|
|
|
25
25
|
* @param renderer - Provide a renderer to detect KTX2 support.
|
|
26
26
|
* @returns The loaders/decoders.
|
|
27
27
|
*/
|
|
28
|
-
export declare function createLoaders(renderer:
|
|
28
|
+
export declare function createLoaders(renderer: ProgressiveRenderer | null): {
|
|
29
29
|
dracoLoader: DRACOLoader;
|
|
30
30
|
ktx2Loader: KTX2Loader;
|
|
31
31
|
meshoptDecoder: any;
|
package/lib/lods.manager.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ProgressiveRenderer } from './renderer.js';
|
|
2
|
+
import { Box3, BufferGeometry, Camera, Color, Material, Matrix4, Object3D, Scene, Texture, Vector3 } from "three";
|
|
2
3
|
import { NEEDLE_progressive_plugin } from "./plugins/plugin.js";
|
|
3
4
|
import { PromiseGroupOptions } from "./lods.promise.js";
|
|
4
5
|
export type LODManagerContext = {
|
|
@@ -82,8 +83,8 @@ export declare class LODsManager {
|
|
|
82
83
|
* @param renderer The renderer to get the LODsManager for.
|
|
83
84
|
* @returns The LODsManager instance.
|
|
84
85
|
*/
|
|
85
|
-
static get(renderer:
|
|
86
|
-
readonly renderer:
|
|
86
|
+
static get(renderer: ProgressiveRenderer, context?: LODManagerContext): LODsManager;
|
|
87
|
+
readonly renderer: ProgressiveRenderer;
|
|
87
88
|
private readonly context;
|
|
88
89
|
private readonly projectionScreenMatrix;
|
|
89
90
|
/** @deprecated use static `LODsManager.addPlugin()` method. This getter will be removed in later versions */
|
package/lib/plugins/plugin.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ProgressiveRenderer } from '../renderer.js';
|
|
2
|
+
import { Scene, Camera, Mesh } from 'three';
|
|
2
3
|
import { NEEDLE_ext_progressive_mesh } from '../extension.model.js';
|
|
3
4
|
/**
|
|
4
5
|
* This interface is used to define a plugin for the progressive extension. It can be registered using the `registerPlugin` function.
|
|
5
6
|
*/
|
|
6
7
|
export interface NEEDLE_progressive_plugin {
|
|
7
8
|
/** Called before the LOD level will be requested/updated for a object */
|
|
8
|
-
onBeforeUpdateLOD?(renderer:
|
|
9
|
+
onBeforeUpdateLOD?(renderer: ProgressiveRenderer, scene: Scene, camera: Camera, object: Mesh): void;
|
|
9
10
|
/** Called after the LOD level has been requested */
|
|
10
|
-
onAfterUpdatedLOD?(renderer:
|
|
11
|
+
onAfterUpdatedLOD?(renderer: ProgressiveRenderer, scene: Scene, camera: Camera, object: Mesh, level: {
|
|
11
12
|
mesh_lod: number;
|
|
12
13
|
texture_lod: number;
|
|
13
14
|
}): void;
|
package/lib/renderer.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/version.js
CHANGED
package/package.json
CHANGED