three-base 2.0.110 → 2.0.111

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/Grass/grass.jpg CHANGED
Binary file
Binary file
Binary file
Binary file
package/Sky/skyMap.png CHANGED
Binary file
Binary file
package/ThreeBase.js CHANGED
@@ -55,7 +55,6 @@ export default class ThreeBase extends EventDispatcher {
55
55
  anisotropy: 16,
56
56
  colorSpace: SRGBColorSpace,
57
57
  });
58
- baseRenderTarget.texture.colorSpace = SRGBColorSpace;
59
58
  return baseRenderTarget;
60
59
  })();
61
60
  // 公用渲染目标1
@@ -83,7 +82,7 @@ export default class ThreeBase extends EventDispatcher {
83
82
  const renderer = new WebGLRenderer({
84
83
  alpha: true,
85
84
  antialias: false,
86
- precision: "lowp",
85
+ precision: "highp",
87
86
  logarithmicDepthBuffer: true,
88
87
  preserveDrawingBuffer: true,
89
88
  stencil: false, // 模版
@@ -567,8 +566,7 @@ export default class ThreeBase extends EventDispatcher {
567
566
  clearRendererTargte(rendererTarget) {
568
567
  const originTarget = this.renderer.getRenderTarget();
569
568
  this.renderer.setRenderTarget(rendererTarget);
570
- fullScreenMesh.material = clearShader;
571
- fullScreenMesh.render(this.renderer);
569
+ fullScreenMesh.render(this.renderer, clearShader);
572
570
  this.renderer.clearDepth();
573
571
  this.renderer.setRenderTarget(originTarget);
574
572
  }
@@ -580,11 +578,10 @@ export default class ThreeBase extends EventDispatcher {
580
578
  rendererTarget.setSize(this.tempVector2.x, this.tempVector2.y);
581
579
  }
582
580
  this.renderer.setRenderTarget(rendererTarget);
583
- fullScreenMesh.material = copyShader;
584
581
  copyShader.uniforms.map.value = texture;
585
582
  copyShader.uniforms.opacity.value = opactity;
586
583
  copyShader.blending = alpha ? NoBlending : NormalBlending;
587
- fullScreenMesh.render(this.renderer);
584
+ fullScreenMesh.render(this.renderer, copyShader);
588
585
  this.renderer.setRenderTarget(originTarget);
589
586
  }
590
587
  // 把对象绘制到渲染目标中
@@ -604,13 +601,12 @@ export default class ThreeBase extends EventDispatcher {
604
601
  this.renderer.setRenderTarget(this.renderTarget2);
605
602
  this.renderer.getSize(this.tempVector2);
606
603
  this.renderTarget2.setSize(this.tempVector2.x, this.tempVector2.y);
607
- fullScreenMesh.material = strokeShader;
608
604
  strokeShader.uniforms.map.value = rendererTarget.texture;
609
605
  strokeShader.uniforms.resolution.value.set(this.tempVector2.x, this.tempVector2.y);
610
606
  strokeShader.uniforms.strokeWidth.value = strockWidth;
611
607
  strokeShader.uniforms.strokeColor.value.set(color);
612
608
  strokeShader.uniforms.opacity.value = opacity;
613
- fullScreenMesh.render(this.renderer);
609
+ fullScreenMesh.render(this.renderer, strokeShader);
614
610
  this.copyTextureToRenderTarget(this.renderTarget2.texture, rendererTarget, true);
615
611
  this.renderer.setRenderTarget(originTarget);
616
612
  }
@@ -627,12 +623,11 @@ export default class ThreeBase extends EventDispatcher {
627
623
  this.renderer.setRenderTarget(this.renderTarget2);
628
624
  this.renderer.getSize(this.tempVector2);
629
625
  this.renderTarget2.setSize(this.tempVector2.x, this.tempVector2.y);
630
- fullScreenMesh.material = gaussBlurShader;
631
626
  gaussBlurShader.uniforms.map.value = rendererTarget.texture;
632
627
  gaussBlurShader.uniforms.radius.value = radius;
633
628
  gaussBlurShader.uniforms.opacity.value = opacity;
634
629
  gaussBlurShader.uniforms.resolution.value.set(this.tempVector2.x, this.tempVector2.y);
635
- fullScreenMesh.render(this.renderer);
630
+ fullScreenMesh.render(this.renderer, gaussBlurShader);
636
631
  this.copyTextureToRenderTarget(this.renderTarget2.texture, rendererTarget, true);
637
632
  this.renderer.setRenderTarget(originTarget);
638
633
  }
@@ -649,15 +644,13 @@ export default class ThreeBase extends EventDispatcher {
649
644
  renderRendererTarget(renderTarget) {
650
645
  baseTextureToRenderShader.uniforms.map.value = renderTarget.texture;
651
646
  baseTextureToRenderShader.uniforms.opacity.value = 1.0;
652
- fullScreenMesh.material = baseTextureToRenderShader;
653
- fullScreenMesh.render(this.renderer);
647
+ fullScreenMesh.render(this.renderer, baseTextureToRenderShader);
654
648
  }
655
649
  // 渲染纹理
656
650
  renderTexture(texture, alpha = false) {
657
651
  copyShader.uniforms.map.value = texture;
658
652
  copyShader.uniforms.opacity.value = 1.0;
659
- fullScreenMesh.material = copyShader;
660
653
  copyShader.blending = alpha ? NoBlending : NormalBlending;
661
- fullScreenMesh.render(this.renderer);
654
+ fullScreenMesh.render(this.renderer, copyShader);
662
655
  }
663
656
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "2.0.110",
3
+ "version": "2.0.111",
4
4
  "description": "three 3d three-base",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
package/shaders.d.ts CHANGED
@@ -1,12 +1,5 @@
1
- import { Mesh, OrthographicCamera, ShaderMaterial, WebGLRenderer } from "three";
2
- declare class FullScreenQuad {
3
- constructor();
4
- _mesh: Mesh;
5
- dispose(): void;
6
- render(renderer: WebGLRenderer): void;
7
- get material(): import("three").Material | import("three").Material[];
8
- set material(value: import("three").Material | import("three").Material[]);
9
- }
1
+ import { OrthographicCamera, ShaderMaterial } from "three";
2
+ import FullScreenQuad from "./pass/FullScreenQuad";
10
3
  export declare const fullScreenMesh: FullScreenQuad;
11
4
  export declare const orthographicCamera: OrthographicCamera;
12
5
  export declare const clearShader: ShaderMaterial;
@@ -15,4 +8,3 @@ export declare const copyShader: ShaderMaterial;
15
8
  export declare const baseTextureToRenderShader: ShaderMaterial;
16
9
  export declare const strokeShader: ShaderMaterial;
17
10
  export declare const gaussBlurShader: ShaderMaterial;
18
- export {};
package/shaders.js CHANGED
@@ -4,29 +4,8 @@
4
4
  * @Last Modified by: xiaosihan
5
5
  * @Last Modified time: 2022-04-02 18:28:38
6
6
  */
7
- import { BufferGeometry, Color, Float32BufferAttribute, Mesh, NoBlending, OrthographicCamera, ShaderChunk, ShaderMaterial, Vector2, } from "three";
8
- // https://github.com/mrdoob/three.js/pull/21358
9
- const _geometry = new BufferGeometry();
10
- _geometry.setAttribute("position", new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3));
11
- _geometry.setAttribute("uv", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));
12
- class FullScreenQuad {
13
- constructor() {
14
- this._mesh = new Mesh(_geometry);
15
- }
16
- _mesh;
17
- dispose() {
18
- this._mesh.geometry.dispose();
19
- }
20
- render(renderer) {
21
- renderer.render(this._mesh, orthographicCamera);
22
- }
23
- get material() {
24
- return this._mesh.material;
25
- }
26
- set material(value) {
27
- this._mesh.material = value;
28
- }
29
- }
7
+ import { Color, NoBlending, OrthographicCamera, ShaderChunk, ShaderMaterial, Vector2 } from "three";
8
+ import FullScreenQuad from "./pass/FullScreenQuad";
30
9
  // 常用着色器及工具
31
10
  // 全屏渲染模型
32
11
  export const fullScreenMesh = new FullScreenQuad();