three-base 2.0.8 → 2.0.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "three 3d three-base",
5
5
  "repository": {
6
6
  "type": "git",
package/pass/glow_pass.js CHANGED
@@ -342,7 +342,8 @@ const blurShader = new RawShaderMaterial({
342
342
  const filterSelectShader = new RawShaderMaterial({
343
343
  uniforms: {
344
344
  selectTexture: { value: null },
345
- blurTexture: { value: null }
345
+ blurTexture: { value: null },
346
+ opacity: { value: 1 },
346
347
  },
347
348
  vertexShader: `
348
349
  attribute vec3 position;
@@ -359,11 +360,13 @@ const filterSelectShader = new RawShaderMaterial({
359
360
  #endif
360
361
  uniform sampler2D selectTexture;
361
362
  uniform sampler2D blurTexture;
363
+ uniform float opacity;
362
364
  varying vec2 vUv;
363
365
 
364
366
  void main() {
365
367
  gl_FragColor = texture2D(blurTexture, vUv);
366
368
  gl_FragColor.a -= (texture2D(selectTexture, vUv).a);
369
+ gl_FragColor.a *= opacity;
367
370
  }
368
371
  `,
369
372
  blending: NoBlending,
@@ -375,7 +378,7 @@ const filterSelectShader = new RawShaderMaterial({
375
378
  const scene = new Scene();
376
379
  // 对象发光
377
380
  export default function glow_pass(renderer, camera, object3d) {
378
- const { glow_enable = false, glow_color = "#04fa12", glow_width = 1 } = object3d.userData;
381
+ const { glow_enable = false, glow_color = "#04fa12", glow_width = 1, glow_opacity = 1 } = object3d.userData;
379
382
  if (!glow_enable || glow_width === 0) {
380
383
  return;
381
384
  }
@@ -419,7 +422,7 @@ export default function glow_pass(renderer, camera, object3d) {
419
422
  fsQuad.render(renderer, blurShader);
420
423
  //五次描边
421
424
  renderer.setRenderTarget(blur1TextureTarget);
422
- blurShader.uniforms.tDiffuse.value = selectTextureTarget.texture;
425
+ blurShader.uniforms.tDiffuse.value = blur2TextureTarget.texture;
423
426
  blurShader.uniforms.opacity.value = 0.6;
424
427
  fsQuad.render(renderer, blurShader);
425
428
  //六次描边
@@ -455,6 +458,7 @@ export default function glow_pass(renderer, camera, object3d) {
455
458
  renderer.setRenderTarget(originRenderTarget);
456
459
  filterSelectShader.uniforms.selectTexture.value = selectTextureTarget.texture;
457
460
  filterSelectShader.uniforms.blurTexture.value = blur1TextureTarget.texture;
461
+ filterSelectShader.uniforms.opacity.value = glow_opacity;
458
462
  filterSelectShader.blending = NormalBlending; // 与有的纹理融合计算 保留前面通道传递下来的纹理
459
463
  fsQuad.render(renderer, filterSelectShader);
460
464
  // 调试代码
package/pass/glow_pass.ts CHANGED
@@ -351,7 +351,8 @@ const blurShader = new RawShaderMaterial({
351
351
  const filterSelectShader = new RawShaderMaterial({
352
352
  uniforms: {
353
353
  selectTexture: { value: null },
354
- blurTexture: { value: null }
354
+ blurTexture: { value: null },
355
+ opacity: { value: 1 },
355
356
  },
356
357
  vertexShader: `
357
358
  attribute vec3 position;
@@ -368,11 +369,13 @@ const filterSelectShader = new RawShaderMaterial({
368
369
  #endif
369
370
  uniform sampler2D selectTexture;
370
371
  uniform sampler2D blurTexture;
372
+ uniform float opacity;
371
373
  varying vec2 vUv;
372
374
 
373
375
  void main() {
374
376
  gl_FragColor = texture2D(blurTexture, vUv);
375
377
  gl_FragColor.a -= (texture2D(selectTexture, vUv).a);
378
+ gl_FragColor.a *= opacity;
376
379
  }
377
380
  `,
378
381
  blending: NoBlending, // 渲染时不与背景融合计算 直接替换
@@ -387,7 +390,7 @@ const scene = new Scene();
387
390
  // 对象发光
388
391
  export default function glow_pass(renderer: WebGLRenderer, camera: Camera, object3d: Object3D) {
389
392
 
390
- const { glow_enable = false, glow_color = "#04fa12", glow_width = 1 } = object3d.userData;
393
+ const { glow_enable = false, glow_color = "#04fa12", glow_width = 1, glow_opacity = 1 } = object3d.userData;
391
394
 
392
395
  if (!glow_enable || glow_width === 0) {
393
396
  return;
@@ -441,7 +444,7 @@ export default function glow_pass(renderer: WebGLRenderer, camera: Camera, objec
441
444
 
442
445
  //五次描边
443
446
  renderer.setRenderTarget(blur1TextureTarget);
444
- blurShader.uniforms.tDiffuse.value = selectTextureTarget.texture;
447
+ blurShader.uniforms.tDiffuse.value = blur2TextureTarget.texture;
445
448
  blurShader.uniforms.opacity.value = 0.6;
446
449
  fsQuad.render(renderer, blurShader);
447
450
 
@@ -484,6 +487,7 @@ export default function glow_pass(renderer: WebGLRenderer, camera: Camera, objec
484
487
  renderer.setRenderTarget(originRenderTarget);
485
488
  filterSelectShader.uniforms.selectTexture.value = selectTextureTarget.texture;
486
489
  filterSelectShader.uniforms.blurTexture.value = blur1TextureTarget.texture;
490
+ filterSelectShader.uniforms.opacity.value = glow_opacity;
487
491
  filterSelectShader.blending = NormalBlending; // 与有的纹理融合计算 保留前面通道传递下来的纹理
488
492
  fsQuad.render(renderer, filterSelectShader);
489
493