@tresjs/post-processing 0.3.0 → 0.5.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/README.md CHANGED
@@ -8,21 +8,14 @@
8
8
  </p>
9
9
  <br/>
10
10
 
11
- # Post-Processing WIP
11
+ # Post-Processing
12
12
 
13
- > Collection of useful helpers and fully functional, ready-made abstractions for Tres
13
+ > Collection of useful helpers and fully functional, ready-made post-processing effects for Tres
14
14
 
15
- - 💡 Build a 3D scene working only with Vue components.
15
+ - 💡 Build your effects with Vue components only.
16
16
  - ⚡️ Powered by Vite
17
- - 🥰 It brings all the updated features of ThreeJS right awayregardless the version
18
17
  - 🦾 Fully Typed
19
18
 
20
- Cientos (Spanish word for "hundreds", pronounced /θjentos/ ) is is a collection of useful ready-to-go helpers and components that are not part of the core package. The name uses the word uses in spanish to multiply by 100, to refer to the potential reach of the package to hold a amazing abstractions.
21
-
22
- The postprocessing package uses three-stdlib module under the hood instead of the three/examples/jsm module. This means that you don't need to extend the catalogue of components using the extend method from the `core`, postprocessing does it for you.
23
-
24
- It just works. 💯
25
-
26
19
  ## Installation
27
20
 
28
21
  ```bash
@@ -31,7 +24,7 @@ pnpm i @tresjs/post-processing
31
24
 
32
25
  ## Docs
33
26
 
34
- Checkout the [docs](https://cientos.tresjs.org/)
27
+ Checkout the [docs](https://postprocessing.tresjs.org/)
35
28
 
36
29
  ## Demos
37
30
 
@@ -39,7 +32,7 @@ Checkout the [docs](https://cientos.tresjs.org/)
39
32
 
40
33
  ## Contributing
41
34
 
42
- We are open to contributions, please read the [contributing guide](/CONTRIBUTING.md) to get started.
35
+ We are open to contributions, please read the [contributing guide](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md) to get started.
43
36
 
44
37
  ### Build
45
38
 
@@ -1,7 +1,5 @@
1
- import type { PropType as __PropType } from 'vue';
2
- import { Scene } from 'three';
3
- import { TresCamera, TresObject } from '@tresjs/core';
4
- export type EffectComposerProps = {
1
+ import type { TresObject } from '@tresjs/core';
2
+ export interface EffectComposerProps {
5
3
  enabled?: boolean;
6
4
  children?: TresObject[];
7
5
  depthBuffer?: boolean;
@@ -11,98 +9,54 @@ export type EffectComposerProps = {
11
9
  autoClear?: boolean;
12
10
  multisampling?: number;
13
11
  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
- disableNormalPass: {
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;
12
+ }
13
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EffectComposerProps>, {
14
+ enabled: boolean;
15
+ autoClear: boolean;
16
+ frameBufferType: 1016;
17
+ disableNormalPass: boolean;
18
+ depthBuffer: undefined;
19
+ multisampling: number;
20
+ stencilBuffer: undefined;
21
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EffectComposerProps>, {
22
+ enabled: boolean;
23
+ autoClear: boolean;
24
+ frameBufferType: 1016;
25
+ disableNormalPass: boolean;
26
+ depthBuffer: undefined;
27
+ multisampling: number;
28
+ stencilBuffer: undefined;
29
+ }>>>, {
30
+ enabled: boolean;
31
+ depthBuffer: boolean;
32
+ disableNormalPass: boolean;
33
+ stencilBuffer: boolean;
34
+ autoClear: boolean;
35
+ multisampling: number;
36
+ frameBufferType: number;
37
+ }, {}>, {
38
+ default?(_: {}): any;
39
+ }>;
40
+ export default _default;
41
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
42
+ type __VLS_TypePropsToRuntimeProps<T> = {
43
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
44
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
45
+ } : {
46
+ type: import('vue').PropType<T[K]>;
47
+ required: true;
66
48
  };
67
- children: {
68
- type: __PropType<TresObject[] | undefined>;
69
- required: false;
70
- };
71
- depthBuffer: {
72
- type: __PropType<boolean | undefined>;
73
- required: false;
74
- };
75
- disableNormalPass: {
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;
49
+ };
50
+ type __VLS_WithDefaults<P, D> = {
51
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
52
+ default: D[K];
53
+ }> : P[K];
54
+ };
55
+ type __VLS_Prettify<T> = {
56
+ [K in keyof T]: T[K];
57
+ } & {};
58
+ type __VLS_WithTemplateSlots<T, S> = T & {
59
+ new (): {
60
+ $slots: S;
106
61
  };
107
- }>>, {}, {}>;
108
- export default _sfc_main;
62
+ };
@@ -0,0 +1,6 @@
1
+ import type { Effect } from 'postprocessing';
2
+ import { EffectPass } from 'postprocessing';
3
+ export declare const useEffect: <T extends Effect>(newEffectFunction: () => T) => {
4
+ pass: import("vue").ShallowRef<EffectPass | null>;
5
+ effect: import("vue").ShallowRef<T | null>;
6
+ };
@@ -1,6 +1,12 @@
1
- import type { PropType as __PropType } from 'vue';
2
- import { BlurPass, KernelSize, BlendFunction } from 'postprocessing';
3
- export type BloomProps = {
1
+ import { BloomEffect } from 'postprocessing';
2
+ import type { KernelSize, BlendFunction } from 'postprocessing';
3
+ export interface BloomProps {
4
+ /**
5
+ * The blend function of this effect. This prop is not reactive.
6
+ * @default BlendFunction.SCREEN
7
+ * @type {BlendFunction}
8
+ * @memberof BloomProps
9
+ */
4
10
  blendFunction?: BlendFunction;
5
11
  /**
6
12
  * The intensity of the bloom effect.
@@ -10,27 +16,6 @@ export type BloomProps = {
10
16
  * @memberof BloomProps
11
17
  */
12
18
  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
19
  /**
35
20
  * The kernel size.
36
21
  *
@@ -67,80 +52,32 @@ export type BloomProps = {
67
52
  * @memberof BloomProps
68
53
  */
69
54
  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;
55
+ }
56
+ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BloomProps>, {
57
+ mipmapBlur: undefined;
58
+ }>, {
59
+ pass: import("vue").ShallowRef<import("postprocessing").EffectPass | null>;
60
+ effect: import("vue").ShallowRef<BloomEffect | null>;
61
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<BloomProps>, {
62
+ mipmapBlur: undefined;
63
+ }>>>, {
64
+ mipmapBlur: boolean;
65
+ }, {}>;
66
+ export default _default;
67
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
68
+ type __VLS_TypePropsToRuntimeProps<T> = {
69
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
70
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
71
+ } : {
72
+ type: import('vue').PropType<T[K]>;
73
+ required: true;
79
74
  };
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;
75
+ };
76
+ type __VLS_WithDefaults<P, D> = {
77
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
78
+ default: D[K];
79
+ }> : P[K];
80
+ };
81
+ type __VLS_Prettify<T> = {
82
+ [K in keyof T]: T[K];
83
+ } & {};
@@ -0,0 +1,45 @@
1
+ import type { BlendFunction } from 'postprocessing';
2
+ import { DepthOfFieldEffect } from 'postprocessing';
3
+ export interface DepthOfFieldProps {
4
+ /**
5
+ * The blend function of this effect. This prop is not reactive.
6
+ */
7
+ blendFunction?: BlendFunction;
8
+ /**
9
+ * The focus distance in world units.
10
+ */
11
+ worldFocusDistance?: number;
12
+ /**
13
+ * The focus range in world units.
14
+ */
15
+ worldFocusRange?: number;
16
+ /**
17
+ * The normalized focus distance. Range is [0.0, 1.0].
18
+ */
19
+ focusDistance?: number;
20
+ /**
21
+ * The focus range. Range is [0.0, 1.0].
22
+ */
23
+ focusRange?: number;
24
+ /**
25
+ * The scale of the bokeh blur.
26
+ */
27
+ bokehScale?: number;
28
+ resolutionScale?: number;
29
+ resolutionX?: number;
30
+ resolutionY?: number;
31
+ }
32
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<DepthOfFieldProps>, {
33
+ pass: import("vue").ShallowRef<import("postprocessing").EffectPass | null>;
34
+ effect: import("vue").ShallowRef<DepthOfFieldEffect | null>;
35
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<DepthOfFieldProps>>>, {}, {}>;
36
+ export default _default;
37
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
38
+ type __VLS_TypePropsToRuntimeProps<T> = {
39
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
40
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
41
+ } : {
42
+ type: import('vue').PropType<T[K]>;
43
+ required: true;
44
+ };
45
+ };
@@ -1,6 +1,6 @@
1
- import type { PropType as __PropType } from 'vue';
2
- import { GlitchMode, BlendFunction } from 'postprocessing';
3
- import { Vector2, Texture } from 'three';
1
+ import { GlitchMode, GlitchEffect } from 'postprocessing';
2
+ import type { BlendFunction } from 'postprocessing';
3
+ import type { Vector2, Texture } from 'three';
4
4
  export interface GlitchProps {
5
5
  blendFunction?: BlendFunction;
6
6
  /**
@@ -78,7 +78,7 @@ export interface GlitchProps {
78
78
  * @type {Texture}
79
79
  * @memberof GlitchProps
80
80
  */
81
- peturbationMap?: Texture;
81
+ perturbationMap?: Texture;
82
82
  /**
83
83
  * The size of the generated noise map. Will be ignored if a perturbation map is provided.
84
84
  *
@@ -89,95 +89,17 @@ export interface GlitchProps {
89
89
  */
90
90
  dtSize?: number;
91
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;
92
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<GlitchProps>, {
93
+ pass: import("vue").ShallowRef<import("postprocessing").EffectPass | null>;
94
+ effect: import("vue").ShallowRef<GlitchEffect | null>;
95
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<GlitchProps>>>, {}, {}>;
96
+ export default _default;
97
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
98
+ type __VLS_TypePropsToRuntimeProps<T> = {
99
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
100
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
101
+ } : {
102
+ type: import('vue').PropType<T[K]>;
103
+ required: true;
104
+ };
105
+ };