@tresjs/post-processing 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  ![repository-banner.png](/public/repo-banner.png)
2
2
 
3
3
  <p align="center">
4
- <a href="https://www.npmjs.com/package/@tresjs/core"><img src="https://img.shields.io/npm/v/@tresjs/core?color=%2382DBCA" alt="npm package"></a>
4
+ <a href="https://www.npmjs.com/package/@tresjs/core"><img src="https://img.shields.io/npm/v/@tresjs/post-processing?color=%2382DBCA" alt="npm package"></a>
5
5
 
6
- <a href="https://discord.gg/tfY9aSNT"><img src="https://img.shields.io/badge/chat-discord-purple?style=flat&logo=discord" alt="discord chat"></a>
6
+ <a href="https://discord.gg/UCr96AQmWn"><img src="https://img.shields.io/badge/chat-discord-purple?style=flat&logo=discord" alt="discord chat"></a>
7
7
 
8
8
  </p>
9
9
  <br/>
10
10
 
11
- # Post-Processing
11
+ # Post-Processing WIP
12
12
 
13
13
  > Collection of useful helpers and fully functional, ready-made abstractions for Tres
14
14
 
@@ -0,0 +1,108 @@
1
+ import type { PropType as __PropType } from 'vue';
2
+ import { Scene } from 'three';
3
+ import { TresCamera, TresObject } from '@tresjs/core';
4
+ export type EffectComposerProps = {
5
+ enabled?: boolean;
6
+ children?: TresObject[];
7
+ depthBuffer?: boolean;
8
+ dissableNormalPass?: boolean;
9
+ stencilBuffer?: boolean;
10
+ resolutionScale?: number;
11
+ autoClear?: boolean;
12
+ multisampling?: number;
13
+ frameBufferType?: number;
14
+ scene?: Scene;
15
+ camera?: TresCamera;
16
+ };
17
+ declare const _sfc_main: import("vue").DefineComponent<{
18
+ enabled: {
19
+ type: __PropType<boolean | undefined>;
20
+ required: false;
21
+ };
22
+ children: {
23
+ type: __PropType<TresObject[] | undefined>;
24
+ required: false;
25
+ };
26
+ depthBuffer: {
27
+ type: __PropType<boolean | undefined>;
28
+ required: false;
29
+ };
30
+ dissableNormalPass: {
31
+ type: __PropType<boolean | undefined>;
32
+ required: false;
33
+ };
34
+ stencilBuffer: {
35
+ type: __PropType<boolean | undefined>;
36
+ required: false;
37
+ };
38
+ resolutionScale: {
39
+ type: __PropType<number | undefined>;
40
+ required: false;
41
+ };
42
+ autoClear: {
43
+ type: __PropType<boolean | undefined>;
44
+ required: false;
45
+ };
46
+ multisampling: {
47
+ type: __PropType<number | undefined>;
48
+ required: false;
49
+ };
50
+ frameBufferType: {
51
+ type: __PropType<number | undefined>;
52
+ required: false;
53
+ };
54
+ scene: {
55
+ type: __PropType<Scene | undefined>;
56
+ required: false;
57
+ };
58
+ camera: {
59
+ type: __PropType<TresCamera | undefined>;
60
+ required: false;
61
+ };
62
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
63
+ enabled: {
64
+ type: __PropType<boolean | undefined>;
65
+ required: false;
66
+ };
67
+ children: {
68
+ type: __PropType<TresObject[] | undefined>;
69
+ required: false;
70
+ };
71
+ depthBuffer: {
72
+ type: __PropType<boolean | undefined>;
73
+ required: false;
74
+ };
75
+ dissableNormalPass: {
76
+ type: __PropType<boolean | undefined>;
77
+ required: false;
78
+ };
79
+ stencilBuffer: {
80
+ type: __PropType<boolean | undefined>;
81
+ required: false;
82
+ };
83
+ resolutionScale: {
84
+ type: __PropType<number | undefined>;
85
+ required: false;
86
+ };
87
+ autoClear: {
88
+ type: __PropType<boolean | undefined>;
89
+ required: false;
90
+ };
91
+ multisampling: {
92
+ type: __PropType<number | undefined>;
93
+ required: false;
94
+ };
95
+ frameBufferType: {
96
+ type: __PropType<number | undefined>;
97
+ required: false;
98
+ };
99
+ scene: {
100
+ type: __PropType<Scene | undefined>;
101
+ required: false;
102
+ };
103
+ camera: {
104
+ type: __PropType<TresCamera | undefined>;
105
+ required: false;
106
+ };
107
+ }>>, {}, {}>;
108
+ export default _sfc_main;
@@ -0,0 +1,146 @@
1
+ import type { PropType as __PropType } from 'vue';
2
+ import { BlurPass, KernelSize, BlendFunction } from 'postprocessing';
3
+ export type BloomProps = {
4
+ blendFunction?: BlendFunction;
5
+ /**
6
+ * The intensity of the bloom effect.
7
+ *
8
+ * @default 1
9
+ * @type {number}
10
+ * @memberof BloomProps
11
+ */
12
+ intensity?: number;
13
+ /**
14
+ * An efficient, incremental blur pass.
15
+ *
16
+ * @type {BlurPass}
17
+ * @memberof BloomProps
18
+ */
19
+ blurPass?: BlurPass;
20
+ /**
21
+ * The width of the render
22
+ *
23
+ * @type {number}
24
+ * @memberof BloomProps
25
+ */
26
+ width?: number;
27
+ /**
28
+ * The height of the render
29
+ *
30
+ * @type {number}
31
+ * @memberof BloomProps
32
+ */
33
+ height?: number;
34
+ /**
35
+ * The kernel size.
36
+ *
37
+ * @default KernelSize.LARGE
38
+ *
39
+ * @type {KernelSize}
40
+ * @memberof BloomProps
41
+ */
42
+ kernelSize?: KernelSize;
43
+ /**
44
+ * The luminance threshold. Raise this value to mask out darker elements in the scene. Range is [0, 1].
45
+ *
46
+ * @default 0.9
47
+ *
48
+ * @type {number}
49
+ * @memberof BloomProps
50
+ */
51
+ luminanceThreshold?: number;
52
+ /**
53
+ * Controls the smoothness of the luminance threshold. Range is [0, 1].
54
+ *
55
+ * @default 0.025
56
+ *
57
+ * @type {number}
58
+ * @memberof BloomProps
59
+ */
60
+ luminanceSmoothing?: number;
61
+ /**
62
+ * Enables mip map blur.
63
+ *
64
+ * @default false
65
+ *
66
+ * @type {boolean}
67
+ * @memberof BloomProps
68
+ */
69
+ mipmapBlur?: boolean;
70
+ };
71
+ declare const _sfc_main: import("vue").DefineComponent<{
72
+ blendFunction: {
73
+ type: __PropType<BlendFunction | undefined>;
74
+ required: false;
75
+ };
76
+ intensity: {
77
+ type: __PropType<number | undefined>;
78
+ required: false;
79
+ };
80
+ blurPass: {
81
+ type: __PropType<import("postprocessing").KawaseBlurPass | undefined>;
82
+ required: false;
83
+ };
84
+ width: {
85
+ type: __PropType<number | undefined>;
86
+ required: false;
87
+ };
88
+ height: {
89
+ type: __PropType<number | undefined>;
90
+ required: false;
91
+ };
92
+ kernelSize: {
93
+ type: __PropType<KernelSize | undefined>;
94
+ required: false;
95
+ };
96
+ luminanceThreshold: {
97
+ type: __PropType<number | undefined>;
98
+ required: false;
99
+ };
100
+ luminanceSmoothing: {
101
+ type: __PropType<number | undefined>;
102
+ required: false;
103
+ };
104
+ mipmapBlur: {
105
+ type: __PropType<boolean | undefined>;
106
+ required: false;
107
+ };
108
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
109
+ blendFunction: {
110
+ type: __PropType<BlendFunction | undefined>;
111
+ required: false;
112
+ };
113
+ intensity: {
114
+ type: __PropType<number | undefined>;
115
+ required: false;
116
+ };
117
+ blurPass: {
118
+ type: __PropType<import("postprocessing").KawaseBlurPass | undefined>;
119
+ required: false;
120
+ };
121
+ width: {
122
+ type: __PropType<number | undefined>;
123
+ required: false;
124
+ };
125
+ height: {
126
+ type: __PropType<number | undefined>;
127
+ required: false;
128
+ };
129
+ kernelSize: {
130
+ type: __PropType<KernelSize | undefined>;
131
+ required: false;
132
+ };
133
+ luminanceThreshold: {
134
+ type: __PropType<number | undefined>;
135
+ required: false;
136
+ };
137
+ luminanceSmoothing: {
138
+ type: __PropType<number | undefined>;
139
+ required: false;
140
+ };
141
+ mipmapBlur: {
142
+ type: __PropType<boolean | undefined>;
143
+ required: false;
144
+ };
145
+ }>>, {}, {}>;
146
+ export default _sfc_main;
@@ -0,0 +1,183 @@
1
+ import type { PropType as __PropType } from 'vue';
2
+ import { GlitchMode, BlendFunction } from 'postprocessing';
3
+ import { Vector2, Texture } from 'three';
4
+ export interface GlitchProps {
5
+ blendFunction?: BlendFunction;
6
+ /**
7
+ * The minimum and maximum delay between glitch activations in seconds.
8
+ *
9
+ * @default [1.5, 3.5]
10
+ *
11
+ * @type {Vector2}
12
+ * @memberof GlitchProps
13
+ */
14
+ delay?: Vector2;
15
+ /**
16
+ * The minimum and maximum duration of a glitch in seconds.
17
+ *
18
+ * @default [0.6, 1.0]
19
+ *
20
+ * @type {Vector2}
21
+ * @memberof GlitchProps
22
+ */
23
+ duration?: Vector2;
24
+ /**
25
+ * The strength of weak and strong glitches.
26
+ *
27
+ * @default [0.3, 1.0]
28
+ *
29
+ * @type {Vector2}
30
+ * @memberof GlitchProps
31
+ */
32
+ strength?: Vector2;
33
+ /**
34
+ * The glitch mode. Can be DISABLED | SPORADIC | CONSTANT_MILD | CONSTANT_WILD .
35
+ *
36
+ * @default GlitchMode.SPORADIC
37
+ *
38
+ * @type {GlitchMode}
39
+ * @memberof GlitchProps
40
+ */
41
+ mode?: GlitchMode;
42
+ /**
43
+ * Turn the effect on and off.
44
+ *
45
+ * @type {boolean}
46
+ * @memberof GlitchProps
47
+ */
48
+ active?: boolean;
49
+ /**
50
+ *
51
+ * The threshold for strong glitches.
52
+ *
53
+ * @default 0.85
54
+ *
55
+ * @type {number}
56
+ * @memberof GlitchProps
57
+ */
58
+ ratio?: number;
59
+ /**
60
+ * The scale of the blocky glitch columns.
61
+ *
62
+ * @default 0.05
63
+ *
64
+ * @type {number}
65
+ * @memberof GlitchProps
66
+ */
67
+ columns?: number;
68
+ /**
69
+ * A chromatic aberration offset. If provided, the glitch effect will influence this offset.
70
+ *
71
+ * @type {Vector2}
72
+ * @memberof GlitchProps
73
+ */
74
+ chromaticAberrationOffset?: Vector2;
75
+ /**
76
+ * A perturbation map. If none is provided, a noise texture will be created.
77
+ *
78
+ * @type {Texture}
79
+ * @memberof GlitchProps
80
+ */
81
+ peturbationMap?: Texture;
82
+ /**
83
+ * The size of the generated noise map. Will be ignored if a perturbation map is provided.
84
+ *
85
+ * @default 64
86
+ *
87
+ * @type {number}
88
+ * @memberof GlitchProps
89
+ */
90
+ dtSize?: number;
91
+ }
92
+ declare const _sfc_main: import("vue").DefineComponent<{
93
+ blendFunction: {
94
+ type: __PropType<BlendFunction | undefined>;
95
+ required: false;
96
+ };
97
+ delay: {
98
+ type: __PropType<Vector2 | undefined>;
99
+ required: false;
100
+ };
101
+ duration: {
102
+ type: __PropType<Vector2 | undefined>;
103
+ required: false;
104
+ };
105
+ strength: {
106
+ type: __PropType<Vector2 | undefined>;
107
+ required: false;
108
+ };
109
+ mode: {
110
+ type: __PropType<GlitchMode | undefined>;
111
+ required: false;
112
+ };
113
+ active: {
114
+ type: __PropType<boolean | undefined>;
115
+ required: false;
116
+ };
117
+ ratio: {
118
+ type: __PropType<number | undefined>;
119
+ required: false;
120
+ };
121
+ columns: {
122
+ type: __PropType<number | undefined>;
123
+ required: false;
124
+ };
125
+ chromaticAberrationOffset: {
126
+ type: __PropType<Vector2 | undefined>;
127
+ required: false;
128
+ };
129
+ peturbationMap: {
130
+ type: __PropType<Texture | undefined>;
131
+ required: false;
132
+ };
133
+ dtSize: {
134
+ type: __PropType<number | undefined>;
135
+ required: false;
136
+ };
137
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
138
+ blendFunction: {
139
+ type: __PropType<BlendFunction | undefined>;
140
+ required: false;
141
+ };
142
+ delay: {
143
+ type: __PropType<Vector2 | undefined>;
144
+ required: false;
145
+ };
146
+ duration: {
147
+ type: __PropType<Vector2 | undefined>;
148
+ required: false;
149
+ };
150
+ strength: {
151
+ type: __PropType<Vector2 | undefined>;
152
+ required: false;
153
+ };
154
+ mode: {
155
+ type: __PropType<GlitchMode | undefined>;
156
+ required: false;
157
+ };
158
+ active: {
159
+ type: __PropType<boolean | undefined>;
160
+ required: false;
161
+ };
162
+ ratio: {
163
+ type: __PropType<number | undefined>;
164
+ required: false;
165
+ };
166
+ columns: {
167
+ type: __PropType<number | undefined>;
168
+ required: false;
169
+ };
170
+ chromaticAberrationOffset: {
171
+ type: __PropType<Vector2 | undefined>;
172
+ required: false;
173
+ };
174
+ peturbationMap: {
175
+ type: __PropType<Texture | undefined>;
176
+ required: false;
177
+ };
178
+ dtSize: {
179
+ type: __PropType<number | undefined>;
180
+ required: false;
181
+ };
182
+ }>>, {}, {}>;
183
+ export default _sfc_main;
@@ -0,0 +1,134 @@
1
+ import type { PropType } from 'vue';
2
+ import type { BlendFunction, KernelSize } from 'postprocessing';
3
+ import type { Object3D, ColorRepresentation } from 'three';
4
+ export declare const Outline: import("vue").DefineComponent<{
5
+ /**
6
+ * The objects in the scene which should have an outline.
7
+ */
8
+ outlinedObjects: {
9
+ type: PropType<Object3D<import("three").Event>[]>;
10
+ requred: boolean;
11
+ };
12
+ /**
13
+ * The blend function. Use `BlendFunction.ALPHA` for dark outlines.
14
+ */
15
+ blendFunction: {
16
+ type: PropType<BlendFunction>;
17
+ };
18
+ patternTexture: {
19
+ type: PropType<number>;
20
+ };
21
+ patternScale: {
22
+ type: PropType<number>;
23
+ };
24
+ edgeStrength: {
25
+ type: PropType<number>;
26
+ };
27
+ /**
28
+ * The pulse speed. A value of zero disables the pulse effect.
29
+ */
30
+ pulseSpeed: {
31
+ type: PropType<number>;
32
+ };
33
+ visibleEdgeColor: {
34
+ type: PropType<[r: number, g: number, b: number] | ColorRepresentation>;
35
+ };
36
+ hiddenEdgeColor: {
37
+ type: PropType<[r: number, g: number, b: number] | ColorRepresentation>;
38
+ };
39
+ /**
40
+ * The number of samples used for multisample antialiasing. Requires WebGL 2.
41
+ */
42
+ multisampling: {
43
+ type: PropType<number>;
44
+ };
45
+ resolutionScale: {
46
+ type: PropType<number>;
47
+ };
48
+ resolutionX: {
49
+ type: PropType<number>;
50
+ };
51
+ resolutionY: {
52
+ type: PropType<number>;
53
+ };
54
+ /**
55
+ * The blur kernel size.
56
+ */
57
+ kernelSize: {
58
+ type: PropType<KernelSize>;
59
+ };
60
+ blur: {
61
+ type: PropType<boolean>;
62
+ };
63
+ /**
64
+ * Whether occluded parts of selected objects should be visible
65
+ */
66
+ xRay: {
67
+ type: PropType<boolean>;
68
+ };
69
+ }, () => void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
70
+ /**
71
+ * The objects in the scene which should have an outline.
72
+ */
73
+ outlinedObjects: {
74
+ type: PropType<Object3D<import("three").Event>[]>;
75
+ requred: boolean;
76
+ };
77
+ /**
78
+ * The blend function. Use `BlendFunction.ALPHA` for dark outlines.
79
+ */
80
+ blendFunction: {
81
+ type: PropType<BlendFunction>;
82
+ };
83
+ patternTexture: {
84
+ type: PropType<number>;
85
+ };
86
+ patternScale: {
87
+ type: PropType<number>;
88
+ };
89
+ edgeStrength: {
90
+ type: PropType<number>;
91
+ };
92
+ /**
93
+ * The pulse speed. A value of zero disables the pulse effect.
94
+ */
95
+ pulseSpeed: {
96
+ type: PropType<number>;
97
+ };
98
+ visibleEdgeColor: {
99
+ type: PropType<[r: number, g: number, b: number] | ColorRepresentation>;
100
+ };
101
+ hiddenEdgeColor: {
102
+ type: PropType<[r: number, g: number, b: number] | ColorRepresentation>;
103
+ };
104
+ /**
105
+ * The number of samples used for multisample antialiasing. Requires WebGL 2.
106
+ */
107
+ multisampling: {
108
+ type: PropType<number>;
109
+ };
110
+ resolutionScale: {
111
+ type: PropType<number>;
112
+ };
113
+ resolutionX: {
114
+ type: PropType<number>;
115
+ };
116
+ resolutionY: {
117
+ type: PropType<number>;
118
+ };
119
+ /**
120
+ * The blur kernel size.
121
+ */
122
+ kernelSize: {
123
+ type: PropType<KernelSize>;
124
+ };
125
+ blur: {
126
+ type: PropType<boolean>;
127
+ };
128
+ /**
129
+ * Whether occluded parts of selected objects should be visible
130
+ */
131
+ xRay: {
132
+ type: PropType<boolean>;
133
+ };
134
+ }>>, {}, {}>;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { EffectComposer } from './core/useEffectComposer/component';
2
- import { Bloom } from './core/effects/Bloom';
3
- import { Glitch } from './core/effects/Glitch';
4
- export { EffectComposer, Bloom, Glitch };
1
+ import EffectComposer from './core/EffectComposer.vue';
2
+ import Bloom from './core/effects/Bloom.vue';
3
+ import Glitch from './core/effects/Glitch.vue';
4
+ import { Outline } from './core/effects/Outline';
5
+ export { EffectComposer, Bloom, Glitch, Outline };