angular-three-soba 2.0.0-beta.3 → 2.0.0-beta.5
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/abstractions/edges/edges.d.ts +1 -1
- package/abstractions/grid/grid.d.ts +59 -0
- package/abstractions/index.d.ts +1 -0
- package/abstractions/text/text.d.ts +0 -1
- package/abstractions/text-3d/text-3d.d.ts +1 -1
- package/esm2022/abstractions/billboard/billboard.mjs +3 -3
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +3 -3
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +3 -3
- package/esm2022/abstractions/edges/edges.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +8 -8
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +6 -6
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +6 -6
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +3 -3
- package/esm2022/abstractions/grid/grid.mjs +150 -0
- package/esm2022/abstractions/index.mjs +2 -1
- package/esm2022/abstractions/line/line-input.mjs +3 -3
- package/esm2022/abstractions/line/line.mjs +3 -3
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +3 -3
- package/esm2022/abstractions/text/text.mjs +5 -7
- package/esm2022/abstractions/text-3d/text-3d.mjs +3 -3
- package/esm2022/cameras/camera/camera-content.mjs +3 -3
- package/esm2022/cameras/camera/camera.mjs +3 -3
- package/esm2022/cameras/cube-camera/cube-camera.mjs +3 -3
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +3 -3
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +3 -3
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +3 -3
- package/esm2022/loaders/loader/loader.mjs +3 -3
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +3 -3
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +3 -3
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +7 -6
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +3 -3
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +3 -3
- package/esm2022/misc/animations/animations.mjs +20 -20
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +3 -3
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +3 -3
- package/esm2022/performance/adaptive/adaptive-events.mjs +3 -3
- package/esm2022/performance/detailed/detailed.mjs +3 -3
- package/esm2022/performance/instances/instance.mjs +3 -3
- package/esm2022/performance/instances/instances.mjs +3 -3
- package/esm2022/performance/stats/stats.mjs +3 -3
- package/esm2022/shaders/grid-material/grid-material.mjs +62 -0
- package/esm2022/shaders/index.mjs +2 -1
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +5 -5
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +3 -3
- package/esm2022/staging/bounds/bounds.mjs +3 -3
- package/esm2022/staging/camera-shake/camera-shake.mjs +3 -3
- package/esm2022/staging/caustics/caustisc.mjs +5 -5
- package/esm2022/staging/center/center.mjs +3 -3
- package/esm2022/staging/cloud/cloud.mjs +3 -3
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +3 -3
- package/esm2022/staging/environment/environment-cube.mjs +3 -3
- package/esm2022/staging/environment/environment-ground.mjs +3 -3
- package/esm2022/staging/environment/environment-input.mjs +3 -3
- package/esm2022/staging/environment/environment-map.mjs +3 -3
- package/esm2022/staging/environment/environment-portal.mjs +5 -5
- package/esm2022/staging/environment/environment.mjs +6 -6
- package/esm2022/staging/float/float.mjs +3 -3
- package/esm2022/staging/sky/sky.mjs +3 -3
- package/esm2022/staging/sparkles/sparkles.mjs +3 -3
- package/esm2022/staging/spot-light/spot-light-input.mjs +3 -3
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +3 -3
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +13 -11
- package/esm2022/staging/spot-light/spot-light.mjs +3 -3
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +3 -3
- package/esm2022/staging/stage/stage.mjs +6 -6
- package/esm2022/staging/stars/stars.mjs +3 -3
- package/fesm2022/angular-three-soba-abstractions.mjs +205 -63
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +15 -15
- package/fesm2022/angular-three-soba-controls.mjs +3 -3
- package/fesm2022/angular-three-soba-loaders.mjs +3 -3
- package/fesm2022/angular-three-soba-materials.mjs +18 -17
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +22 -22
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-performance.mjs +18 -18
- package/fesm2022/angular-three-soba-shaders.mjs +61 -1
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +90 -88
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/misc/animations/animations.d.ts +1 -1
- package/package.json +16 -16
- package/performance/instances/instances.d.ts +2 -2
- package/performance/instances/position-mesh.d.ts +1 -1
- package/plugin/package.json +2 -2
- package/plugin/src/generators/init/init.d.ts +3 -0
- package/plugin/src/generators/init/init.js +7 -1
- package/plugin/src/generators/init/init.js.map +1 -1
- package/shaders/grid-material/grid-material.d.ts +4 -0
- package/shaders/index.d.ts +1 -0
- package/staging/caustics/caustisc.d.ts +1 -1
- package/staging/sparkles/sparkles.d.ts +1 -1
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +2 -2
- package/staging/spot-light/volumetric-mesh.d.ts +1 -1
- package/staging/stars/stars.d.ts +1 -1
|
@@ -3,7 +3,7 @@ import { runInInjectionContext, inject, DestroyRef, effect, Directive, ChangeDet
|
|
|
3
3
|
import { assertInjectionContext, injectNgtRef, injectBeforeRender, NgtStore, safeDetectChanges } from 'angular-three';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
|
|
6
|
-
function injectNgtsAnimations(animationsFactory, { ref, injector }) {
|
|
6
|
+
function injectNgtsAnimations(animationsFactory, { ref, injector } = {}) {
|
|
7
7
|
injector = assertInjectionContext(injectNgtsAnimations, injector);
|
|
8
8
|
return runInInjectionContext(injector, () => {
|
|
9
9
|
let actualRef = injectNgtRef();
|
|
@@ -31,25 +31,25 @@ function injectNgtsAnimations(animationsFactory, { ref, injector }) {
|
|
|
31
31
|
mixer.stopAllAction();
|
|
32
32
|
});
|
|
33
33
|
injectBeforeRender(({ delta }) => mixer.update(delta));
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
34
|
+
effect(() => {
|
|
35
|
+
const actual = actualRef.nativeElement;
|
|
36
|
+
if (!actual)
|
|
37
|
+
return;
|
|
38
|
+
const animations = animationsFactory();
|
|
39
|
+
for (let i = 0; i < animations.length; i++) {
|
|
40
|
+
const clip = animations[i];
|
|
41
|
+
names.push(clip.name);
|
|
42
|
+
clips.push(clip);
|
|
43
|
+
Object.defineProperty(actions, clip.name, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: () => {
|
|
46
|
+
return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, actual));
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (i === 0) {
|
|
50
|
+
actions[clip.name].play();
|
|
51
51
|
}
|
|
52
|
-
}
|
|
52
|
+
}
|
|
53
53
|
});
|
|
54
54
|
return { ref: actualRef, actions, mixer, names, clips };
|
|
55
55
|
});
|
|
@@ -67,10 +67,10 @@ class NgtsBakeShadows {
|
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
71
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsBakeShadows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
71
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", ngImport: i0 }); }
|
|
72
72
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsBakeShadows, decorators: [{
|
|
74
74
|
type: Directive,
|
|
75
75
|
args: [{ selector: 'ngts-bake-shadows', standalone: true }]
|
|
76
76
|
}], ctorParameters: function () { return []; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-soba-misc.mjs","sources":["../../../../libs/soba/misc/src/animations/animations.ts","../../../../libs/soba/misc/src/bake-shadows/bake-shadows.ts","../../../../libs/soba/misc/src/fbo/fbo.ts","../../../../libs/soba/misc/src/depth-buffer/depth-buffer.ts","../../../../libs/soba/misc/src/angular-three-soba-misc.ts"],"sourcesContent":["import { DestroyRef, Injector, effect, inject, runInInjectionContext } from '@angular/core';\nimport { assertInjectionContext, injectBeforeRender, injectNgtRef, type NgtInjectedRef } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsAnimations(\n animationsFactory: () => THREE.AnimationClip[],\n { ref, injector }: { ref?: NgtInjectedRef<THREE.Object3D> | THREE.Object3D; injector?: Injector }\n) {\n injector = assertInjectionContext(injectNgtsAnimations, injector);\n return runInInjectionContext(injector, () => {\n let actualRef = injectNgtRef<THREE.Object3D>();\n\n if (ref) {\n if (ref instanceof THREE.Object3D) {\n actualRef.nativeElement = ref;\n } else {\n actualRef = ref;\n }\n }\n\n const mixer = new THREE.AnimationMixer(null!);\n const actions = {} as Record<string, THREE.AnimationAction>;\n let cached = {} as Record<string, THREE.AnimationAction>;\n\n const clips = [] as THREE.AnimationClip[];\n const names = [] as string[];\n\n inject(DestroyRef).onDestroy(() => {\n // clear cached\n cached = {};\n // uncache actions\n Object.values(actions).forEach((action) => {\n mixer.uncacheAction(action as unknown as THREE.AnimationClip, actualRef.untracked);\n });\n // stop all actions\n mixer.stopAllAction();\n });\n\n injectBeforeRender(({ delta }) => mixer.update(delta));\n\n requestAnimationFrame(() => {\n effect(\n () => {\n const actual = actualRef.nativeElement;\n const animations = animationsFactory();\n\n for (let i = 0; i < animations.length; i++) {\n const clip = animations[i];\n\n names.push(clip.name);\n clips.push(clip);\n\n Object.defineProperty(actions, clip.name, {\n enumerable: true,\n get: () => {\n return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, actual));\n },\n });\n\n if (i === 0) {\n actions[clip.name].play();\n }\n }\n },\n { injector }\n );\n });\n\n return { ref: actualRef, actions, mixer, names, clips };\n });\n}\n","import { Directive, effect, inject } from '@angular/core';\nimport { NgtStore } from 'angular-three';\n\n@Directive({ selector: 'ngts-bake-shadows', standalone: true })\nexport class NgtsBakeShadows {\n constructor() {\n const store = inject(NgtStore);\n const gl = store.select('gl');\n effect((onCleanup) => {\n gl().shadowMap.autoUpdate = false;\n gl().shadowMap.needsUpdate = true;\n onCleanup(() => {\n gl().shadowMap.autoUpdate = gl().shadowMap.needsUpdate = true;\n });\n });\n }\n}\n","import {\n ChangeDetectorRef,\n computed,\n DestroyRef,\n effect,\n inject,\n Injector,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core';\nimport { assertInjectionContext, NgtStore, safeDetectChanges } from 'angular-three';\nimport * as THREE from 'three';\n\ninterface FBOSettings extends THREE.WebGLRenderTargetOptions {\n /** Defines the count of MSAA samples. Can only be used with WebGL 2. Default: 0 */\n samples?: number;\n /** If set, the scene depth will be rendered into buffer.depthTexture. Default: false */\n depth?: boolean;\n}\n\nexport interface NgtsFBOParams {\n width?: number | FBOSettings;\n height?: number;\n settings?: FBOSettings;\n}\n\nexport function injectNgtsFBO(fboParams: () => NgtsFBOParams, { injector }: { injector?: Injector } = {}) {\n injector = assertInjectionContext(injectNgtsFBO, injector);\n return runInInjectionContext(injector, () => {\n const store = inject(NgtStore);\n const cdr = inject(ChangeDetectorRef);\n\n const targetRef = signal<THREE.WebGLRenderTarget>(null!);\n\n inject(DestroyRef).onDestroy(() => targetRef().dispose());\n\n requestAnimationFrame(() => {\n const size = store.select('size');\n const dpr = store.select('viewport', 'dpr');\n const trigger = computed(() => {\n const { width, height, settings } = fboParams();\n const _width = typeof width === 'number' ? width : size().width * dpr();\n const _height = typeof height === 'number' ? height : size().height * dpr();\n const _settings = (typeof width === 'number' ? settings : (width as FBOSettings)) || {};\n\n return { width: _width, height: _height, settings: _settings };\n });\n\n effect(\n () => {\n const { width, height, settings } = trigger();\n const { samples = 0, depth, ...targetSettings } = settings;\n let untrackedTarget = untracked(targetRef);\n if (!untrackedTarget) {\n const target = new THREE.WebGLRenderTarget(width, height, {\n minFilter: THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n type: THREE.HalfFloatType,\n ...targetSettings,\n });\n if (depth) target.depthTexture = new THREE.DepthTexture(width, height, THREE.FloatType);\n\n target.samples = samples;\n targetRef.set(target);\n untrackedTarget = untracked(targetRef);\n }\n\n untrackedTarget.setSize(width, height);\n if (samples) untrackedTarget.samples = samples;\n safeDetectChanges(cdr);\n },\n { allowSignalWrites: true, injector }\n );\n });\n\n return targetRef.asReadonly();\n });\n}\n","import {\n ChangeDetectorRef,\n computed,\n effect,\n inject,\n Injector,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core';\nimport { assertInjectionContext, injectBeforeRender, NgtStore, safeDetectChanges } from 'angular-three';\nimport * as THREE from 'three';\nimport { injectNgtsFBO } from '../fbo/fbo';\n\nexport interface NgtsDepthBufferParams {\n size: number;\n frames: number;\n}\n\nexport function injectNgtsDepthBuffer(\n paramsFactory: () => Partial<NgtsDepthBufferParams> = () => ({}),\n { injector }: { injector?: Injector } = {}\n) {\n injector = assertInjectionContext(injectNgtsDepthBuffer, injector);\n return runInInjectionContext(injector, () => {\n const depthBufferRef = signal<THREE.DepthTexture>(null!);\n const store = inject(NgtStore);\n const cdr = inject(ChangeDetectorRef);\n\n const size = store.select('size');\n const dpr = store.select('viewport', 'dpr');\n\n requestAnimationFrame(() => {\n const fboParams = computed(() => {\n const params = { size: 256, frames: Infinity, ...paramsFactory() };\n const width = params.size || size().width * dpr();\n const height = params.size || size().height * dpr();\n const depthTexture = new THREE.DepthTexture(width, height);\n depthTexture.format = THREE.DepthFormat;\n depthTexture.type = THREE.UnsignedShortType;\n return { width, height, settings: { depthTexture } };\n });\n\n const fboRef = injectNgtsFBO(fboParams, { injector });\n\n effect(\n () => {\n const fbo = fboRef();\n if (fbo) {\n depthBufferRef.set(fbo.depthTexture);\n safeDetectChanges(cdr);\n }\n },\n { allowSignalWrites: true, injector }\n );\n\n let count = 0;\n injectBeforeRender(\n ({ gl, scene, camera }) => {\n const params = { size: 256, frames: Infinity, ...paramsFactory() };\n const fbo = untracked(fboRef);\n if ((params.frames === Infinity || count < params.frames) && fbo) {\n gl.setRenderTarget(fbo);\n gl.render(scene, camera);\n gl.setRenderTarget(null);\n count++;\n }\n },\n { injector }\n );\n });\n\n return depthBufferRef.asReadonly();\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-soba-misc.mjs","sources":["../../../../libs/soba/misc/src/animations/animations.ts","../../../../libs/soba/misc/src/bake-shadows/bake-shadows.ts","../../../../libs/soba/misc/src/fbo/fbo.ts","../../../../libs/soba/misc/src/depth-buffer/depth-buffer.ts","../../../../libs/soba/misc/src/angular-three-soba-misc.ts"],"sourcesContent":["import { DestroyRef, Injector, effect, inject, runInInjectionContext } from '@angular/core';\nimport { assertInjectionContext, injectBeforeRender, injectNgtRef, type NgtInjectedRef } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsAnimations(\n animationsFactory: () => THREE.AnimationClip[],\n { ref, injector }: { ref?: NgtInjectedRef<THREE.Object3D> | THREE.Object3D; injector?: Injector } = {}\n) {\n injector = assertInjectionContext(injectNgtsAnimations, injector);\n return runInInjectionContext(injector, () => {\n let actualRef = injectNgtRef<THREE.Object3D>();\n\n if (ref) {\n if (ref instanceof THREE.Object3D) {\n actualRef.nativeElement = ref;\n } else {\n actualRef = ref;\n }\n }\n\n const mixer = new THREE.AnimationMixer(null!);\n const actions = {} as Record<string, THREE.AnimationAction>;\n let cached = {} as Record<string, THREE.AnimationAction>;\n\n const clips = [] as THREE.AnimationClip[];\n const names = [] as string[];\n\n inject(DestroyRef).onDestroy(() => {\n // clear cached\n cached = {};\n // uncache actions\n Object.values(actions).forEach((action) => {\n mixer.uncacheAction(action as unknown as THREE.AnimationClip, actualRef.untracked);\n });\n // stop all actions\n mixer.stopAllAction();\n });\n\n injectBeforeRender(({ delta }) => mixer.update(delta));\n\n effect(() => {\n const actual = actualRef.nativeElement;\n if (!actual) return;\n const animations = animationsFactory();\n\n for (let i = 0; i < animations.length; i++) {\n const clip = animations[i];\n\n names.push(clip.name);\n clips.push(clip);\n\n Object.defineProperty(actions, clip.name, {\n enumerable: true,\n get: () => {\n return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, actual));\n },\n });\n\n if (i === 0) {\n actions[clip.name].play();\n }\n }\n });\n\n return { ref: actualRef, actions, mixer, names, clips };\n });\n}\n","import { Directive, effect, inject } from '@angular/core';\nimport { NgtStore } from 'angular-three';\n\n@Directive({ selector: 'ngts-bake-shadows', standalone: true })\nexport class NgtsBakeShadows {\n constructor() {\n const store = inject(NgtStore);\n const gl = store.select('gl');\n effect((onCleanup) => {\n gl().shadowMap.autoUpdate = false;\n gl().shadowMap.needsUpdate = true;\n onCleanup(() => {\n gl().shadowMap.autoUpdate = gl().shadowMap.needsUpdate = true;\n });\n });\n }\n}\n","import {\n ChangeDetectorRef,\n computed,\n DestroyRef,\n effect,\n inject,\n Injector,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core';\nimport { assertInjectionContext, NgtStore, safeDetectChanges } from 'angular-three';\nimport * as THREE from 'three';\n\ninterface FBOSettings extends THREE.WebGLRenderTargetOptions {\n /** Defines the count of MSAA samples. Can only be used with WebGL 2. Default: 0 */\n samples?: number;\n /** If set, the scene depth will be rendered into buffer.depthTexture. Default: false */\n depth?: boolean;\n}\n\nexport interface NgtsFBOParams {\n width?: number | FBOSettings;\n height?: number;\n settings?: FBOSettings;\n}\n\nexport function injectNgtsFBO(fboParams: () => NgtsFBOParams, { injector }: { injector?: Injector } = {}) {\n injector = assertInjectionContext(injectNgtsFBO, injector);\n return runInInjectionContext(injector, () => {\n const store = inject(NgtStore);\n const cdr = inject(ChangeDetectorRef);\n\n const targetRef = signal<THREE.WebGLRenderTarget>(null!);\n\n inject(DestroyRef).onDestroy(() => targetRef().dispose());\n\n requestAnimationFrame(() => {\n const size = store.select('size');\n const dpr = store.select('viewport', 'dpr');\n const trigger = computed(() => {\n const { width, height, settings } = fboParams();\n const _width = typeof width === 'number' ? width : size().width * dpr();\n const _height = typeof height === 'number' ? height : size().height * dpr();\n const _settings = (typeof width === 'number' ? settings : (width as FBOSettings)) || {};\n\n return { width: _width, height: _height, settings: _settings };\n });\n\n effect(\n () => {\n const { width, height, settings } = trigger();\n const { samples = 0, depth, ...targetSettings } = settings;\n let untrackedTarget = untracked(targetRef);\n if (!untrackedTarget) {\n const target = new THREE.WebGLRenderTarget(width, height, {\n minFilter: THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n type: THREE.HalfFloatType,\n ...targetSettings,\n });\n if (depth) target.depthTexture = new THREE.DepthTexture(width, height, THREE.FloatType);\n\n target.samples = samples;\n targetRef.set(target);\n untrackedTarget = untracked(targetRef);\n }\n\n untrackedTarget.setSize(width, height);\n if (samples) untrackedTarget.samples = samples;\n safeDetectChanges(cdr);\n },\n { allowSignalWrites: true, injector }\n );\n });\n\n return targetRef.asReadonly();\n });\n}\n","import {\n ChangeDetectorRef,\n computed,\n effect,\n inject,\n Injector,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core';\nimport { assertInjectionContext, injectBeforeRender, NgtStore, safeDetectChanges } from 'angular-three';\nimport * as THREE from 'three';\nimport { injectNgtsFBO } from '../fbo/fbo';\n\nexport interface NgtsDepthBufferParams {\n size: number;\n frames: number;\n}\n\nexport function injectNgtsDepthBuffer(\n paramsFactory: () => Partial<NgtsDepthBufferParams> = () => ({}),\n { injector }: { injector?: Injector } = {}\n) {\n injector = assertInjectionContext(injectNgtsDepthBuffer, injector);\n return runInInjectionContext(injector, () => {\n const depthBufferRef = signal<THREE.DepthTexture>(null!);\n const store = inject(NgtStore);\n const cdr = inject(ChangeDetectorRef);\n\n const size = store.select('size');\n const dpr = store.select('viewport', 'dpr');\n\n requestAnimationFrame(() => {\n const fboParams = computed(() => {\n const params = { size: 256, frames: Infinity, ...paramsFactory() };\n const width = params.size || size().width * dpr();\n const height = params.size || size().height * dpr();\n const depthTexture = new THREE.DepthTexture(width, height);\n depthTexture.format = THREE.DepthFormat;\n depthTexture.type = THREE.UnsignedShortType;\n return { width, height, settings: { depthTexture } };\n });\n\n const fboRef = injectNgtsFBO(fboParams, { injector });\n\n effect(\n () => {\n const fbo = fboRef();\n if (fbo) {\n depthBufferRef.set(fbo.depthTexture);\n safeDetectChanges(cdr);\n }\n },\n { allowSignalWrites: true, injector }\n );\n\n let count = 0;\n injectBeforeRender(\n ({ gl, scene, camera }) => {\n const params = { size: 256, frames: Infinity, ...paramsFactory() };\n const fbo = untracked(fboRef);\n if ((params.frames === Infinity || count < params.frames) && fbo) {\n gl.setRenderTarget(fbo);\n gl.render(scene, camera);\n gl.setRenderTarget(null);\n count++;\n }\n },\n { injector }\n );\n });\n\n return depthBufferRef.asReadonly();\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -35,10 +35,10 @@ class NgtsAdaptiveDpr {
|
|
|
35
35
|
gl.domElement.style.imageRendering = current === 1 ? 'auto' : 'pixelated';
|
|
36
36
|
}, { allowSignalWrites: true });
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
39
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, ngImport: i0 }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
|
|
42
42
|
type: Directive,
|
|
43
43
|
args: [{
|
|
44
44
|
selector: 'ngts-adaptive-dpr',
|
|
@@ -64,10 +64,10 @@ class NgtsAdaptiveEvents {
|
|
|
64
64
|
setEvents({ enabled: performanceCurrent() === 1 });
|
|
65
65
|
}, { allowSignalWrites: true });
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
68
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
|
|
71
71
|
type: Directive,
|
|
72
72
|
args: [{
|
|
73
73
|
selector: 'ngts-adaptive-events',
|
|
@@ -105,14 +105,14 @@ class NgtsDetailed extends NgtSignalStore {
|
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
|
|
110
110
|
<ngt-lOD ngtCompound [ref]="lodRef" (beforeRender)="onLODBeforeRender($event)">
|
|
111
111
|
<ng-content />
|
|
112
112
|
</ngt-lOD>
|
|
113
113
|
`, isInline: true }); }
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsDetailed, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{
|
|
118
118
|
selector: 'ngts-detailed',
|
|
@@ -234,8 +234,8 @@ class NgtsInstances extends NgtSignalStore {
|
|
|
234
234
|
}
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
237
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { instancesRef: "instancesRef", range: "range", limit: "limit", frames: "frames" }, providers: [
|
|
239
239
|
{ provide: NGTS_INSTANCES_API, useFactory: (instances) => instances.api, deps: [NgtsInstances] },
|
|
240
240
|
], usesInheritance: true, ngImport: i0, template: `
|
|
241
241
|
<ngt-instanced-mesh
|
|
@@ -265,7 +265,7 @@ class NgtsInstances extends NgtSignalStore {
|
|
|
265
265
|
</ngt-instanced-mesh>
|
|
266
266
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
|
|
267
267
|
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsInstances, decorators: [{
|
|
269
269
|
type: Component,
|
|
270
270
|
args: [{
|
|
271
271
|
selector: 'ngts-instances',
|
|
@@ -375,8 +375,8 @@ class NgtsInstance {
|
|
|
375
375
|
});
|
|
376
376
|
});
|
|
377
377
|
}
|
|
378
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
379
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
379
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", ngImport: i0, template: `
|
|
380
380
|
<ngt-position-mesh
|
|
381
381
|
ngtCompound
|
|
382
382
|
[ref]="positionMeshRef"
|
|
@@ -387,7 +387,7 @@ class NgtsInstance {
|
|
|
387
387
|
</ngt-position-mesh>
|
|
388
388
|
`, isInline: true }); }
|
|
389
389
|
}
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
390
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsInstance, decorators: [{
|
|
391
391
|
type: Component,
|
|
392
392
|
args: [{
|
|
393
393
|
selector: 'ngts-instance',
|
|
@@ -460,10 +460,10 @@ class NgtsStats extends NgtSignalStore {
|
|
|
460
460
|
});
|
|
461
461
|
});
|
|
462
462
|
}
|
|
463
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
464
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.
|
|
463
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsStats, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
464
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes", right: "right" }, usesInheritance: true, ngImport: i0 }); }
|
|
465
465
|
}
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
466
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgtsStats, decorators: [{
|
|
467
467
|
type: Directive,
|
|
468
468
|
args: [{
|
|
469
469
|
selector: 'ngts-stats',
|
|
@@ -347,6 +347,66 @@ uniform mat4 lightViewMatrix;
|
|
|
347
347
|
|
|
348
348
|
const DiscardMaterial = shaderMaterial({}, 'void main() { }', 'void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); discard; }');
|
|
349
349
|
|
|
350
|
+
const GridMaterial = shaderMaterial({
|
|
351
|
+
cellSize: 0.5,
|
|
352
|
+
sectionSize: 1,
|
|
353
|
+
fadeDistance: 100,
|
|
354
|
+
fadeStrength: 1,
|
|
355
|
+
cellThickness: 0.5,
|
|
356
|
+
sectionThickness: 1,
|
|
357
|
+
cellColor: new THREE.Color(),
|
|
358
|
+
sectionColor: new THREE.Color(),
|
|
359
|
+
infiniteGrid: false,
|
|
360
|
+
followCamera: false,
|
|
361
|
+
},
|
|
362
|
+
/* glsl */ `
|
|
363
|
+
varying vec3 worldPosition;
|
|
364
|
+
uniform float fadeDistance;
|
|
365
|
+
uniform bool infiniteGrid;
|
|
366
|
+
uniform bool followCamera;
|
|
367
|
+
|
|
368
|
+
void main() {
|
|
369
|
+
worldPosition = position.xzy;
|
|
370
|
+
if (infiniteGrid) worldPosition *= 1.0 + fadeDistance;
|
|
371
|
+
if (followCamera) worldPosition.xz +=cameraPosition.xz;
|
|
372
|
+
|
|
373
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(worldPosition, 1.0);
|
|
374
|
+
}
|
|
375
|
+
`,
|
|
376
|
+
/* glsl */ `
|
|
377
|
+
varying vec3 worldPosition;
|
|
378
|
+
uniform float cellSize;
|
|
379
|
+
uniform float sectionSize;
|
|
380
|
+
uniform vec3 cellColor;
|
|
381
|
+
uniform vec3 sectionColor;
|
|
382
|
+
uniform float fadeDistance;
|
|
383
|
+
uniform float fadeStrength;
|
|
384
|
+
uniform float cellThickness;
|
|
385
|
+
uniform float sectionThickness;
|
|
386
|
+
|
|
387
|
+
float getGrid(float size, float thickness) {
|
|
388
|
+
vec2 r = worldPosition.xz / size;
|
|
389
|
+
vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
|
|
390
|
+
float line = min(grid.x, grid.y) + 1. - thickness;
|
|
391
|
+
return 1.0 - min(line, 1.);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
void main() {
|
|
395
|
+
float g1 = getGrid(cellSize, cellThickness);
|
|
396
|
+
float g2 = getGrid(sectionSize, sectionThickness);
|
|
397
|
+
|
|
398
|
+
float d = 1.0 - min(distance(cameraPosition.xz, worldPosition.xz) / fadeDistance, 1.);
|
|
399
|
+
vec3 color = mix(cellColor, sectionColor, min(1.,sectionThickness * g2));
|
|
400
|
+
|
|
401
|
+
gl_FragColor = vec4(color, (g1 + g2) * pow(d,fadeStrength));
|
|
402
|
+
gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);
|
|
403
|
+
if (gl_FragColor.a <= 0.0) discard;
|
|
404
|
+
|
|
405
|
+
#include <tonemapping_fragment>
|
|
406
|
+
#include <encodings_fragment>
|
|
407
|
+
}
|
|
408
|
+
`);
|
|
409
|
+
|
|
350
410
|
const NGTS_DISTORT_MATERIAL_SHADER = new InjectionToken('DistortMaterialShader');
|
|
351
411
|
function provideNgtsMeshDistortMaterialShader(distortShader) {
|
|
352
412
|
return {
|
|
@@ -1288,5 +1348,5 @@ void main() {
|
|
|
1288
1348
|
* Generated bundle index. Do not edit.
|
|
1289
1349
|
*/
|
|
1290
1350
|
|
|
1291
|
-
export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, ConvolutionMaterial, DiscardMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, NGTS_DISTORT_MATERIAL_SHADER, SoftShadowMaterial, SparklesMaterial, SpotLightMaterial, StarFieldMaterial, provideNgtsMeshDistortMaterialShader };
|
|
1351
|
+
export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, ConvolutionMaterial, DiscardMaterial, GridMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, NGTS_DISTORT_MATERIAL_SHADER, SoftShadowMaterial, SparklesMaterial, SpotLightMaterial, StarFieldMaterial, provideNgtsMeshDistortMaterialShader };
|
|
1292
1352
|
//# sourceMappingURL=angular-three-soba-shaders.mjs.map
|