angular-three-postprocessing 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/effect-composer.mjs +31 -41
- package/esm2022/lib/effect.mjs +6 -6
- package/esm2022/lib/effects/ascii.mjs +3 -3
- package/esm2022/lib/effects/bloom.mjs +3 -3
- package/esm2022/lib/effects/brightness-contrast.mjs +3 -3
- package/esm2022/lib/effects/chromatic-abberation.mjs +3 -3
- package/esm2022/lib/effects/color-average.mjs +3 -3
- package/esm2022/lib/effects/color-depth.mjs +3 -3
- package/esm2022/lib/effects/depth-of-field.mjs +9 -15
- package/esm2022/lib/effects/depth.mjs +3 -3
- package/esm2022/lib/effects/dot-screen.mjs +3 -3
- package/esm2022/lib/effects/fxaa.mjs +3 -3
- package/esm2022/lib/effects/glitch.mjs +15 -19
- package/esm2022/lib/effects/god-rays.mjs +9 -13
- package/esm2022/lib/effects/grid.mjs +10 -14
- package/esm2022/lib/effects/hue-saturation.mjs +3 -3
- package/esm2022/lib/effects/index.mjs +2 -1
- package/esm2022/lib/effects/lens-flare.mjs +13 -17
- package/esm2022/lib/effects/lut.mjs +18 -22
- package/esm2022/lib/effects/noise.mjs +3 -3
- package/esm2022/lib/effects/outline.mjs +33 -30
- package/esm2022/lib/effects/pixelation.mjs +3 -3
- package/esm2022/lib/effects/scanline.mjs +3 -3
- package/esm2022/lib/effects/sepia.mjs +3 -3
- package/esm2022/lib/effects/shock-wave.mjs +3 -3
- package/esm2022/lib/effects/smaa.mjs +3 -3
- package/esm2022/lib/effects/tilt-shift-2.mjs +3 -3
- package/esm2022/lib/effects/tilt-shift.mjs +3 -3
- package/esm2022/lib/effects/tone-mapping.mjs +81 -0
- package/esm2022/lib/effects/vignette.mjs +3 -3
- package/esm2022/lib/effects/water.mjs +3 -3
- package/esm2022/n8ao/angular-three-postprocessing-n8ao.mjs +5 -0
- package/esm2022/n8ao/index.mjs +2 -0
- package/esm2022/n8ao/lib/n8ao.mjs +78 -0
- package/fesm2022/angular-three-postprocessing-n8ao.mjs +85 -0
- package/fesm2022/angular-three-postprocessing-n8ao.mjs.map +1 -0
- package/fesm2022/angular-three-postprocessing.mjs +269 -218
- package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
- package/lib/effect-composer.d.ts +0 -4
- package/lib/effects/depth-of-field.d.ts +1 -2
- package/lib/effects/glitch.d.ts +2 -3
- package/lib/effects/god-rays.d.ts +1 -2
- package/lib/effects/grid.d.ts +0 -1
- package/lib/effects/index.d.ts +1 -0
- package/lib/effects/lens-flare.d.ts +5 -7
- package/lib/effects/lut.d.ts +2 -3
- package/lib/effects/tone-mapping.d.ts +43 -0
- package/n8ao/README.md +3 -0
- package/n8ao/index.d.ts +1 -0
- package/n8ao/lib/n8ao.d.ts +35 -0
- package/package.json +13 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { N8AOPostPass } from 'n8ao';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { input, inject, computed, effect, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { pick, applyProps, NgtArgs } from 'angular-three';
|
|
5
|
+
import { NgtpEffectComposer } from 'angular-three-postprocessing';
|
|
6
|
+
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
7
|
+
|
|
8
|
+
// @ts-expect-error - n8ao is not typed
|
|
9
|
+
const defaultOptions = {
|
|
10
|
+
aoSamples: 16,
|
|
11
|
+
aoRadius: 5.0,
|
|
12
|
+
aoTones: 0.0,
|
|
13
|
+
denoiseSamples: 8,
|
|
14
|
+
denoiseRadius: 12,
|
|
15
|
+
distanceFalloff: 1.0,
|
|
16
|
+
intensity: 5,
|
|
17
|
+
denoiseIterations: 2.0,
|
|
18
|
+
renderMode: 0,
|
|
19
|
+
biasOffset: 0.0,
|
|
20
|
+
biasMultiplier: 0.0,
|
|
21
|
+
color: 'black',
|
|
22
|
+
gammaCorrection: true,
|
|
23
|
+
logarithmicDepthBuffer: false,
|
|
24
|
+
screenSpaceRadius: false,
|
|
25
|
+
halfRes: false,
|
|
26
|
+
depthAwareUpsampling: true,
|
|
27
|
+
colorMultiply: true,
|
|
28
|
+
transparencyAware: false,
|
|
29
|
+
accumulate: false,
|
|
30
|
+
};
|
|
31
|
+
class NgtpN8AO {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
34
|
+
this.quality = pick(this.options, 'quality');
|
|
35
|
+
this.effectComposer = inject(NgtpEffectComposer);
|
|
36
|
+
this.effect = computed(() => {
|
|
37
|
+
const [scene, camera] = [this.effectComposer.scene(), this.effectComposer.camera()];
|
|
38
|
+
return new N8AOPostPass(scene, camera);
|
|
39
|
+
});
|
|
40
|
+
effect(() => {
|
|
41
|
+
const n8aoEffect = this.effect();
|
|
42
|
+
if (!n8aoEffect)
|
|
43
|
+
return;
|
|
44
|
+
const { quality: _, ...configurations } = this.options();
|
|
45
|
+
applyProps(n8aoEffect.configuration, configurations);
|
|
46
|
+
});
|
|
47
|
+
effect(() => {
|
|
48
|
+
this.setQualityEffect();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
setQualityEffect() {
|
|
52
|
+
const effect = this.effect();
|
|
53
|
+
if (!effect)
|
|
54
|
+
return;
|
|
55
|
+
const quality = this.quality();
|
|
56
|
+
if (!quality)
|
|
57
|
+
return;
|
|
58
|
+
const titleCaseQuality = quality.charAt(0).toUpperCase() + quality.slice(1);
|
|
59
|
+
effect.setQuality(titleCaseQuality);
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtpN8AO, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.4", type: NgtpN8AO, isStandalone: true, selector: "ngtp-n8ao", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
63
|
+
<ngt-primitive *args="[effect()]" />
|
|
64
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
|
+
}
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtpN8AO, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{
|
|
69
|
+
selector: 'ngtp-n8ao',
|
|
70
|
+
standalone: true,
|
|
71
|
+
template: `
|
|
72
|
+
<ngt-primitive *args="[effect()]" />
|
|
73
|
+
`,
|
|
74
|
+
imports: [NgtArgs],
|
|
75
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
76
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
77
|
+
}]
|
|
78
|
+
}], ctorParameters: () => [] });
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Generated bundle index. Do not edit.
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
export { NgtpN8AO };
|
|
85
|
+
//# sourceMappingURL=angular-three-postprocessing-n8ao.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-postprocessing-n8ao.mjs","sources":["../../../../libs/postprocessing/n8ao/src/lib/n8ao.ts","../../../../libs/postprocessing/n8ao/src/angular-three-postprocessing-n8ao.ts"],"sourcesContent":["// @ts-expect-error - n8ao is not typed\nimport { N8AOPostPass } from 'n8ao';\n\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { applyProps, NgtArgs, pick } from 'angular-three';\nimport { NgtpEffectComposer } from 'angular-three-postprocessing';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { ColorRepresentation } from 'three';\n\nexport interface NgtpN8AOOptions {\n\taoRadius: number;\n\taoTones: number;\n\tdistanceFalloff: number;\n\tintensity: number;\n\tbiasOffset: number;\n\tbiasMultiplier: number;\n\taoSamples: number;\n\tdenoiseSamples: number;\n\tdenoiseRadius: number;\n\tcolor: ColorRepresentation;\n\thalfRes: boolean;\n\tdepthAwareUpsampling: boolean;\n\tscreenSpaceRadius: boolean;\n\trenderMode: 0 | 1 | 2 | 3 | 4;\n\tdenoiseIterations: number;\n\ttransparencyAware: boolean;\n\tgammaCorrection: boolean;\n\tlogarithmicDepthBuffer: boolean;\n\tcolorMultiply: boolean;\n\taccumulate: boolean;\n\tquality?: 'performance' | 'low' | 'medium' | 'high' | 'ultra';\n}\n\nconst defaultOptions: NgtpN8AOOptions = {\n\taoSamples: 16,\n\taoRadius: 5.0,\n\taoTones: 0.0,\n\tdenoiseSamples: 8,\n\tdenoiseRadius: 12,\n\tdistanceFalloff: 1.0,\n\tintensity: 5,\n\tdenoiseIterations: 2.0,\n\trenderMode: 0,\n\tbiasOffset: 0.0,\n\tbiasMultiplier: 0.0,\n\tcolor: 'black',\n\tgammaCorrection: true,\n\tlogarithmicDepthBuffer: false,\n\tscreenSpaceRadius: false,\n\thalfRes: false,\n\tdepthAwareUpsampling: true,\n\tcolorMultiply: true,\n\ttransparencyAware: false,\n\taccumulate: false,\n};\n\n@Component({\n\tselector: 'ngtp-n8ao',\n\tstandalone: true,\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 NgtpN8AO {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate quality = pick(this.options, 'quality');\n\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\teffect = computed(() => {\n\t\tconst [scene, camera] = [this.effectComposer.scene(), this.effectComposer.camera()];\n\t\treturn new N8AOPostPass(scene, camera);\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst n8aoEffect = this.effect();\n\t\t\tif (!n8aoEffect) return;\n\n\t\t\tconst { quality: _, ...configurations } = this.options();\n\t\t\tapplyProps(n8aoEffect.configuration, configurations);\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.setQualityEffect();\n\t\t});\n\t}\n\n\tprivate setQualityEffect() {\n\t\tconst effect = this.effect();\n\t\tif (!effect) return;\n\n\t\tconst quality = this.quality();\n\t\tif (!quality) return;\n\n\t\tconst titleCaseQuality = quality.charAt(0).toUpperCase() + quality.slice(1);\n\t\teffect.setQuality(titleCaseQuality);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|