three-stdlib 2.17.3 → 2.18.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/animation/CCDIKSolver.cjs.js +1 -1
- package/animation/CCDIKSolver.js +2 -2
- package/index.cjs.js +1 -1
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/postprocessing/FilmPass.cjs.js +1 -1
- package/postprocessing/FilmPass.d.ts +1 -1
- package/postprocessing/FilmPass.js +1 -1
- package/postprocessing/WaterPass.cjs.js +1 -0
- package/postprocessing/WaterPass.d.ts +12 -0
- package/postprocessing/WaterPass.js +102 -0
- package/textures/FlakesTexture.d.ts +4 -0
package/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './renderers/CSS2DRenderer';
|
|
|
14
14
|
export * from './renderers/CSS3DRenderer';
|
|
15
15
|
export * from './renderers/Projector';
|
|
16
16
|
export * from './renderers/SVGRenderer';
|
|
17
|
+
export * from './textures/FlakesTexture';
|
|
17
18
|
export * from './modifiers/CurveModifier';
|
|
18
19
|
export * from './modifiers/SimplifyModifier';
|
|
19
20
|
export * from './modifiers/EdgeSplitModifier';
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("./Pass.cjs.js"),s=require("three"),i=require("../shaders/FilmShader.cjs.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e);class n extends r.Pass{constructor(e,t,n,u){super(),a.default(this,"material",void 0),a.default(this,"fsQuad",void 0),a.default(this,"uniforms",void 0),void 0===i.FilmShader&&console.error("THREE.FilmPass relies on FilmShader");const d=i.FilmShader;this.uniforms=s.UniformsUtils.clone(d.uniforms),this.material=new s.ShaderMaterial({uniforms:this.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader}),void 0!==u&&(this.uniforms.grayscale.value=u),void 0!==e&&(this.uniforms.nIntensity.value=e),void 0!==t&&(this.uniforms.sIntensity.value=t),void 0!==n&&(this.uniforms.sCount.value=n),this.fsQuad=new r.FullScreenQuad(this.material)}render(e,r,s,i
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("./Pass.cjs.js"),s=require("three"),i=require("../shaders/FilmShader.cjs.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e);class n extends r.Pass{constructor(e,t,n,u){super(),a.default(this,"material",void 0),a.default(this,"fsQuad",void 0),a.default(this,"uniforms",void 0),void 0===i.FilmShader&&console.error("THREE.FilmPass relies on FilmShader");const d=i.FilmShader;this.uniforms=s.UniformsUtils.clone(d.uniforms),this.material=new s.ShaderMaterial({uniforms:this.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader}),void 0!==u&&(this.uniforms.grayscale.value=u),void 0!==e&&(this.uniforms.nIntensity.value=e),void 0!==t&&(this.uniforms.sIntensity.value=t),void 0!==n&&(this.uniforms.sCount.value=n),this.fsQuad=new r.FullScreenQuad(this.material)}render(e,r,s,i){this.uniforms.tDiffuse.value=s.texture,this.uniforms.time.value+=i,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(r),this.clear&&e.clear(),this.fsQuad.render(e))}}exports.FilmPass=n;
|
|
@@ -5,6 +5,6 @@ declare class FilmPass extends Pass {
|
|
|
5
5
|
fsQuad: FullScreenQuad;
|
|
6
6
|
uniforms: any;
|
|
7
7
|
constructor(noiseIntensity?: number, scanlinesIntensity?: number, scanlinesCount?: number, grayscale?: boolean);
|
|
8
|
-
render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime: number
|
|
8
|
+
render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime: number): void;
|
|
9
9
|
}
|
|
10
10
|
export { FilmPass };
|
|
@@ -28,7 +28,7 @@ class FilmPass extends Pass {
|
|
|
28
28
|
this.fsQuad = new FullScreenQuad(this.material);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
render(renderer, writeBuffer, readBuffer, deltaTime
|
|
31
|
+
render(renderer, writeBuffer, readBuffer, deltaTime) {
|
|
32
32
|
this.uniforms['tDiffuse'].value = readBuffer.texture;
|
|
33
33
|
this.uniforms['time'].value += deltaTime;
|
|
34
34
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("three"),r=require("./Pass.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=i(e);class a extends r.Pass{constructor(){super(),n.default(this,"material",void 0),n.default(this,"fsQuad",void 0),n.default(this,"factor",void 0),n.default(this,"time",void 0),n.default(this,"uniforms",void 0),this.uniforms=t.UniformsUtils.clone({tex:{value:null},time:{value:0},factor:{value:0},resolution:{value:new t.Vector2(64,64)}}),this.material=new t.ShaderMaterial({uniforms:this.uniforms,vertexShader:"\n varying vec2 vUv;\n void main(){ \n vUv = uv; \n vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewPosition;\n }",fragmentShader:"\n uniform float time;\n uniform float factor;\n uniform vec2 resolution;\n uniform sampler2D tex;\n varying vec2 vUv;\n void main() { \n vec2 uv1 = vUv;\n vec2 uv = gl_FragCoord.xy/resolution.xy;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = uv1.y * frequency + time * .7; \n float y = uv1.x * frequency + time * .3;\n uv1.x += cos(x+y) * amplitude * cos(y);\n uv1.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(tex, uv1);\n gl_FragColor = rgba;\n }"}),this.fsQuad=new r.FullScreenQuad(this.material),this.factor=0,this.time=0}render(e,t,r){this.uniforms.tex.value=r.texture,this.uniforms.time.value=this.time,this.uniforms.factor.value=this.factor,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}exports.WaterPass=a;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WebGLRenderer, WebGLRenderTarget, ShaderMaterial } from 'three';
|
|
2
|
+
import { Pass, FullScreenQuad } from '../postprocessing/Pass';
|
|
3
|
+
declare class WaterPass extends Pass {
|
|
4
|
+
material: ShaderMaterial;
|
|
5
|
+
fsQuad: FullScreenQuad;
|
|
6
|
+
factor: number;
|
|
7
|
+
time: number;
|
|
8
|
+
uniforms: any;
|
|
9
|
+
constructor();
|
|
10
|
+
render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget): void;
|
|
11
|
+
}
|
|
12
|
+
export { WaterPass };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
|
+
import { UniformsUtils, Vector2, ShaderMaterial } from 'three';
|
|
3
|
+
import { Pass, FullScreenQuad } from './Pass.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Simple underwater shader
|
|
7
|
+
*
|
|
8
|
+
|
|
9
|
+
parameters:
|
|
10
|
+
tex: texture
|
|
11
|
+
time: this should increase with time passing
|
|
12
|
+
factor: to what degree will the shader distort the screen
|
|
13
|
+
|
|
14
|
+
explaination:
|
|
15
|
+
the shader is quite simple
|
|
16
|
+
it chooses a center and start from there make pixels around it to "swell" then "shrink" then "swell"...
|
|
17
|
+
this is of course nothing really similar to underwater scene
|
|
18
|
+
but you can combine several this shaders together to create the effect you need...
|
|
19
|
+
And yes, this shader could be used for something other than underwater effect, for example, magnifier effect :)
|
|
20
|
+
|
|
21
|
+
* @author vergil Wang
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
class WaterPass extends Pass {
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
|
|
28
|
+
_defineProperty(this, "material", void 0);
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "fsQuad", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "factor", void 0);
|
|
33
|
+
|
|
34
|
+
_defineProperty(this, "time", void 0);
|
|
35
|
+
|
|
36
|
+
_defineProperty(this, "uniforms", void 0);
|
|
37
|
+
|
|
38
|
+
this.uniforms = UniformsUtils.clone({
|
|
39
|
+
tex: {
|
|
40
|
+
value: null
|
|
41
|
+
},
|
|
42
|
+
time: {
|
|
43
|
+
value: 0.0
|
|
44
|
+
},
|
|
45
|
+
factor: {
|
|
46
|
+
value: 0.0
|
|
47
|
+
},
|
|
48
|
+
resolution: {
|
|
49
|
+
value: new Vector2(64, 64)
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
this.material = new ShaderMaterial({
|
|
53
|
+
uniforms: this.uniforms,
|
|
54
|
+
vertexShader: `
|
|
55
|
+
varying vec2 vUv;
|
|
56
|
+
void main(){
|
|
57
|
+
vUv = uv;
|
|
58
|
+
vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0);
|
|
59
|
+
gl_Position = projectionMatrix * modelViewPosition;
|
|
60
|
+
}`,
|
|
61
|
+
fragmentShader: `
|
|
62
|
+
uniform float time;
|
|
63
|
+
uniform float factor;
|
|
64
|
+
uniform vec2 resolution;
|
|
65
|
+
uniform sampler2D tex;
|
|
66
|
+
varying vec2 vUv;
|
|
67
|
+
void main() {
|
|
68
|
+
vec2 uv1 = vUv;
|
|
69
|
+
vec2 uv = gl_FragCoord.xy/resolution.xy;
|
|
70
|
+
float frequency = 6.0 * factor;
|
|
71
|
+
float amplitude = 0.015 * factor;
|
|
72
|
+
float x = uv1.y * frequency + time * .7;
|
|
73
|
+
float y = uv1.x * frequency + time * .3;
|
|
74
|
+
uv1.x += cos(x+y) * amplitude * cos(y);
|
|
75
|
+
uv1.y += sin(x-y) * amplitude * cos(y);
|
|
76
|
+
vec4 rgba = texture2D(tex, uv1);
|
|
77
|
+
gl_FragColor = rgba;
|
|
78
|
+
}`
|
|
79
|
+
});
|
|
80
|
+
this.fsQuad = new FullScreenQuad(this.material);
|
|
81
|
+
this.factor = 0;
|
|
82
|
+
this.time = 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
render(renderer, writeBuffer, readBuffer) {
|
|
86
|
+
this.uniforms['tex'].value = readBuffer.texture;
|
|
87
|
+
this.uniforms['time'].value = this.time;
|
|
88
|
+
this.uniforms['factor'].value = this.factor;
|
|
89
|
+
|
|
90
|
+
if (this.renderToScreen) {
|
|
91
|
+
renderer.setRenderTarget(null);
|
|
92
|
+
this.fsQuad.render(renderer);
|
|
93
|
+
} else {
|
|
94
|
+
renderer.setRenderTarget(writeBuffer);
|
|
95
|
+
if (this.clear) renderer.clear();
|
|
96
|
+
this.fsQuad.render(renderer);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export { WaterPass };
|