three-stdlib 2.24.0 → 2.24.2

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.
@@ -62,7 +62,7 @@ class AnaglyphEffect {
62
62
  " color.r, color.g, color.b,",
63
63
  " max( colorL.a, colorR.a ) );",
64
64
  " #include <tonemapping_fragment>",
65
- " #include <encodings_fragment>",
65
+ ` #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>`,
66
66
  "}"
67
67
  ].join("\n")
68
68
  });
@@ -1,4 +1,4 @@
1
- import { Matrix3, OrthographicCamera, Scene, StereoCamera, LinearFilter, NearestFilter, RGBAFormat, WebGLRenderTarget, ShaderMaterial, Mesh, PlaneGeometry } from "three";
1
+ import { Matrix3, OrthographicCamera, Scene, StereoCamera, LinearFilter, NearestFilter, RGBAFormat, WebGLRenderTarget, ShaderMaterial, REVISION, Mesh, PlaneGeometry } from "three";
2
2
  class AnaglyphEffect {
3
3
  constructor(renderer, width = 512, height = 512) {
4
4
  this.colorMatrixLeft = new Matrix3().fromArray([
@@ -60,7 +60,7 @@ class AnaglyphEffect {
60
60
  " color.r, color.g, color.b,",
61
61
  " max( colorL.a, colorR.a ) );",
62
62
  " #include <tonemapping_fragment>",
63
- " #include <encodings_fragment>",
63
+ ` #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>`,
64
64
  "}"
65
65
  ].join("\n")
66
66
  });
@@ -69,7 +69,7 @@ class OutlineEffect {
69
69
  " #include <logdepthbuf_fragment>",
70
70
  " gl_FragColor = vec4( outlineColor, outlineAlpha );",
71
71
  " #include <tonemapping_fragment>",
72
- " #include <encodings_fragment>",
72
+ ` #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>`,
73
73
  " #include <fog_fragment>",
74
74
  " #include <premultiplied_alpha_fragment>",
75
75
  "}"
@@ -1,4 +1,4 @@
1
- import { Color, ShaderMaterial, UniformsUtils, UniformsLib, BackSide } from "three";
1
+ import { Color, REVISION, ShaderMaterial, UniformsUtils, UniformsLib, BackSide } from "three";
2
2
  class OutlineEffect {
3
3
  constructor(renderer, parameters = {}) {
4
4
  this.enabled = true;
@@ -67,7 +67,7 @@ class OutlineEffect {
67
67
  " #include <logdepthbuf_fragment>",
68
68
  " gl_FragColor = vec4( outlineColor, outlineAlpha );",
69
69
  " #include <tonemapping_fragment>",
70
- " #include <encodings_fragment>",
70
+ ` #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>`,
71
71
  " #include <fog_fragment>",
72
72
  " #include <premultiplied_alpha_fragment>",
73
73
  "}"
@@ -33,7 +33,7 @@ class ParallaxBarrierEffect {
33
33
  " gl_FragColor = texture2D( mapRight, uv );",
34
34
  " }",
35
35
  " #include <tonemapping_fragment>",
36
- " #include <encodings_fragment>",
36
+ ` #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>`,
37
37
  "}"
38
38
  ].join("\n")
39
39
  });
@@ -1,4 +1,4 @@
1
- import { OrthographicCamera, Scene, StereoCamera, LinearFilter, NearestFilter, RGBAFormat, WebGLRenderTarget, ShaderMaterial, Mesh, PlaneGeometry } from "three";
1
+ import { OrthographicCamera, Scene, StereoCamera, LinearFilter, NearestFilter, RGBAFormat, WebGLRenderTarget, ShaderMaterial, REVISION, Mesh, PlaneGeometry } from "three";
2
2
  class ParallaxBarrierEffect {
3
3
  constructor(renderer) {
4
4
  const _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);
@@ -31,7 +31,7 @@ class ParallaxBarrierEffect {
31
31
  " gl_FragColor = texture2D( mapRight, uv );",
32
32
  " }",
33
33
  " #include <tonemapping_fragment>",
34
- " #include <encodings_fragment>",
34
+ ` #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>`,
35
35
  "}"
36
36
  ].join("\n")
37
37
  });
@@ -409,7 +409,7 @@ class LineMaterial extends THREE.ShaderMaterial {
409
409
  gl_FragColor = vec4( diffuseColor.rgb, alpha );
410
410
 
411
411
  #include <tonemapping_fragment>
412
- #include <encodings_fragment>
412
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
413
413
  #include <fog_fragment>
414
414
  #include <premultiplied_alpha_fragment>
415
415
 
@@ -1,4 +1,4 @@
1
- import { ShaderMaterial, UniformsUtils, UniformsLib, Vector2 } from "three";
1
+ import { ShaderMaterial, UniformsUtils, UniformsLib, Vector2, REVISION } from "three";
2
2
  class LineMaterial extends ShaderMaterial {
3
3
  constructor(parameters) {
4
4
  super({
@@ -407,7 +407,7 @@ class LineMaterial extends ShaderMaterial {
407
407
  gl_FragColor = vec4( diffuseColor.rgb, alpha );
408
408
 
409
409
  #include <tonemapping_fragment>
410
- #include <encodings_fragment>
410
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
411
411
  #include <fog_fragment>
412
412
  #include <premultiplied_alpha_fragment>
413
413
 
@@ -107,7 +107,7 @@ class LDrawConditionalLineMaterial extends THREE.ShaderMaterial {
107
107
  outgoingLight = diffuseColor.rgb; // simple shader
108
108
  gl_FragColor = vec4(outgoingLight, diffuseColor.a);
109
109
  #include <tonemapping_fragment>
110
- #include <encodings_fragment>
110
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
111
111
  #include <fog_fragment>
112
112
  #include <premultiplied_alpha_fragment>
113
113
  }
@@ -1,4 +1,4 @@
1
- import { Vector3, ShaderMaterial, UniformsUtils, UniformsLib, Color, LineSegments, Ray, FileLoader, Matrix4, Group, BufferGeometry, BufferAttribute, Mesh, Loader, MeshStandardMaterial, LineBasicMaterial } from "three";
1
+ import { Vector3, ShaderMaterial, UniformsUtils, UniformsLib, Color, REVISION, LineSegments, Ray, FileLoader, Matrix4, Group, BufferGeometry, BufferAttribute, Mesh, Loader, MeshStandardMaterial, LineBasicMaterial } from "three";
2
2
  const FINISH_TYPE_DEFAULT = 0;
3
3
  const FINISH_TYPE_CHROME = 1;
4
4
  const FINISH_TYPE_PEARLESCENT = 2;
@@ -105,7 +105,7 @@ class LDrawConditionalLineMaterial extends ShaderMaterial {
105
105
  outgoingLight = diffuseColor.rgb; // simple shader
106
106
  gl_FragColor = vec4(outgoingLight, diffuseColor.a);
107
107
  #include <tonemapping_fragment>
108
- #include <encodings_fragment>
108
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
109
109
  #include <fog_fragment>
110
110
  #include <premultiplied_alpha_fragment>
111
111
  }
@@ -101,7 +101,7 @@ class GroundProjectedEnv extends THREE.Mesh {
101
101
  #endif
102
102
  gl_FragColor = vec4( outcolor, 1.0 );
103
103
  #include <tonemapping_fragment>
104
- #include <encodings_fragment>
104
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
105
105
  }
106
106
  `;
107
107
  const uniforms = {
@@ -1,4 +1,4 @@
1
- import { Mesh, IcosahedronGeometry, ShaderMaterial, DoubleSide } from "three";
1
+ import { Mesh, REVISION, IcosahedronGeometry, ShaderMaterial, DoubleSide } from "three";
2
2
  const isCubeTexture = (def) => def && def.isCubeTexture;
3
3
  class GroundProjectedEnv extends Mesh {
4
4
  constructor(texture, options) {
@@ -99,7 +99,7 @@ class GroundProjectedEnv extends Mesh {
99
99
  #endif
100
100
  gl_FragColor = vec4( outcolor, 1.0 );
101
101
  #include <tonemapping_fragment>
102
- #include <encodings_fragment>
102
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
103
103
  }
104
104
  `;
105
105
  const uniforms = {
@@ -194,7 +194,7 @@ __publicField(Reflector, "ReflectorShader", {
194
194
  gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
195
195
 
196
196
  #include <tonemapping_fragment>
197
- #include <encodings_fragment>
197
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
198
198
 
199
199
  }`
200
200
  )
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { Mesh, PerspectiveCamera, Color, Plane, Vector3, Matrix4, Vector4, WebGLRenderTarget, HalfFloatType, ShaderMaterial, UniformsUtils, NoToneMapping } from "three";
7
+ import { Mesh, REVISION, PerspectiveCamera, Color, Plane, Vector3, Matrix4, Vector4, WebGLRenderTarget, HalfFloatType, ShaderMaterial, UniformsUtils, NoToneMapping } from "three";
8
8
  const _Reflector = class extends Mesh {
9
9
  constructor(geometry, options = {}) {
10
10
  super(geometry);
@@ -192,7 +192,7 @@ __publicField(Reflector, "ReflectorShader", {
192
192
  gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
193
193
 
194
194
  #include <tonemapping_fragment>
195
- #include <encodings_fragment>
195
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
196
196
 
197
197
  }`
198
198
  )
@@ -207,7 +207,7 @@ __publicField(Refractor, "RefractorShader", {
207
207
  gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
208
208
 
209
209
  #include <tonemapping_fragment>
210
- #include <encodings_fragment>
210
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
211
211
 
212
212
  }`
213
213
  )
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { Mesh, PerspectiveCamera, Color, Plane, Matrix4, WebGLRenderTarget, HalfFloatType, ShaderMaterial, UniformsUtils, Vector3, Quaternion, Vector4, NoToneMapping } from "three";
7
+ import { Mesh, REVISION, PerspectiveCamera, Color, Plane, Matrix4, WebGLRenderTarget, HalfFloatType, ShaderMaterial, UniformsUtils, Vector3, Quaternion, Vector4, NoToneMapping } from "three";
8
8
  const _Refractor = class extends Mesh {
9
9
  constructor(geometry, options = {}) {
10
10
  super(geometry);
@@ -205,7 +205,7 @@ __publicField(Refractor, "RefractorShader", {
205
205
  gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
206
206
 
207
207
  #include <tonemapping_fragment>
208
- #include <encodings_fragment>
208
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
209
209
 
210
210
  }`
211
211
  )
package/objects/Sky.cjs CHANGED
@@ -176,7 +176,7 @@ const SkyShader = {
176
176
  gl_FragColor = vec4( retColor, 1.0 );
177
177
 
178
178
  #include <tonemapping_fragment>
179
- #include <encodings_fragment>
179
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
180
180
 
181
181
  }
182
182
  `
package/objects/Sky.js CHANGED
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { Vector3, ShaderMaterial, UniformsUtils, BackSide, Mesh, BoxGeometry } from "three";
7
+ import { Vector3, REVISION, ShaderMaterial, UniformsUtils, BackSide, Mesh, BoxGeometry } from "three";
8
8
  const SkyShader = {
9
9
  uniforms: {
10
10
  turbidity: { value: 2 },
@@ -174,7 +174,7 @@ const SkyShader = {
174
174
  gl_FragColor = vec4( retColor, 1.0 );
175
175
 
176
176
  #include <tonemapping_fragment>
177
- #include <encodings_fragment>
177
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
178
178
 
179
179
  }
180
180
  `
package/objects/Water.cjs CHANGED
@@ -150,7 +150,7 @@ class Water extends THREE.Mesh {
150
150
  gl_FragColor = vec4( outgoingLight, alpha );
151
151
 
152
152
  #include <tonemapping_fragment>
153
- #include <encodings_fragment>
153
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
154
154
  #include <fog_fragment>
155
155
  }`
156
156
  )
package/objects/Water.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Mesh, Vector3, Color, FrontSide, Plane, Matrix4, Vector4, PerspectiveCamera, WebGLRenderTarget, UniformsUtils, UniformsLib, ShaderMaterial } from "three";
1
+ import { Mesh, Vector3, Color, FrontSide, Plane, Matrix4, Vector4, PerspectiveCamera, WebGLRenderTarget, UniformsUtils, UniformsLib, REVISION, ShaderMaterial } from "three";
2
2
  class Water extends Mesh {
3
3
  constructor(geometry, options = {}) {
4
4
  super(geometry);
@@ -148,7 +148,7 @@ class Water extends Mesh {
148
148
  gl_FragColor = vec4( outgoingLight, alpha );
149
149
 
150
150
  #include <tonemapping_fragment>
151
- #include <encodings_fragment>
151
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
152
152
  #include <fog_fragment>
153
153
  }`
154
154
  )
@@ -247,7 +247,7 @@ __publicField(Water2, "WaterShader", {
247
247
  gl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance );
248
248
 
249
249
  #include <tonemapping_fragment>
250
- #include <encodings_fragment>
250
+ #include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
251
251
  #include <fog_fragment>
252
252
 
253
253
  }`
package/objects/Water2.js CHANGED
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { Mesh, Vector4, Color, Vector2, Matrix4, Clock, ShaderMaterial, UniformsUtils, UniformsLib, RepeatWrapping } from "three";
7
+ import { Mesh, Vector4, REVISION, Color, Vector2, Matrix4, Clock, ShaderMaterial, UniformsUtils, UniformsLib, RepeatWrapping } from "three";
8
8
  import { Reflector } from "./Reflector.js";
9
9
  import { Refractor } from "./Refractor.js";
10
10
  const _Water2 = class extends Mesh {
@@ -245,7 +245,7 @@ __publicField(Water2, "WaterShader", {
245
245
  gl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance );
246
246
 
247
247
  #include <tonemapping_fragment>
248
- #include <encodings_fragment>
248
+ #include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
249
249
  #include <fog_fragment>
250
250
 
251
251
  }`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-stdlib",
3
- "version": "2.24.0",
3
+ "version": "2.24.2",
4
4
  "description": "stand-alone library of threejs examples",
5
5
  "keywords": [
6
6
  "three",
@@ -59,6 +59,7 @@ class EffectComposer {
59
59
  console.error("THREE.EffectComposer relies on ShaderPass");
60
60
  }
61
61
  this.copyPass = new ShaderPass.ShaderPass(CopyShader.CopyShader);
62
+ this.copyPass.material.blending = THREE.NoBlending;
62
63
  this.clock = new THREE.Clock();
63
64
  }
64
65
  swapBuffers() {
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { LinearFilter, RGBAFormat, Vector2, WebGLRenderTarget, Clock } from "three";
7
+ import { LinearFilter, RGBAFormat, Vector2, WebGLRenderTarget, NoBlending, Clock } from "three";
8
8
  import { CopyShader } from "../shaders/CopyShader.js";
9
9
  import { ShaderPass } from "./ShaderPass.js";
10
10
  import { MaskPass, ClearMaskPass } from "./MaskPass.js";
@@ -57,6 +57,7 @@ class EffectComposer {
57
57
  console.error("THREE.EffectComposer relies on ShaderPass");
58
58
  }
59
59
  this.copyPass = new ShaderPass(CopyShader);
60
+ this.copyPass.material.blending = NoBlending;
60
61
  this.clock = new Clock();
61
62
  }
62
63
  swapBuffers() {
@@ -22,13 +22,8 @@ class SSAARenderPass extends Pass.Pass {
22
22
  transparent: true,
23
23
  depthTest: false,
24
24
  depthWrite: false,
25
- // do not use AdditiveBlending because it mixes the alpha channel instead of adding
26
- blending: THREE.CustomBlending,
27
- blendEquation: THREE.AddEquation,
28
- blendDst: THREE.OneFactor,
29
- blendDstAlpha: THREE.OneFactor,
30
- blendSrc: THREE.SrcAlphaFactor,
31
- blendSrcAlpha: THREE.OneFactor
25
+ premultipliedAlpha: true,
26
+ blending: THREE.AdditiveBlending
32
27
  });
33
28
  this.fsQuad = new Pass.FullScreenQuad(this.copyMaterial);
34
29
  }
@@ -1,4 +1,4 @@
1
- import { Color, UniformsUtils, ShaderMaterial, CustomBlending, AddEquation, OneFactor, SrcAlphaFactor, WebGLRenderTarget, HalfFloatType } from "three";
1
+ import { Color, UniformsUtils, ShaderMaterial, AdditiveBlending, WebGLRenderTarget, HalfFloatType } from "three";
2
2
  import { Pass, FullScreenQuad } from "./Pass.js";
3
3
  import { CopyShader } from "../shaders/CopyShader.js";
4
4
  class SSAARenderPass extends Pass {
@@ -20,13 +20,8 @@ class SSAARenderPass extends Pass {
20
20
  transparent: true,
21
21
  depthTest: false,
22
22
  depthWrite: false,
23
- // do not use AdditiveBlending because it mixes the alpha channel instead of adding
24
- blending: CustomBlending,
25
- blendEquation: AddEquation,
26
- blendDst: OneFactor,
27
- blendDstAlpha: OneFactor,
28
- blendSrc: SrcAlphaFactor,
29
- blendSrcAlpha: OneFactor
23
+ premultipliedAlpha: true,
24
+ blending: AdditiveBlending
30
25
  });
31
26
  this.fsQuad = new FullScreenQuad(this.copyMaterial);
32
27
  }
@@ -14,7 +14,8 @@ class SavePass extends Pass.Pass {
14
14
  this.material = new THREE.ShaderMaterial({
15
15
  uniforms: this.uniforms,
16
16
  vertexShader: shader.vertexShader,
17
- fragmentShader: shader.fragmentShader
17
+ fragmentShader: shader.fragmentShader,
18
+ blending: THREE.NoBlending
18
19
  });
19
20
  this.renderTarget = renderTarget;
20
21
  if (this.renderTarget === void 0) {
@@ -1,4 +1,4 @@
1
- import { UniformsUtils, ShaderMaterial, WebGLRenderTarget } from "three";
1
+ import { UniformsUtils, ShaderMaterial, NoBlending, WebGLRenderTarget } from "three";
2
2
  import { Pass, FullScreenQuad } from "./Pass.js";
3
3
  import { CopyShader } from "../shaders/CopyShader.js";
4
4
  class SavePass extends Pass {
@@ -12,7 +12,8 @@ class SavePass extends Pass {
12
12
  this.material = new ShaderMaterial({
13
13
  uniforms: this.uniforms,
14
14
  vertexShader: shader.vertexShader,
15
- fragmentShader: shader.fragmentShader
15
+ fragmentShader: shader.fragmentShader,
16
+ blending: NoBlending
16
17
  });
17
18
  this.renderTarget = renderTarget;
18
19
  if (this.renderTarget === void 0) {
@@ -7,6 +7,7 @@ class TAARenderPass extends SSAARenderPass.SSAARenderPass {
7
7
  super(scene, camera, clearColor, clearAlpha);
8
8
  this.sampleLevel = 0;
9
9
  this.accumulate = false;
10
+ this.accumulateIndex = -1;
10
11
  }
11
12
  render(renderer, writeBuffer, readBuffer, deltaTime) {
12
13
  if (this.accumulate === false) {
@@ -29,6 +30,8 @@ class TAARenderPass extends SSAARenderPass.SSAARenderPass {
29
30
  }
30
31
  const autoClear = renderer.autoClear;
31
32
  renderer.autoClear = false;
33
+ renderer.getClearColor(this._oldClearColor);
34
+ const oldClearAlpha = renderer.getClearAlpha();
32
35
  const sampleWeight = 1 / jitterOffsets.length;
33
36
  if (this.accumulateIndex >= 0 && this.accumulateIndex < jitterOffsets.length) {
34
37
  this.copyUniforms["opacity"].value = sampleWeight;
@@ -49,11 +52,14 @@ class TAARenderPass extends SSAARenderPass.SSAARenderPass {
49
52
  );
50
53
  }
51
54
  renderer.setRenderTarget(writeBuffer);
55
+ renderer.setClearColor(this.clearColor, this.clearAlpha);
52
56
  renderer.clear();
53
57
  renderer.render(this.scene, this.camera);
54
58
  renderer.setRenderTarget(this.sampleRenderTarget);
55
- if (this.accumulateIndex === 0)
59
+ if (this.accumulateIndex === 0) {
60
+ renderer.setClearColor(0, 0);
56
61
  renderer.clear();
62
+ }
57
63
  this.fsQuad.render(renderer);
58
64
  this.accumulateIndex++;
59
65
  if (this.accumulateIndex >= jitterOffsets.length)
@@ -62,6 +68,7 @@ class TAARenderPass extends SSAARenderPass.SSAARenderPass {
62
68
  if (this.camera.clearViewOffset)
63
69
  this.camera.clearViewOffset();
64
70
  }
71
+ renderer.setClearColor(this.clearColor, this.clearAlpha);
65
72
  const accumulationWeight = this.accumulateIndex * sampleWeight;
66
73
  if (accumulationWeight > 0) {
67
74
  this.copyUniforms["opacity"].value = 1;
@@ -74,11 +81,10 @@ class TAARenderPass extends SSAARenderPass.SSAARenderPass {
74
81
  this.copyUniforms["opacity"].value = 1 - accumulationWeight;
75
82
  this.copyUniforms["tDiffuse"].value = this.holdRenderTarget.texture;
76
83
  renderer.setRenderTarget(writeBuffer);
77
- if (accumulationWeight === 0)
78
- renderer.clear();
79
84
  this.fsQuad.render(renderer);
80
85
  }
81
86
  renderer.autoClear = autoClear;
87
+ renderer.setClearColor(this._oldClearColor, oldClearAlpha);
82
88
  }
83
89
  dispose() {
84
90
  super.dispose();
@@ -5,6 +5,7 @@ class TAARenderPass extends SSAARenderPass {
5
5
  super(scene, camera, clearColor, clearAlpha);
6
6
  this.sampleLevel = 0;
7
7
  this.accumulate = false;
8
+ this.accumulateIndex = -1;
8
9
  }
9
10
  render(renderer, writeBuffer, readBuffer, deltaTime) {
10
11
  if (this.accumulate === false) {
@@ -27,6 +28,8 @@ class TAARenderPass extends SSAARenderPass {
27
28
  }
28
29
  const autoClear = renderer.autoClear;
29
30
  renderer.autoClear = false;
31
+ renderer.getClearColor(this._oldClearColor);
32
+ const oldClearAlpha = renderer.getClearAlpha();
30
33
  const sampleWeight = 1 / jitterOffsets.length;
31
34
  if (this.accumulateIndex >= 0 && this.accumulateIndex < jitterOffsets.length) {
32
35
  this.copyUniforms["opacity"].value = sampleWeight;
@@ -47,11 +50,14 @@ class TAARenderPass extends SSAARenderPass {
47
50
  );
48
51
  }
49
52
  renderer.setRenderTarget(writeBuffer);
53
+ renderer.setClearColor(this.clearColor, this.clearAlpha);
50
54
  renderer.clear();
51
55
  renderer.render(this.scene, this.camera);
52
56
  renderer.setRenderTarget(this.sampleRenderTarget);
53
- if (this.accumulateIndex === 0)
57
+ if (this.accumulateIndex === 0) {
58
+ renderer.setClearColor(0, 0);
54
59
  renderer.clear();
60
+ }
55
61
  this.fsQuad.render(renderer);
56
62
  this.accumulateIndex++;
57
63
  if (this.accumulateIndex >= jitterOffsets.length)
@@ -60,6 +66,7 @@ class TAARenderPass extends SSAARenderPass {
60
66
  if (this.camera.clearViewOffset)
61
67
  this.camera.clearViewOffset();
62
68
  }
69
+ renderer.setClearColor(this.clearColor, this.clearAlpha);
63
70
  const accumulationWeight = this.accumulateIndex * sampleWeight;
64
71
  if (accumulationWeight > 0) {
65
72
  this.copyUniforms["opacity"].value = 1;
@@ -72,11 +79,10 @@ class TAARenderPass extends SSAARenderPass {
72
79
  this.copyUniforms["opacity"].value = 1 - accumulationWeight;
73
80
  this.copyUniforms["tDiffuse"].value = this.holdRenderTarget.texture;
74
81
  renderer.setRenderTarget(writeBuffer);
75
- if (accumulationWeight === 0)
76
- renderer.clear();
77
82
  this.fsQuad.render(renderer);
78
83
  }
79
84
  renderer.autoClear = autoClear;
85
+ renderer.setClearColor(this._oldClearColor, oldClearAlpha);
80
86
  }
81
87
  dispose() {
82
88
  super.dispose();
@@ -15,7 +15,8 @@ class TexturePass extends Pass.Pass {
15
15
  vertexShader: shader.vertexShader,
16
16
  fragmentShader: shader.fragmentShader,
17
17
  depthTest: false,
18
- depthWrite: false
18
+ depthWrite: false,
19
+ premultipliedAlpha: true
19
20
  });
20
21
  this.needsSwap = false;
21
22
  this.fsQuad = new Pass.FullScreenQuad(null);
@@ -13,7 +13,8 @@ class TexturePass extends Pass {
13
13
  vertexShader: shader.vertexShader,
14
14
  fragmentShader: shader.fragmentShader,
15
15
  depthTest: false,
16
- depthWrite: false
16
+ depthWrite: false,
17
+ premultipliedAlpha: true
17
18
  });
18
19
  this.needsSwap = false;
19
20
  this.fsQuad = new FullScreenQuad(null);
@@ -560,7 +560,7 @@ class PackedPhongMaterial extends THREE.MeshPhongMaterial {
560
560
  THREE.ShaderChunk.envmap_fragment,
561
561
  "gl_FragColor = vec4( outgoingLight, diffuseColor.a );",
562
562
  THREE.ShaderChunk.tonemapping_fragment,
563
- THREE.ShaderChunk.encodings_fragment,
563
+ parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? THREE.ShaderChunk.colorspace_fragment : THREE.ShaderChunk.encodings_fragment,
564
564
  THREE.ShaderChunk.fog_fragment,
565
565
  THREE.ShaderChunk.premultiplied_alpha_fragment,
566
566
  THREE.ShaderChunk.dithering_fragment,
@@ -1,4 +1,4 @@
1
- import { BufferAttribute, Matrix4, Vector3, Matrix3, MeshPhongMaterial, UniformsUtils, ShaderLib, ShaderChunk } from "three";
1
+ import { BufferAttribute, Matrix4, Vector3, Matrix3, MeshPhongMaterial, UniformsUtils, ShaderLib, ShaderChunk, REVISION } from "three";
2
2
  var GeometryCompressionUtils = {
3
3
  /**
4
4
  * Make the input mesh.geometry's normal attribute encoded and compressed by 3 different methods.
@@ -558,7 +558,7 @@ class PackedPhongMaterial extends MeshPhongMaterial {
558
558
  ShaderChunk.envmap_fragment,
559
559
  "gl_FragColor = vec4( outgoingLight, diffuseColor.a );",
560
560
  ShaderChunk.tonemapping_fragment,
561
- ShaderChunk.encodings_fragment,
561
+ parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? ShaderChunk.colorspace_fragment : ShaderChunk.encodings_fragment,
562
562
  ShaderChunk.fog_fragment,
563
563
  ShaderChunk.premultiplied_alpha_fragment,
564
564
  ShaderChunk.dithering_fragment,