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/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,6 +1,6 @@
1
1
  {
2
2
  "name": "three-stdlib",
3
- "version": "2.17.3",
3
+ "version": "2.18.0",
4
4
  "private": false,
5
5
  "description": "stand-alone library of threejs examples",
6
6
  "main": "index.cjs.js",
@@ -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,t){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;
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, maskActive: boolean): void;
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, maskActive) {
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 };
@@ -0,0 +1,4 @@
1
+ declare class FlakesTexture {
2
+ constructor(width?: number, height?: number);
3
+ }
4
+ export { FlakesTexture };