angular-three-postprocessing 4.0.0-next.4 → 4.0.0-next.6
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.
|
@@ -67,10 +67,6 @@ class NgtpEffectComposer {
|
|
|
67
67
|
this.options = input(defaultOptions$4, { transform: mergeInputs(defaultOptions$4) });
|
|
68
68
|
this.injector = inject(Injector);
|
|
69
69
|
this.store = injectStore();
|
|
70
|
-
// private size = this.store.select('size');
|
|
71
|
-
// private gl = this.store.select('gl');
|
|
72
|
-
// private defaultScene = this.store.select('scene');
|
|
73
|
-
// private defaultCamera = this.store.select('camera');
|
|
74
70
|
this.depthBuffer = pick(this.options, 'depthBuffer');
|
|
75
71
|
this.stencilBuffer = pick(this.options, 'stencilBuffer');
|
|
76
72
|
this.multisampling = pick(this.options, 'multisampling');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/ascii.ts","../../../../libs/postprocessing/src/lib/effects/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/chromatic-abberation.ts","../../../../libs/postprocessing/src/lib/effects/color-average.ts","../../../../libs/postprocessing/src/lib/effects/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth.ts","../../../../libs/postprocessing/src/lib/effects/depth-of-field.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/fxaa.ts","../../../../libs/postprocessing/src/lib/effects/glitch.ts","../../../../libs/postprocessing/src/lib/effects/god-rays.ts","../../../../libs/postprocessing/src/lib/effects/grid.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lens-flare.ts","../../../../libs/postprocessing/src/lib/effects/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise.ts","../../../../libs/postprocessing/src/lib/effects/outline.ts","../../../../libs/postprocessing/src/lib/effects/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift-2.ts","../../../../libs/postprocessing/src/lib/effects/tone-mapping.ts","../../../../libs/postprocessing/src/lib/effects/vignette.ts","../../../../libs/postprocessing/src/lib/effects/water.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport { BlendFunction } from 'postprocessing';\n\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken<{\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n}>('Default Effect options');\n\n@Component({\n\tselector: 'ngtp-effect-blend-mode',\n\ttemplate: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectBlendMode {\n\teffect = inject(NgtpEffect, { optional: true });\n}\n\n@Directive()\nexport class NgtpEffect {\n\tdefaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n\n\tblendFunction = input(this.defaultEffectOptions?.blendFunction);\n\topacity = input(this.defaultEffectOptions?.opacity);\n\n\tprivate store = injectStore();\n\tcamera = this.store.camera;\n\tinvalidate = this.store.invalidate;\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInjector,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { extend, getInstanceState, injectBeforeRender, injectStore, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectAttribute,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nexport interface NgtpEffectComposerOptions {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\t/** Only used for SSGI currently, leave it disabled for everything else unless it's needed */\n\tenableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: THREE.TextureDataType;\n\trenderPriority: number;\n\tcamera?: THREE.Camera;\n\tscene?: THREE.Scene;\n}\n\nconst defaultOptions: NgtpEffectComposerOptions = {\n\tenabled: true,\n\trenderPriority: 1,\n\tautoClear: true,\n\tmultisampling: 8,\n\tframeBufferType: THREE.HalfFloatType,\n};\n\nfunction isConvolution(effect: Effect) {\n\treturn (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\ttemplate: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectComposer {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate injector = inject(Injector);\n\tprivate store = injectStore();\n\t// private size = this.store.select('size');\n\t// private gl = this.store.select('gl');\n\t// private defaultScene = this.store.select('scene');\n\t// private defaultCamera = this.store.select('camera');\n\n\tprivate depthBuffer = pick(this.options, 'depthBuffer');\n\tprivate stencilBuffer = pick(this.options, 'stencilBuffer');\n\tprivate multisampling = pick(this.options, 'multisampling');\n\tprivate frameBufferType = pick(this.options, 'frameBufferType');\n\tprivate enableNormalPass = pick(this.options, 'enableNormalPass');\n\tprivate resolutionScale = pick(this.options, 'resolutionScale');\n\tprivate enabled = pick(this.options, 'enabled');\n\tprivate renderPriority = pick(this.options, 'renderPriority');\n\n\tscene = computed(() => this.options().scene ?? this.store.scene());\n\tcamera = computed(() => this.options().camera ?? this.store.camera());\n\n\tprivate groupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate priority = computed(() => {\n\t\tconst enabled = this.enabled();\n\t\tif (!enabled) return 0;\n\t\treturn this.renderPriority();\n\t});\n\n\tprivate composerData = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tenableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.store.gl(),\n\t\t\tthis.scene(),\n\t\t\tthis.camera(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.enableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// initialize composer\n\t\tconst composer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// add render pass\n\t\tcomposer.addPass(new RenderPass(scene, camera));\n\n\t\t// create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (enableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\tcomposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\tcomposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { composer, normalPass, downSamplingPass };\n\t});\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\t// NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n\t\teffect((onCleanup) => {\n\t\t\tconst gl = this.store.gl();\n\t\t\tconst currentTonemapping = gl.toneMapping;\n\t\t\tgl.toneMapping = THREE.NoToneMapping;\n\t\t\tonCleanup(() => {\n\t\t\t\tgl.toneMapping = currentTonemapping;\n\t\t\t});\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst [{ composer }, width, height] = [this.composerData(), this.store.size.width(), this.store.size.height()];\n\t\t\tif (composer) {\n\t\t\t\tcomposer.setSize(width, height);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [group, { composer, normalPass, downSamplingPass }, camera] = [\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.composerData(),\n\t\t\t\tthis.camera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (composer) {\n\t\t\t\tconst instanceState = getInstanceState(group);\n\t\t\t\tif (!instanceState) return;\n\n\t\t\t\tconst children = instanceState.nonObjects();\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [child];\n\n\t\t\t\t\t\tif (!isConvolution(child)) {\n\t\t\t\t\t\t\tlet next: unknown = null;\n\t\t\t\t\t\t\twhile ((next = children[i + 1]) instanceof Effect) {\n\t\t\t\t\t\t\t\tif (isConvolution(next)) break;\n\t\t\t\t\t\t\t\teffects.push(next as Effect);\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) {\n\t\t\t\t\tcomposer.addPass(pass);\n\t\t\t\t}\n\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\tonCleanup(() => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t});\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst priority = this.priority();\n\n\t\t\tconst sub = injectBeforeRender(\n\t\t\t\t({ delta }) => {\n\t\t\t\t\tconst [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [\n\t\t\t\t\t\tthis.composerData(),\n\t\t\t\t\t\tthis.options(),\n\t\t\t\t\t\tthis.store.snapshot.gl,\n\t\t\t\t\t];\n\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ injector: this.injector, priority },\n\t\t\t);\n\n\t\t\tonCleanup(() => sub());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport * as THREE from 'three';\n\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\n\ninterface ASCIIEffectOptions {\n\tfont?: string;\n\tcharacters?: string;\n\tfontSize?: number;\n\tcellSize?: number;\n\tcolor?: string;\n\tinvert?: boolean;\n}\n\nexport class ASCIIEffect extends Effect {\n\tconstructor({\n\t\tfont = 'arial',\n\t\tcharacters = ` .:,'-^=*+?!|0#X%WM@`,\n\t\tfontSize = 54,\n\t\tcellSize = 16,\n\t\tcolor = '#ffffff',\n\t\tinvert = false,\n\t}: ASCIIEffectOptions = {}) {\n\t\tconst uniforms = new Map<string, THREE.Uniform>([\n\t\t\t['uCharacters', new THREE.Uniform(new THREE.Texture())],\n\t\t\t['uCellSize', new THREE.Uniform(cellSize)],\n\t\t\t['uCharactersCount', new THREE.Uniform(characters.length)],\n\t\t\t['uColor', new THREE.Uniform(new THREE.Color(color))],\n\t\t\t['uInvert', new THREE.Uniform(invert)],\n\t\t]);\n\n\t\tsuper('ASCIIEffect', fragment, { uniforms });\n\n\t\tconst charactersTextureUniform = this.uniforms.get('uCharacters');\n\n\t\tif (charactersTextureUniform) {\n\t\t\tcharactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n\t\t}\n\t}\n\n\t/** Draws the characters on a Canvas and returns a texture */\n\tpublic createCharactersTexture(characters: string, font: string, fontSize: number): THREE.Texture {\n\t\tconst canvas = document.createElement('canvas');\n\t\tconst SIZE = 1024;\n\t\tconst MAX_PER_ROW = 16;\n\t\tconst CELL = SIZE / MAX_PER_ROW;\n\n\t\tcanvas.width = canvas.height = SIZE;\n\t\tconst texture = new THREE.CanvasTexture(\n\t\t\tcanvas,\n\t\t\tundefined,\n\t\t\tTHREE.RepeatWrapping,\n\t\t\tTHREE.RepeatWrapping,\n\t\t\tTHREE.NearestFilter,\n\t\t\tTHREE.NearestFilter,\n\t\t);\n\t\tconst context = canvas.getContext('2d');\n\n\t\tif (!context) {\n\t\t\tthrow new Error('Context not available');\n\t\t}\n\n\t\tcontext.clearRect(0, 0, SIZE, SIZE);\n\t\tcontext.font = `${fontSize}px ${font}`;\n\t\tcontext.textAlign = 'center';\n\t\tcontext.textBaseline = 'middle';\n\t\tcontext.fillStyle = '#fff';\n\n\t\tfor (let i = 0; i < characters.length; i++) {\n\t\t\tconst char = characters[i];\n\t\t\tconst x = i % MAX_PER_ROW;\n\t\t\tconst y = Math.floor(i / MAX_PER_ROW);\n\t\t\tcontext.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\t\treturn texture;\n\t}\n}\n\nconst defaultOptions: ASCIIEffectOptions = {\n\tfont: 'arial',\n\tcharacters: ` .:,'-^=*+?!|0#X%WM@`,\n\tfontSize: 54,\n\tcellSize: 16,\n\tcolor: '#ffffff',\n\tinvert: false,\n};\n\n@Component({\n\tselector: 'ngtp-ascii',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpASCII {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprotected effect = computed(() => new ASCIIEffect(this.options()));\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\n@Component({\n\tselector: 'ngtp-bloom',\n\ttemplate: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpBloom {\n\toptions = input({} as Omit<BloomEffectOptions, 'blendFunction'>);\n\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ BloomEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type BrightnessEffectOptions = NonNullable<ConstructorParameters<typeof BrightnessContrastEffect>[0]>;\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpBrightnessContrast {\n\toptions = input({} as Omit<BrightnessEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ BrightnessContrastEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ChromaticAberrationEffectOptions = Partial<\n\tNonNullable<ConstructorParameters<typeof ChromaticAberrationEffect>[0]>\n>;\n\n@Component({\n\tselector: 'ngtp-chromatic-aberration',\n\ttemplate: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpChromaticAberration {\n\toptions = input({} as Omit<ChromaticAberrationEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ChromaticAberrationEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\n\n@Component({\n\tselector: 'ngtp-color-average',\n\ttemplate: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpColorAverage {\n\toptions = input(\n\t\t{ blendFunction: BlendFunction.NORMAL },\n\t\t{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) },\n\t);\n\n\tconstructor() {\n\t\textend({ ColorAverageEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ColorDepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ColorDepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\ttemplate: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpColorDepth {\n\toptions = input({} as Omit<ColorDepthEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ColorDepthEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type DepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-depth',\n\ttemplate: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpDepth {\n\toptions = input({} as Omit<DepthEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ DepthEffect });\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtAnyRecord, NgtArgs, NgtVector3 } from 'angular-three';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype DOFOptions = NonNullable<ConstructorParameters<typeof DepthOfFieldEffect>[1]> &\n\tPartial<{ target: NgtVector3; depthTexture: { texture: THREE.Texture; packing: THREE.DepthPackingStrategies } }>;\n\n@Component({\n\tselector: 'ngtp-depth-of-field',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpDepthOfField {\n\toptions = input({} as DOFOptions);\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\tprotected effect = computed(() => {\n\t\tconst [camera, options] = [this.effectComposer.camera(), this.options()];\n\n\t\tconst autoFocus = options.target != null;\n\n\t\tconst effect = new DepthOfFieldEffect(camera, options);\n\n\t\t// Creating a target enables autofocus, NGT will set via props\n\t\tif (autoFocus) effect.target = new THREE.Vector3();\n\t\t// Depth texture for depth picking with optional packing strategy\n\t\tif (options.depthTexture) {\n\t\t\teffect.setDepthTexture(\n\t\t\t\toptions.depthTexture.texture,\n\t\t\t\toptions.depthTexture.packing as THREE.DepthPackingStrategies,\n\t\t\t);\n\t\t}\n\t\t// Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n\t\tconst maskPass = (effect as NgtAnyRecord)['maskPass'];\n\t\tmaskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n\n\t\treturn effect;\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst depthOfFieldEffect = this.effect();\n\t\t\tonCleanup(() => depthOfFieldEffect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type DotScreenEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DotScreenEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\ttemplate: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpDotScreen {\n\toptions = input({} as Omit<DotScreenEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ DotScreenEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type FXAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof FXAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-fxaa',\n\ttemplate: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpFXAA {\n\toptions = input({} as Omit<FXAAEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ FXAAEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, NgtVector2, injectStore, pick, vector2 } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\n\nexport type GlitchOptions = NonNullable<ConstructorParameters<typeof GlitchEffect>[0]> &\n\tPartial<{\n\t\tmode: GlitchMode;\n\t\tactive: boolean;\n\t\tdelay: NgtVector2;\n\t\tduration: NgtVector2;\n\t\tchromaticAberrationOffset: NgtVector2;\n\t\tstrength: NgtVector2;\n\t}>;\n\n@Component({\n\tselector: 'ngtp-glitch',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpGlitch {\n\toptions = input({ active: true } as GlitchOptions, { transform: mergeInputs({ active: true }) });\n\n\tprivate active = pick(this.options, 'active');\n\tprivate mode = pick(this.options, 'mode');\n\tprivate ratio = pick(this.options, 'ratio');\n\tprivate dtSize = pick(this.options, 'dtSize');\n\tprivate columns = pick(this.options, 'columns');\n\tprivate blendFunction = pick(this.options, 'blendFunction');\n\tprivate perturbationMap = pick(this.options, 'perturbationMap');\n\n\tprivate delay = vector2(this.options, 'delay');\n\tprivate duration = vector2(this.options, 'duration');\n\tprivate chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n\tprivate strength = vector2(this.options, 'strength');\n\n\tprivate store = injectStore();\n\n\teffect = computed(\n\t\t() =>\n\t\t\tnew GlitchEffect({\n\t\t\t\tratio: this.ratio(),\n\t\t\t\tdtSize: this.dtSize(),\n\t\t\t\tcolumns: this.columns(),\n\t\t\t\tblendFunction: this.blendFunction(),\n\t\t\t\tperturbationMap: this.perturbationMap(),\n\t\t\t\tdelay: this.delay(),\n\t\t\t\tduration: this.duration(),\n\t\t\t\tchromaticAberrationOffset: this.chromaticAberrationOffset(),\n\t\t\t\tstrength: this.strength(),\n\t\t\t}),\n\t);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [glitchEffect, invalidate, mode, active] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.store.invalidate(),\n\t\t\t\tthis.mode(),\n\t\t\t\tthis.active(),\n\t\t\t];\n\t\t\tglitchEffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n\t\t\tinvalidate();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, omit, pick, resolveRef } from 'angular-three';\nimport { GodRaysEffect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype GodRaysOptions = ConstructorParameters<typeof GodRaysEffect>[2] & {\n\tsun:\n\t\t| THREE.Mesh\n\t\t| THREE.Points\n\t\t| ElementRef<THREE.Mesh | THREE.Points>\n\t\t| (() => THREE.Mesh | THREE.Points | ElementRef<THREE.Mesh | THREE.Points> | undefined);\n};\n\n@Component({\n\tselector: 'ngtp-god-rays',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGodRays {\n\toptions = input({} as GodRaysOptions);\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\tprivate effectOptions = omit(this.options, ['sun']);\n\tprivate sun = pick(this.options, 'sun');\n\n\tprivate sunElement = computed(() => {\n\t\tconst sun = this.sun();\n\t\tif (typeof sun === 'function') return resolveRef(sun());\n\t\treturn resolveRef(sun);\n\t});\n\n\tprotected effect = computed(() => {\n\t\tconst [camera, sunElement, options] = [this.effectComposer.camera(), this.sunElement(), this.effectOptions()];\n\t\treturn new GodRaysEffect(camera, sunElement, options);\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst sunElement = this.sunElement();\n\t\t\tif (!sunElement) return;\n\n\t\t\tconst godRaysEffect = this.effect();\n\t\t\tgodRaysEffect.lightSource = sunElement;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, omit, pick } from 'angular-three';\nimport { GridEffect } from 'postprocessing';\n\ntype GridOptions = NonNullable<ConstructorParameters<typeof GridEffect>[0]> &\n\tPartial<{ size: { width: number; height: number } }>;\n\n@Component({\n\tselector: 'ngtp-grid',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGrid {\n\toptions = input({} as GridOptions);\n\tprivate effectOptions = omit(this.options, ['size']);\n\tprivate size = pick(this.options, 'size');\n\n\tprotected effect = computed(() => new GridEffect(this.effectOptions()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [size, effect] = [this.size(), this.effect()];\n\t\t\tif (size) {\n\t\t\t\teffect.setSize(size.width, size.height);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type HueSaturationEffectOptions = Partial<NonNullable<ConstructorParameters<typeof HueSaturationEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpHueSaturation {\n\toptions = input({} as Omit<HueSaturationEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ HueSaturationEffect });\n\t}\n}\n","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\n\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, NgtVector3, injectBeforeRender, injectStore, is, omit, vector3 } from 'angular-three';\nimport { easing } from 'maath';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nconst LensFlareShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\n\nexport class LensFlareEffect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tenabled = true,\n\t\tglareSize = 0.2,\n\t\tlensPosition = [0.01, 0.01],\n\t\tiResolution = [0, 0],\n\t\tstarPoints = 6,\n\t\tflareSize = 0.01,\n\t\tflareSpeed = 0.01,\n\t\tflareShape = 0.01,\n\t\tanimated = true,\n\t\tanamorphic = false,\n\t\tcolorGain = new THREE.Color(20, 20, 20),\n\t\tlensDirtTexture = null as THREE.Texture | null,\n\t\thaloScale = 0.5,\n\t\tsecondaryGhosts = true,\n\t\taditionalStreaks = true,\n\t\tghostScale = 0.0,\n\t\topacity = 1.0,\n\t\tstarBurst = false,\n\t} = {}) {\n\t\tsuper('LensFlareEffect', LensFlareShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tuniforms: new Map<string, THREE.Uniform>([\n\t\t\t\t['enabled', new THREE.Uniform(enabled)],\n\t\t\t\t['glareSize', new THREE.Uniform(glareSize)],\n\t\t\t\t['lensPosition', new THREE.Uniform(lensPosition)],\n\t\t\t\t['iTime', new THREE.Uniform(0)],\n\t\t\t\t['iResolution', new THREE.Uniform(iResolution)],\n\t\t\t\t['starPoints', new THREE.Uniform(starPoints)],\n\t\t\t\t['flareSize', new THREE.Uniform(flareSize)],\n\t\t\t\t['flareSpeed', new THREE.Uniform(flareSpeed)],\n\t\t\t\t['flareShape', new THREE.Uniform(flareShape)],\n\t\t\t\t['animated', new THREE.Uniform(animated)],\n\t\t\t\t['anamorphic', new THREE.Uniform(anamorphic)],\n\t\t\t\t['colorGain', new THREE.Uniform(colorGain)],\n\t\t\t\t['lensDirtTexture', new THREE.Uniform(lensDirtTexture)],\n\t\t\t\t['haloScale', new THREE.Uniform(haloScale)],\n\t\t\t\t['secondaryGhosts', new THREE.Uniform(secondaryGhosts)],\n\t\t\t\t['aditionalStreaks', new THREE.Uniform(aditionalStreaks)],\n\t\t\t\t['ghostScale', new THREE.Uniform(ghostScale)],\n\t\t\t\t['starBurst', new THREE.Uniform(starBurst)],\n\t\t\t\t['opacity', new THREE.Uniform(opacity)],\n\t\t\t]),\n\t\t});\n\t}\n\n\toverride update(_renderer: THREE.WebGLRenderer, _inputBuffer: THREE.WebGLRenderTarget, deltaTime: number) {\n\t\tconst iTime = this.uniforms.get('iTime');\n\t\tif (iTime) {\n\t\t\tiTime.value += deltaTime;\n\t\t}\n\t}\n}\n\nexport type LensFlareOptions = ConstructorParameters<typeof LensFlareEffect>[0] & {\n\tposition: NgtVector3;\n\tfollowMouse: boolean;\n\tsmoothTime: number;\n};\n\nconst defaultOptions: LensFlareOptions = {\n\tposition: new THREE.Vector3(-25, 6, -60),\n\tfollowMouse: false,\n\tsmoothTime: 0.7,\n};\n\n@Component({\n\tselector: 'ngtp-lens-flare',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLensFlare {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate store = injectStore();\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\tprivate effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);\n\tprivate position = vector3(this.options, 'position');\n\n\tprivate projectedPosition = new THREE.Vector3();\n\tprivate mouse2d = new THREE.Vector2();\n\n\tprotected effect = computed(() => new LensFlareEffect(this.effectOptions()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [lensFlareEffect, width, height] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.store.viewport.width(),\n\t\t\t\tthis.store.viewport.height(),\n\t\t\t];\n\t\t\tconst iResolution = lensFlareEffect.uniforms.get('iResolution');\n\t\t\tif (iResolution) {\n\t\t\t\tiResolution.value.x = width;\n\t\t\t\tiResolution.value.y = height;\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\n\t\tinjectBeforeRender(({ delta }) => {\n\t\t\tconst [effect] = [this.effect()];\n\t\t\tif (!effect) return;\n\n\t\t\tconst [{ followMouse, smoothTime }, position, pointer, camera, scene, raycaster] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.position(),\n\t\t\t\tthis.store.snapshot.pointer,\n\t\t\t\tthis.effectComposer.camera(),\n\t\t\t\tthis.effectComposer.scene(),\n\t\t\t\tthis.store.snapshot.raycaster,\n\t\t\t];\n\n\t\t\tconst uLensPosition = effect.uniforms.get('lensPosition');\n\t\t\tconst uOpacity = effect.uniforms.get('opacity');\n\t\t\tif (!uLensPosition || !uOpacity) return;\n\n\t\t\tlet target = 1;\n\n\t\t\tif (followMouse) {\n\t\t\t\tuLensPosition.value.x = pointer.x;\n\t\t\t\tuLensPosition.value.y = pointer.y;\n\t\t\t\ttarget = 0;\n\t\t\t} else {\n\t\t\t\tthis.projectedPosition.copy(position).project(camera);\n\t\t\t\tif (this.projectedPosition.z > 1) return;\n\n\t\t\t\tuLensPosition.value.x = this.projectedPosition.x;\n\t\t\t\tuLensPosition.value.y = this.projectedPosition.y;\n\n\t\t\t\tthis.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n\t\t\t\traycaster.setFromCamera(this.mouse2d, camera);\n\t\t\t\tconst intersects = raycaster.intersectObjects(scene.children, true);\n\t\t\t\tconst { object } = intersects[0] ?? {};\n\t\t\t\tif (object) {\n\t\t\t\t\tif (object.userData?.['lensflare'] === 'no-occlusion') {\n\t\t\t\t\t\ttarget = 0;\n\t\t\t\t\t} else if (is.three<THREE.Mesh<THREE.BufferGeometry, THREE.ShaderMaterial>>(object, 'isMesh')) {\n\t\t\t\t\t\tif (object.material.uniforms?.['_transmission']?.value > 0.2) {\n\t\t\t\t\t\t\t//Check for MeshTransmissionMaterial\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t'_transmission' in object.material &&\n\t\t\t\t\t\t\ttypeof object.material._transmission === 'number' &&\n\t\t\t\t\t\t\tobject.material._transmission > 0.2\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t//Check for MeshPhysicalMaterial with transmission setting\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (object.material.transparent) {\n\t\t\t\t\t\t\t// Check for OtherMaterials with transparent parameter\n\t\t\t\t\t\t\ttarget = object.material.opacity;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teasing.damp(uOpacity, 'value', target, smoothTime, delta);\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\nimport * as THREE from 'three';\n\nexport interface LUTOptions {\n\tlut: THREE.Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLUT {\n\toptions = input({} as LUTOptions);\n\n\tprivate lut = pick(this.options, 'lut');\n\tprivate tetrahedralInterpolation = pick(this.options, 'tetrahedralInterpolation');\n\n\tprivate store = injectStore();\n\n\tprotected effect = computed(() => {\n\t\tconst { lut, ...options } = this.options();\n\t\treturn new LUT3DEffect(lut, options);\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [effect, lut, tetrahedralInterpolation, invalidate] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.lut(),\n\t\t\t\tthis.tetrahedralInterpolation(),\n\t\t\t\tthis.store.invalidate(),\n\t\t\t];\n\n\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\tif (lut) effect.lut = lut;\n\t\t\tinvalidate();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nexport type NoiseEffectOptions = Partial<NonNullable<ConstructorParameters<typeof NoiseEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-noise',\n\ttemplate: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n})\nexport class NgtpNoise {\n\toptions = input({} as Omit<NoiseEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ NoiseEffect });\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n} from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelection, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nexport type NgtpOutlineOptions = ConstructorParameters<typeof OutlineEffect>[2] & {\n\tselection?: Array<THREE.Object3D | ElementRef<THREE.Object3D>>;\n\tselectionLayer: number;\n};\n\nconst defaultOptions: NgtpOutlineOptions = {\n\tselectionLayer: 10,\n};\n\n@Component({\n\tselector: 'ngtp-outline',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtpOutline {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate ngtSelection = inject(NgtSelection, { optional: true });\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\tprivate store = injectStore();\n\n\tprivate selection = pick(this.options, 'selection');\n\tprivate selectionLayer = pick(this.options, 'selectionLayer');\n\n\tprivate blendFunction = pick(this.options, 'blendFunction');\n\tprivate patternTexture = pick(this.options, 'patternTexture');\n\tprivate edgeStrength = pick(this.options, 'edgeStrength');\n\tprivate pulseSpeed = pick(this.options, 'pulseSpeed');\n\tprivate visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n\tprivate hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n\tprivate width = pick(this.options, 'width');\n\tprivate height = pick(this.options, 'height');\n\tprivate kernelSize = pick(this.options, 'kernelSize');\n\tprivate blur = pick(this.options, 'blur');\n\tprivate xRay = pick(this.options, 'xRay');\n\tprivate restOptions = omit(this.options, [\n\t\t'blendFunction',\n\t\t'patternTexture',\n\t\t'edgeStrength',\n\t\t'pulseSpeed',\n\t\t'visibleEdgeColor',\n\t\t'hiddenEdgeColor',\n\t\t'width',\n\t\t'height',\n\t\t'kernelSize',\n\t\t'blur',\n\t\t'xRay',\n\t]);\n\n\teffect = computed(() => {\n\t\tconst [\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\trestOptions,\n\t\t] = [\n\t\t\tthis.effectComposer.scene(),\n\t\t\tthis.effectComposer.camera(),\n\t\t\tthis.blendFunction(),\n\t\t\tthis.patternTexture(),\n\t\t\tthis.edgeStrength(),\n\t\t\tthis.pulseSpeed(),\n\t\t\tthis.visibleEdgeColor(),\n\t\t\tthis.hiddenEdgeColor(),\n\t\t\tthis.width(),\n\t\t\tthis.height(),\n\t\t\tthis.kernelSize(),\n\t\t\tthis.blur(),\n\t\t\tthis.xRay(),\n\t\t\tuntracked(this.restOptions),\n\t\t];\n\n\t\treturn new OutlineEffect(scene, camera, {\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\t...restOptions,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst [effect, invalidate, selectionLayer] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n\t\t\teffect.selectionLayer = selectionLayer;\n\t\t\tinvalidate();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\t// NOTE: we run this effect if declarative NgtSelection is not enabled\n\t\t\tif (!this.ngtSelection) {\n\t\t\t\t// NOTE: if NgtSelection is not used and selection is not provided, we throw\n\t\t\t\tif (this.selection() === undefined) {\n\t\t\t\t\tthrow new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n\t\t\t\t}\n\t\t\t\tconst cleanup = this.handleSelectionChangeEffect(this.selection, this.effect, this.store.invalidate);\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tcleanup?.();\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// NOTE: we run this effect if declarative NgtSelection is enabled\n\t\t\tconst selectionEnabled = this.ngtSelection.enabled();\n\t\t\tif (!selectionEnabled) return;\n\t\t\tconst cleanup = this.handleSelectionChangeEffect(this.ngtSelection.selected, this.effect, this.store.invalidate);\n\t\t\tonCleanup(() => {\n\t\t\t\tcleanup?.();\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate handleSelectionChangeEffect(\n\t\tselected: () => Array<THREE.Object3D | ElementRef<THREE.Object3D>> | undefined,\n\t\t_effect: () => OutlineEffect,\n\t\t_invalidate: () => () => void,\n\t) {\n\t\tconst selection = selected();\n\t\tif (!selection || selection.length === 0) return;\n\n\t\tconst [effect, invalidate] = [_effect(), _invalidate()];\n\n\t\tconst objects: THREE.Object3D[] = [];\n\t\tfor (const el of selection) {\n\t\t\tconst obj = resolveRef(el);\n\t\t\tif (!obj) continue;\n\t\t\tobjects.push(obj);\n\t\t}\n\n\t\tif (objects.length === 0) return;\n\n\t\teffect.selection.set(objects);\n\t\tinvalidate();\n\n\t\treturn () => {\n\t\t\teffect.selection.clear();\n\t\t\tinvalidate();\n\t\t};\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\n\nexport interface PixelationOptions {\n\tgranularity: number;\n}\n\n@Component({\n\tselector: 'ngtp-pixelation',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\timports: [NgtArgs],\n})\nexport class NgtpPixelation {\n\toptions = input({ granularity: 5 } as PixelationOptions, { transform: mergeInputs({ granularity: 5 }) });\n\tprivate granularity = pick(this.options, 'granularity');\n\n\tprotected effect = computed(() => new PixelationEffect(this.granularity()));\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nexport type ScanlineEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ScanlineEffect>[0]>>;\n\nconst defaultOptions: Omit<ScanlineEffectOptions, 'blendFunction'> = {\n\tdensity: 1.25,\n};\n\n@Component({\n\tselector: 'ngtp-scanline',\n\ttemplate: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n})\nexport class NgtpScanline {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ScanlineEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type SepiaEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SepiaEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-sepia',\n\ttemplate: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpSepia {\n\toptions = input({} as Omit<SepiaEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ SepiaEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ShockWaveEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ShockWaveEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\ttemplate: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpShockWave {\n\toptions = input({} as Omit<ShockWaveEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ShockWaveEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type SMAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SMAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-smaa',\n\ttemplate: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpSMAA {\n\toptions = input({} as Omit<SMAAEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ SMAAEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nexport type TiltShiftEffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShiftEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpTiltShift {\n\toptions = input({} as Omit<TiltShiftEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ TiltShiftEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nconst TiltShiftShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\n\nexport class TiltShift2Effect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tblur = 0.15, // [0, 1], can go beyond 1 for extra\n\t\ttaper = 0.5, // [0, 1], can go beyond 1 for extra\n\t\tstart = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n\t\tend = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n\t\tsamples = 10.0, // number of blur samples\n\t\tdirection = [1, 1], // direction of blur\n\t} = {}) {\n\t\tsuper('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, THREE.Uniform<number | number[]>>([\n\t\t\t\t['blur', new THREE.Uniform(blur)],\n\t\t\t\t['taper', new THREE.Uniform(taper)],\n\t\t\t\t['start', new THREE.Uniform(start)],\n\t\t\t\t['end', new THREE.Uniform(end)],\n\t\t\t\t['samples', new THREE.Uniform(samples)],\n\t\t\t\t['direction', new THREE.Uniform(direction)],\n\t\t\t]),\n\t\t});\n\t}\n}\n\nexport type TiltShift2EffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShift2Effect>[0]>>;\n\nextend({ TiltShift2Effect });\n\n@Component({\n\tselector: 'ngtp-tilt-shift2',\n\ttemplate: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpTiltShift2 {\n\toptions = input({} as Omit<TiltShift2EffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ToneMappingEffectOptions = NonNullable<ConstructorParameters<typeof ToneMappingEffect>[0]>;\n\n@Component({\n\tselector: 'ngtp-tone-mapping',\n\ttemplate: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpToneMapping {\n\toptions = input({} as Omit<ToneMappingEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ToneMappingEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type VignetteEffectOptions = Partial<NonNullable<ConstructorParameters<typeof VignetteEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-vignette',\n\ttemplate: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpVignette {\n\toptions = input({} as Omit<VignetteEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ VignetteEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nconst WaterShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\n\nexport class WaterEffect extends Effect {\n\tconstructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n\t\tsuper('WaterEffect', WaterShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, THREE.Uniform<number | number[]>>([['factor', new THREE.Uniform(factor)]]),\n\t\t});\n\t}\n}\n\nexport type WaterEffectOptions = Partial<NonNullable<ConstructorParameters<typeof WaterEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-water',\n\ttemplate: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpWater {\n\toptions = input({} as Omit<WaterEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ WaterEffect });\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/ascii.ts","../../../../libs/postprocessing/src/lib/effects/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/chromatic-abberation.ts","../../../../libs/postprocessing/src/lib/effects/color-average.ts","../../../../libs/postprocessing/src/lib/effects/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth.ts","../../../../libs/postprocessing/src/lib/effects/depth-of-field.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/fxaa.ts","../../../../libs/postprocessing/src/lib/effects/glitch.ts","../../../../libs/postprocessing/src/lib/effects/god-rays.ts","../../../../libs/postprocessing/src/lib/effects/grid.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lens-flare.ts","../../../../libs/postprocessing/src/lib/effects/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise.ts","../../../../libs/postprocessing/src/lib/effects/outline.ts","../../../../libs/postprocessing/src/lib/effects/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift-2.ts","../../../../libs/postprocessing/src/lib/effects/tone-mapping.ts","../../../../libs/postprocessing/src/lib/effects/vignette.ts","../../../../libs/postprocessing/src/lib/effects/water.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport { BlendFunction } from 'postprocessing';\n\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken<{\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n}>('Default Effect options');\n\n@Component({\n\tselector: 'ngtp-effect-blend-mode',\n\ttemplate: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectBlendMode {\n\teffect = inject(NgtpEffect, { optional: true });\n}\n\n@Directive()\nexport class NgtpEffect {\n\tdefaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n\n\tblendFunction = input(this.defaultEffectOptions?.blendFunction);\n\topacity = input(this.defaultEffectOptions?.opacity);\n\n\tprivate store = injectStore();\n\tcamera = this.store.camera;\n\tinvalidate = this.store.invalidate;\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInjector,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { extend, getInstanceState, injectBeforeRender, injectStore, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectAttribute,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nexport interface NgtpEffectComposerOptions {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\t/** Only used for SSGI currently, leave it disabled for everything else unless it's needed */\n\tenableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: THREE.TextureDataType;\n\trenderPriority: number;\n\tcamera?: THREE.Camera;\n\tscene?: THREE.Scene;\n}\n\nconst defaultOptions: NgtpEffectComposerOptions = {\n\tenabled: true,\n\trenderPriority: 1,\n\tautoClear: true,\n\tmultisampling: 8,\n\tframeBufferType: THREE.HalfFloatType,\n};\n\nfunction isConvolution(effect: Effect) {\n\treturn (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\ttemplate: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectComposer {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate injector = inject(Injector);\n\tprivate store = injectStore();\n\n\tprivate depthBuffer = pick(this.options, 'depthBuffer');\n\tprivate stencilBuffer = pick(this.options, 'stencilBuffer');\n\tprivate multisampling = pick(this.options, 'multisampling');\n\tprivate frameBufferType = pick(this.options, 'frameBufferType');\n\tprivate enableNormalPass = pick(this.options, 'enableNormalPass');\n\tprivate resolutionScale = pick(this.options, 'resolutionScale');\n\tprivate enabled = pick(this.options, 'enabled');\n\tprivate renderPriority = pick(this.options, 'renderPriority');\n\n\tscene = computed(() => this.options().scene ?? this.store.scene());\n\tcamera = computed(() => this.options().camera ?? this.store.camera());\n\n\tprivate groupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate priority = computed(() => {\n\t\tconst enabled = this.enabled();\n\t\tif (!enabled) return 0;\n\t\treturn this.renderPriority();\n\t});\n\n\tprivate composerData = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tenableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.store.gl(),\n\t\t\tthis.scene(),\n\t\t\tthis.camera(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.enableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// initialize composer\n\t\tconst composer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// add render pass\n\t\tcomposer.addPass(new RenderPass(scene, camera));\n\n\t\t// create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (enableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\tcomposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\tcomposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { composer, normalPass, downSamplingPass };\n\t});\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\t// NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n\t\teffect((onCleanup) => {\n\t\t\tconst gl = this.store.gl();\n\t\t\tconst currentTonemapping = gl.toneMapping;\n\t\t\tgl.toneMapping = THREE.NoToneMapping;\n\t\t\tonCleanup(() => {\n\t\t\t\tgl.toneMapping = currentTonemapping;\n\t\t\t});\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst [{ composer }, width, height] = [this.composerData(), this.store.size.width(), this.store.size.height()];\n\t\t\tif (composer) {\n\t\t\t\tcomposer.setSize(width, height);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [group, { composer, normalPass, downSamplingPass }, camera] = [\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.composerData(),\n\t\t\t\tthis.camera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (composer) {\n\t\t\t\tconst instanceState = getInstanceState(group);\n\t\t\t\tif (!instanceState) return;\n\n\t\t\t\tconst children = instanceState.nonObjects();\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [child];\n\n\t\t\t\t\t\tif (!isConvolution(child)) {\n\t\t\t\t\t\t\tlet next: unknown = null;\n\t\t\t\t\t\t\twhile ((next = children[i + 1]) instanceof Effect) {\n\t\t\t\t\t\t\t\tif (isConvolution(next)) break;\n\t\t\t\t\t\t\t\teffects.push(next as Effect);\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) {\n\t\t\t\t\tcomposer.addPass(pass);\n\t\t\t\t}\n\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\tonCleanup(() => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t});\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst priority = this.priority();\n\n\t\t\tconst sub = injectBeforeRender(\n\t\t\t\t({ delta }) => {\n\t\t\t\t\tconst [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [\n\t\t\t\t\t\tthis.composerData(),\n\t\t\t\t\t\tthis.options(),\n\t\t\t\t\t\tthis.store.snapshot.gl,\n\t\t\t\t\t];\n\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ injector: this.injector, priority },\n\t\t\t);\n\n\t\t\tonCleanup(() => sub());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport * as THREE from 'three';\n\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\n\ninterface ASCIIEffectOptions {\n\tfont?: string;\n\tcharacters?: string;\n\tfontSize?: number;\n\tcellSize?: number;\n\tcolor?: string;\n\tinvert?: boolean;\n}\n\nexport class ASCIIEffect extends Effect {\n\tconstructor({\n\t\tfont = 'arial',\n\t\tcharacters = ` .:,'-^=*+?!|0#X%WM@`,\n\t\tfontSize = 54,\n\t\tcellSize = 16,\n\t\tcolor = '#ffffff',\n\t\tinvert = false,\n\t}: ASCIIEffectOptions = {}) {\n\t\tconst uniforms = new Map<string, THREE.Uniform>([\n\t\t\t['uCharacters', new THREE.Uniform(new THREE.Texture())],\n\t\t\t['uCellSize', new THREE.Uniform(cellSize)],\n\t\t\t['uCharactersCount', new THREE.Uniform(characters.length)],\n\t\t\t['uColor', new THREE.Uniform(new THREE.Color(color))],\n\t\t\t['uInvert', new THREE.Uniform(invert)],\n\t\t]);\n\n\t\tsuper('ASCIIEffect', fragment, { uniforms });\n\n\t\tconst charactersTextureUniform = this.uniforms.get('uCharacters');\n\n\t\tif (charactersTextureUniform) {\n\t\t\tcharactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n\t\t}\n\t}\n\n\t/** Draws the characters on a Canvas and returns a texture */\n\tpublic createCharactersTexture(characters: string, font: string, fontSize: number): THREE.Texture {\n\t\tconst canvas = document.createElement('canvas');\n\t\tconst SIZE = 1024;\n\t\tconst MAX_PER_ROW = 16;\n\t\tconst CELL = SIZE / MAX_PER_ROW;\n\n\t\tcanvas.width = canvas.height = SIZE;\n\t\tconst texture = new THREE.CanvasTexture(\n\t\t\tcanvas,\n\t\t\tundefined,\n\t\t\tTHREE.RepeatWrapping,\n\t\t\tTHREE.RepeatWrapping,\n\t\t\tTHREE.NearestFilter,\n\t\t\tTHREE.NearestFilter,\n\t\t);\n\t\tconst context = canvas.getContext('2d');\n\n\t\tif (!context) {\n\t\t\tthrow new Error('Context not available');\n\t\t}\n\n\t\tcontext.clearRect(0, 0, SIZE, SIZE);\n\t\tcontext.font = `${fontSize}px ${font}`;\n\t\tcontext.textAlign = 'center';\n\t\tcontext.textBaseline = 'middle';\n\t\tcontext.fillStyle = '#fff';\n\n\t\tfor (let i = 0; i < characters.length; i++) {\n\t\t\tconst char = characters[i];\n\t\t\tconst x = i % MAX_PER_ROW;\n\t\t\tconst y = Math.floor(i / MAX_PER_ROW);\n\t\t\tcontext.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\t\treturn texture;\n\t}\n}\n\nconst defaultOptions: ASCIIEffectOptions = {\n\tfont: 'arial',\n\tcharacters: ` .:,'-^=*+?!|0#X%WM@`,\n\tfontSize: 54,\n\tcellSize: 16,\n\tcolor: '#ffffff',\n\tinvert: false,\n};\n\n@Component({\n\tselector: 'ngtp-ascii',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpASCII {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprotected effect = computed(() => new ASCIIEffect(this.options()));\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\n@Component({\n\tselector: 'ngtp-bloom',\n\ttemplate: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpBloom {\n\toptions = input({} as Omit<BloomEffectOptions, 'blendFunction'>);\n\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ BloomEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type BrightnessEffectOptions = NonNullable<ConstructorParameters<typeof BrightnessContrastEffect>[0]>;\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpBrightnessContrast {\n\toptions = input({} as Omit<BrightnessEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ BrightnessContrastEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ChromaticAberrationEffectOptions = Partial<\n\tNonNullable<ConstructorParameters<typeof ChromaticAberrationEffect>[0]>\n>;\n\n@Component({\n\tselector: 'ngtp-chromatic-aberration',\n\ttemplate: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpChromaticAberration {\n\toptions = input({} as Omit<ChromaticAberrationEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ChromaticAberrationEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\n\n@Component({\n\tselector: 'ngtp-color-average',\n\ttemplate: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpColorAverage {\n\toptions = input(\n\t\t{ blendFunction: BlendFunction.NORMAL },\n\t\t{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) },\n\t);\n\n\tconstructor() {\n\t\textend({ ColorAverageEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ColorDepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ColorDepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\ttemplate: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpColorDepth {\n\toptions = input({} as Omit<ColorDepthEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ColorDepthEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type DepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-depth',\n\ttemplate: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpDepth {\n\toptions = input({} as Omit<DepthEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ DepthEffect });\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtAnyRecord, NgtArgs, NgtVector3 } from 'angular-three';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype DOFOptions = NonNullable<ConstructorParameters<typeof DepthOfFieldEffect>[1]> &\n\tPartial<{ target: NgtVector3; depthTexture: { texture: THREE.Texture; packing: THREE.DepthPackingStrategies } }>;\n\n@Component({\n\tselector: 'ngtp-depth-of-field',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpDepthOfField {\n\toptions = input({} as DOFOptions);\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\tprotected effect = computed(() => {\n\t\tconst [camera, options] = [this.effectComposer.camera(), this.options()];\n\n\t\tconst autoFocus = options.target != null;\n\n\t\tconst effect = new DepthOfFieldEffect(camera, options);\n\n\t\t// Creating a target enables autofocus, NGT will set via props\n\t\tif (autoFocus) effect.target = new THREE.Vector3();\n\t\t// Depth texture for depth picking with optional packing strategy\n\t\tif (options.depthTexture) {\n\t\t\teffect.setDepthTexture(\n\t\t\t\toptions.depthTexture.texture,\n\t\t\t\toptions.depthTexture.packing as THREE.DepthPackingStrategies,\n\t\t\t);\n\t\t}\n\t\t// Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n\t\tconst maskPass = (effect as NgtAnyRecord)['maskPass'];\n\t\tmaskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n\n\t\treturn effect;\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst depthOfFieldEffect = this.effect();\n\t\t\tonCleanup(() => depthOfFieldEffect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type DotScreenEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DotScreenEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\ttemplate: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpDotScreen {\n\toptions = input({} as Omit<DotScreenEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ DotScreenEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type FXAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof FXAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-fxaa',\n\ttemplate: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpFXAA {\n\toptions = input({} as Omit<FXAAEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ FXAAEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, NgtVector2, injectStore, pick, vector2 } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\n\nexport type GlitchOptions = NonNullable<ConstructorParameters<typeof GlitchEffect>[0]> &\n\tPartial<{\n\t\tmode: GlitchMode;\n\t\tactive: boolean;\n\t\tdelay: NgtVector2;\n\t\tduration: NgtVector2;\n\t\tchromaticAberrationOffset: NgtVector2;\n\t\tstrength: NgtVector2;\n\t}>;\n\n@Component({\n\tselector: 'ngtp-glitch',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpGlitch {\n\toptions = input({ active: true } as GlitchOptions, { transform: mergeInputs({ active: true }) });\n\n\tprivate active = pick(this.options, 'active');\n\tprivate mode = pick(this.options, 'mode');\n\tprivate ratio = pick(this.options, 'ratio');\n\tprivate dtSize = pick(this.options, 'dtSize');\n\tprivate columns = pick(this.options, 'columns');\n\tprivate blendFunction = pick(this.options, 'blendFunction');\n\tprivate perturbationMap = pick(this.options, 'perturbationMap');\n\n\tprivate delay = vector2(this.options, 'delay');\n\tprivate duration = vector2(this.options, 'duration');\n\tprivate chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n\tprivate strength = vector2(this.options, 'strength');\n\n\tprivate store = injectStore();\n\n\teffect = computed(\n\t\t() =>\n\t\t\tnew GlitchEffect({\n\t\t\t\tratio: this.ratio(),\n\t\t\t\tdtSize: this.dtSize(),\n\t\t\t\tcolumns: this.columns(),\n\t\t\t\tblendFunction: this.blendFunction(),\n\t\t\t\tperturbationMap: this.perturbationMap(),\n\t\t\t\tdelay: this.delay(),\n\t\t\t\tduration: this.duration(),\n\t\t\t\tchromaticAberrationOffset: this.chromaticAberrationOffset(),\n\t\t\t\tstrength: this.strength(),\n\t\t\t}),\n\t);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [glitchEffect, invalidate, mode, active] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.store.invalidate(),\n\t\t\t\tthis.mode(),\n\t\t\t\tthis.active(),\n\t\t\t];\n\t\t\tglitchEffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n\t\t\tinvalidate();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, omit, pick, resolveRef } from 'angular-three';\nimport { GodRaysEffect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype GodRaysOptions = ConstructorParameters<typeof GodRaysEffect>[2] & {\n\tsun:\n\t\t| THREE.Mesh\n\t\t| THREE.Points\n\t\t| ElementRef<THREE.Mesh | THREE.Points>\n\t\t| (() => THREE.Mesh | THREE.Points | ElementRef<THREE.Mesh | THREE.Points> | undefined);\n};\n\n@Component({\n\tselector: 'ngtp-god-rays',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGodRays {\n\toptions = input({} as GodRaysOptions);\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\tprivate effectOptions = omit(this.options, ['sun']);\n\tprivate sun = pick(this.options, 'sun');\n\n\tprivate sunElement = computed(() => {\n\t\tconst sun = this.sun();\n\t\tif (typeof sun === 'function') return resolveRef(sun());\n\t\treturn resolveRef(sun);\n\t});\n\n\tprotected effect = computed(() => {\n\t\tconst [camera, sunElement, options] = [this.effectComposer.camera(), this.sunElement(), this.effectOptions()];\n\t\treturn new GodRaysEffect(camera, sunElement, options);\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst sunElement = this.sunElement();\n\t\t\tif (!sunElement) return;\n\n\t\t\tconst godRaysEffect = this.effect();\n\t\t\tgodRaysEffect.lightSource = sunElement;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, omit, pick } from 'angular-three';\nimport { GridEffect } from 'postprocessing';\n\ntype GridOptions = NonNullable<ConstructorParameters<typeof GridEffect>[0]> &\n\tPartial<{ size: { width: number; height: number } }>;\n\n@Component({\n\tselector: 'ngtp-grid',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGrid {\n\toptions = input({} as GridOptions);\n\tprivate effectOptions = omit(this.options, ['size']);\n\tprivate size = pick(this.options, 'size');\n\n\tprotected effect = computed(() => new GridEffect(this.effectOptions()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [size, effect] = [this.size(), this.effect()];\n\t\t\tif (size) {\n\t\t\t\teffect.setSize(size.width, size.height);\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type HueSaturationEffectOptions = Partial<NonNullable<ConstructorParameters<typeof HueSaturationEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpHueSaturation {\n\toptions = input({} as Omit<HueSaturationEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ HueSaturationEffect });\n\t}\n}\n","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\n\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, NgtVector3, injectBeforeRender, injectStore, is, omit, vector3 } from 'angular-three';\nimport { easing } from 'maath';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nconst LensFlareShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\n\nexport class LensFlareEffect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tenabled = true,\n\t\tglareSize = 0.2,\n\t\tlensPosition = [0.01, 0.01],\n\t\tiResolution = [0, 0],\n\t\tstarPoints = 6,\n\t\tflareSize = 0.01,\n\t\tflareSpeed = 0.01,\n\t\tflareShape = 0.01,\n\t\tanimated = true,\n\t\tanamorphic = false,\n\t\tcolorGain = new THREE.Color(20, 20, 20),\n\t\tlensDirtTexture = null as THREE.Texture | null,\n\t\thaloScale = 0.5,\n\t\tsecondaryGhosts = true,\n\t\taditionalStreaks = true,\n\t\tghostScale = 0.0,\n\t\topacity = 1.0,\n\t\tstarBurst = false,\n\t} = {}) {\n\t\tsuper('LensFlareEffect', LensFlareShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tuniforms: new Map<string, THREE.Uniform>([\n\t\t\t\t['enabled', new THREE.Uniform(enabled)],\n\t\t\t\t['glareSize', new THREE.Uniform(glareSize)],\n\t\t\t\t['lensPosition', new THREE.Uniform(lensPosition)],\n\t\t\t\t['iTime', new THREE.Uniform(0)],\n\t\t\t\t['iResolution', new THREE.Uniform(iResolution)],\n\t\t\t\t['starPoints', new THREE.Uniform(starPoints)],\n\t\t\t\t['flareSize', new THREE.Uniform(flareSize)],\n\t\t\t\t['flareSpeed', new THREE.Uniform(flareSpeed)],\n\t\t\t\t['flareShape', new THREE.Uniform(flareShape)],\n\t\t\t\t['animated', new THREE.Uniform(animated)],\n\t\t\t\t['anamorphic', new THREE.Uniform(anamorphic)],\n\t\t\t\t['colorGain', new THREE.Uniform(colorGain)],\n\t\t\t\t['lensDirtTexture', new THREE.Uniform(lensDirtTexture)],\n\t\t\t\t['haloScale', new THREE.Uniform(haloScale)],\n\t\t\t\t['secondaryGhosts', new THREE.Uniform(secondaryGhosts)],\n\t\t\t\t['aditionalStreaks', new THREE.Uniform(aditionalStreaks)],\n\t\t\t\t['ghostScale', new THREE.Uniform(ghostScale)],\n\t\t\t\t['starBurst', new THREE.Uniform(starBurst)],\n\t\t\t\t['opacity', new THREE.Uniform(opacity)],\n\t\t\t]),\n\t\t});\n\t}\n\n\toverride update(_renderer: THREE.WebGLRenderer, _inputBuffer: THREE.WebGLRenderTarget, deltaTime: number) {\n\t\tconst iTime = this.uniforms.get('iTime');\n\t\tif (iTime) {\n\t\t\tiTime.value += deltaTime;\n\t\t}\n\t}\n}\n\nexport type LensFlareOptions = ConstructorParameters<typeof LensFlareEffect>[0] & {\n\tposition: NgtVector3;\n\tfollowMouse: boolean;\n\tsmoothTime: number;\n};\n\nconst defaultOptions: LensFlareOptions = {\n\tposition: new THREE.Vector3(-25, 6, -60),\n\tfollowMouse: false,\n\tsmoothTime: 0.7,\n};\n\n@Component({\n\tselector: 'ngtp-lens-flare',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLensFlare {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate store = injectStore();\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\tprivate effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);\n\tprivate position = vector3(this.options, 'position');\n\n\tprivate projectedPosition = new THREE.Vector3();\n\tprivate mouse2d = new THREE.Vector2();\n\n\tprotected effect = computed(() => new LensFlareEffect(this.effectOptions()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [lensFlareEffect, width, height] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.store.viewport.width(),\n\t\t\t\tthis.store.viewport.height(),\n\t\t\t];\n\t\t\tconst iResolution = lensFlareEffect.uniforms.get('iResolution');\n\t\t\tif (iResolution) {\n\t\t\t\tiResolution.value.x = width;\n\t\t\t\tiResolution.value.y = height;\n\t\t\t}\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\n\t\tinjectBeforeRender(({ delta }) => {\n\t\t\tconst [effect] = [this.effect()];\n\t\t\tif (!effect) return;\n\n\t\t\tconst [{ followMouse, smoothTime }, position, pointer, camera, scene, raycaster] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.position(),\n\t\t\t\tthis.store.snapshot.pointer,\n\t\t\t\tthis.effectComposer.camera(),\n\t\t\t\tthis.effectComposer.scene(),\n\t\t\t\tthis.store.snapshot.raycaster,\n\t\t\t];\n\n\t\t\tconst uLensPosition = effect.uniforms.get('lensPosition');\n\t\t\tconst uOpacity = effect.uniforms.get('opacity');\n\t\t\tif (!uLensPosition || !uOpacity) return;\n\n\t\t\tlet target = 1;\n\n\t\t\tif (followMouse) {\n\t\t\t\tuLensPosition.value.x = pointer.x;\n\t\t\t\tuLensPosition.value.y = pointer.y;\n\t\t\t\ttarget = 0;\n\t\t\t} else {\n\t\t\t\tthis.projectedPosition.copy(position).project(camera);\n\t\t\t\tif (this.projectedPosition.z > 1) return;\n\n\t\t\t\tuLensPosition.value.x = this.projectedPosition.x;\n\t\t\t\tuLensPosition.value.y = this.projectedPosition.y;\n\n\t\t\t\tthis.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n\t\t\t\traycaster.setFromCamera(this.mouse2d, camera);\n\t\t\t\tconst intersects = raycaster.intersectObjects(scene.children, true);\n\t\t\t\tconst { object } = intersects[0] ?? {};\n\t\t\t\tif (object) {\n\t\t\t\t\tif (object.userData?.['lensflare'] === 'no-occlusion') {\n\t\t\t\t\t\ttarget = 0;\n\t\t\t\t\t} else if (is.three<THREE.Mesh<THREE.BufferGeometry, THREE.ShaderMaterial>>(object, 'isMesh')) {\n\t\t\t\t\t\tif (object.material.uniforms?.['_transmission']?.value > 0.2) {\n\t\t\t\t\t\t\t//Check for MeshTransmissionMaterial\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t'_transmission' in object.material &&\n\t\t\t\t\t\t\ttypeof object.material._transmission === 'number' &&\n\t\t\t\t\t\t\tobject.material._transmission > 0.2\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t//Check for MeshPhysicalMaterial with transmission setting\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (object.material.transparent) {\n\t\t\t\t\t\t\t// Check for OtherMaterials with transparent parameter\n\t\t\t\t\t\t\ttarget = object.material.opacity;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teasing.damp(uOpacity, 'value', target, smoothTime, delta);\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\nimport * as THREE from 'three';\n\nexport interface LUTOptions {\n\tlut: THREE.Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLUT {\n\toptions = input({} as LUTOptions);\n\n\tprivate lut = pick(this.options, 'lut');\n\tprivate tetrahedralInterpolation = pick(this.options, 'tetrahedralInterpolation');\n\n\tprivate store = injectStore();\n\n\tprotected effect = computed(() => {\n\t\tconst { lut, ...options } = this.options();\n\t\treturn new LUT3DEffect(lut, options);\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst [effect, lut, tetrahedralInterpolation, invalidate] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.lut(),\n\t\t\t\tthis.tetrahedralInterpolation(),\n\t\t\t\tthis.store.invalidate(),\n\t\t\t];\n\n\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\tif (lut) effect.lut = lut;\n\t\t\tinvalidate();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nexport type NoiseEffectOptions = Partial<NonNullable<ConstructorParameters<typeof NoiseEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-noise',\n\ttemplate: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n})\nexport class NgtpNoise {\n\toptions = input({} as Omit<NoiseEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ NoiseEffect });\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n} from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelection, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nexport type NgtpOutlineOptions = ConstructorParameters<typeof OutlineEffect>[2] & {\n\tselection?: Array<THREE.Object3D | ElementRef<THREE.Object3D>>;\n\tselectionLayer: number;\n};\n\nconst defaultOptions: NgtpOutlineOptions = {\n\tselectionLayer: 10,\n};\n\n@Component({\n\tselector: 'ngtp-outline',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtpOutline {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate ngtSelection = inject(NgtSelection, { optional: true });\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\tprivate store = injectStore();\n\n\tprivate selection = pick(this.options, 'selection');\n\tprivate selectionLayer = pick(this.options, 'selectionLayer');\n\n\tprivate blendFunction = pick(this.options, 'blendFunction');\n\tprivate patternTexture = pick(this.options, 'patternTexture');\n\tprivate edgeStrength = pick(this.options, 'edgeStrength');\n\tprivate pulseSpeed = pick(this.options, 'pulseSpeed');\n\tprivate visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n\tprivate hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n\tprivate width = pick(this.options, 'width');\n\tprivate height = pick(this.options, 'height');\n\tprivate kernelSize = pick(this.options, 'kernelSize');\n\tprivate blur = pick(this.options, 'blur');\n\tprivate xRay = pick(this.options, 'xRay');\n\tprivate restOptions = omit(this.options, [\n\t\t'blendFunction',\n\t\t'patternTexture',\n\t\t'edgeStrength',\n\t\t'pulseSpeed',\n\t\t'visibleEdgeColor',\n\t\t'hiddenEdgeColor',\n\t\t'width',\n\t\t'height',\n\t\t'kernelSize',\n\t\t'blur',\n\t\t'xRay',\n\t]);\n\n\teffect = computed(() => {\n\t\tconst [\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\trestOptions,\n\t\t] = [\n\t\t\tthis.effectComposer.scene(),\n\t\t\tthis.effectComposer.camera(),\n\t\t\tthis.blendFunction(),\n\t\t\tthis.patternTexture(),\n\t\t\tthis.edgeStrength(),\n\t\t\tthis.pulseSpeed(),\n\t\t\tthis.visibleEdgeColor(),\n\t\t\tthis.hiddenEdgeColor(),\n\t\t\tthis.width(),\n\t\t\tthis.height(),\n\t\t\tthis.kernelSize(),\n\t\t\tthis.blur(),\n\t\t\tthis.xRay(),\n\t\t\tuntracked(this.restOptions),\n\t\t];\n\n\t\treturn new OutlineEffect(scene, camera, {\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\t...restOptions,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst [effect, invalidate, selectionLayer] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n\t\t\teffect.selectionLayer = selectionLayer;\n\t\t\tinvalidate();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\t// NOTE: we run this effect if declarative NgtSelection is not enabled\n\t\t\tif (!this.ngtSelection) {\n\t\t\t\t// NOTE: if NgtSelection is not used and selection is not provided, we throw\n\t\t\t\tif (this.selection() === undefined) {\n\t\t\t\t\tthrow new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n\t\t\t\t}\n\t\t\t\tconst cleanup = this.handleSelectionChangeEffect(this.selection, this.effect, this.store.invalidate);\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tcleanup?.();\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// NOTE: we run this effect if declarative NgtSelection is enabled\n\t\t\tconst selectionEnabled = this.ngtSelection.enabled();\n\t\t\tif (!selectionEnabled) return;\n\t\t\tconst cleanup = this.handleSelectionChangeEffect(this.ngtSelection.selected, this.effect, this.store.invalidate);\n\t\t\tonCleanup(() => {\n\t\t\t\tcleanup?.();\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate handleSelectionChangeEffect(\n\t\tselected: () => Array<THREE.Object3D | ElementRef<THREE.Object3D>> | undefined,\n\t\t_effect: () => OutlineEffect,\n\t\t_invalidate: () => () => void,\n\t) {\n\t\tconst selection = selected();\n\t\tif (!selection || selection.length === 0) return;\n\n\t\tconst [effect, invalidate] = [_effect(), _invalidate()];\n\n\t\tconst objects: THREE.Object3D[] = [];\n\t\tfor (const el of selection) {\n\t\t\tconst obj = resolveRef(el);\n\t\t\tif (!obj) continue;\n\t\t\tobjects.push(obj);\n\t\t}\n\n\t\tif (objects.length === 0) return;\n\n\t\teffect.selection.set(objects);\n\t\tinvalidate();\n\n\t\treturn () => {\n\t\t\teffect.selection.clear();\n\t\t\tinvalidate();\n\t\t};\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\n\nexport interface PixelationOptions {\n\tgranularity: number;\n}\n\n@Component({\n\tselector: 'ngtp-pixelation',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\timports: [NgtArgs],\n})\nexport class NgtpPixelation {\n\toptions = input({ granularity: 5 } as PixelationOptions, { transform: mergeInputs({ granularity: 5 }) });\n\tprivate granularity = pick(this.options, 'granularity');\n\n\tprotected effect = computed(() => new PixelationEffect(this.granularity()));\n\n\tconstructor() {\n\t\teffect((onCleanup) => {\n\t\t\tconst effect = this.effect();\n\t\t\tonCleanup(() => effect.dispose());\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nexport type ScanlineEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ScanlineEffect>[0]>>;\n\nconst defaultOptions: Omit<ScanlineEffectOptions, 'blendFunction'> = {\n\tdensity: 1.25,\n};\n\n@Component({\n\tselector: 'ngtp-scanline',\n\ttemplate: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n})\nexport class NgtpScanline {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ScanlineEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type SepiaEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SepiaEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-sepia',\n\ttemplate: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpSepia {\n\toptions = input({} as Omit<SepiaEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ SepiaEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ShockWaveEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ShockWaveEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\ttemplate: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpShockWave {\n\toptions = input({} as Omit<ShockWaveEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ShockWaveEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type SMAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SMAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-smaa',\n\ttemplate: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpSMAA {\n\toptions = input({} as Omit<SMAAEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ SMAAEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nexport type TiltShiftEffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShiftEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpTiltShift {\n\toptions = input({} as Omit<TiltShiftEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ TiltShiftEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nconst TiltShiftShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\n\nexport class TiltShift2Effect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tblur = 0.15, // [0, 1], can go beyond 1 for extra\n\t\ttaper = 0.5, // [0, 1], can go beyond 1 for extra\n\t\tstart = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n\t\tend = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n\t\tsamples = 10.0, // number of blur samples\n\t\tdirection = [1, 1], // direction of blur\n\t} = {}) {\n\t\tsuper('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, THREE.Uniform<number | number[]>>([\n\t\t\t\t['blur', new THREE.Uniform(blur)],\n\t\t\t\t['taper', new THREE.Uniform(taper)],\n\t\t\t\t['start', new THREE.Uniform(start)],\n\t\t\t\t['end', new THREE.Uniform(end)],\n\t\t\t\t['samples', new THREE.Uniform(samples)],\n\t\t\t\t['direction', new THREE.Uniform(direction)],\n\t\t\t]),\n\t\t});\n\t}\n}\n\nexport type TiltShift2EffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShift2Effect>[0]>>;\n\nextend({ TiltShift2Effect });\n\n@Component({\n\tselector: 'ngtp-tilt-shift2',\n\ttemplate: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpTiltShift2 {\n\toptions = input({} as Omit<TiltShift2EffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type ToneMappingEffectOptions = NonNullable<ConstructorParameters<typeof ToneMappingEffect>[0]>;\n\n@Component({\n\tselector: 'ngtp-tone-mapping',\n\ttemplate: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpToneMapping {\n\toptions = input({} as Omit<ToneMappingEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ ToneMappingEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\n\nexport type VignetteEffectOptions = Partial<NonNullable<ConstructorParameters<typeof VignetteEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-vignette',\n\ttemplate: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n})\nexport class NgtpVignette {\n\toptions = input({} as Omit<VignetteEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ VignetteEffect });\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\n\nconst WaterShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\n\nexport class WaterEffect extends Effect {\n\tconstructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n\t\tsuper('WaterEffect', WaterShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, THREE.Uniform<number | number[]>>([['factor', new THREE.Uniform(factor)]]),\n\t\t});\n\t}\n}\n\nexport type WaterEffectOptions = Partial<NonNullable<ConstructorParameters<typeof WaterEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-water',\n\ttemplate: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpWater {\n\toptions = input({} as Omit<WaterEffectOptions, 'blendFunction'>);\n\tprotected effect = inject(NgtpEffect, { host: true });\n\n\tconstructor() {\n\t\textend({ WaterEffect });\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
|