three-base 2.0.9 → 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.9",
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
  }
@@ -399,13 +402,11 @@ export default function glow_pass(renderer, camera, object3d) {
399
402
  blurShader.uniforms.width.value = glow_width / 10;
400
403
  //一次描边
401
404
  renderer.setRenderTarget(blur1TextureTarget);
402
- blurShader.uniforms.width.value = 1;
403
405
  blurShader.uniforms.tDiffuse.value = selectTextureTarget.texture;
404
406
  blurShader.uniforms.opacity.value = 1.0;
405
407
  fsQuad.render(renderer, blurShader);
406
408
  //二次描边
407
409
  renderer.setRenderTarget(blur2TextureTarget);
408
- blurShader.uniforms.width.value = glow_width / 10;
409
410
  blurShader.uniforms.tDiffuse.value = blur1TextureTarget.texture;
410
411
  blurShader.uniforms.opacity.value = 0.9;
411
412
  fsQuad.render(renderer, blurShader);
@@ -457,6 +458,7 @@ export default function glow_pass(renderer, camera, object3d) {
457
458
  renderer.setRenderTarget(originRenderTarget);
458
459
  filterSelectShader.uniforms.selectTexture.value = selectTextureTarget.texture;
459
460
  filterSelectShader.uniforms.blurTexture.value = blur1TextureTarget.texture;
461
+ filterSelectShader.uniforms.opacity.value = glow_opacity;
460
462
  filterSelectShader.blending = NormalBlending; // 与有的纹理融合计算 保留前面通道传递下来的纹理
461
463
  fsQuad.render(renderer, filterSelectShader);
462
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;
@@ -414,39 +417,37 @@ export default function glow_pass(renderer: WebGLRenderer, camera: Camera, objec
414
417
  //描边颜色
415
418
  blurShader.uniforms.color.value.set(glow_color);
416
419
  blurShader.uniforms.width.value = glow_width / 10;
417
-
420
+
418
421
  //一次描边
419
422
  renderer.setRenderTarget(blur1TextureTarget);
420
- blurShader.uniforms.width.value = 1;
421
423
  blurShader.uniforms.tDiffuse.value = selectTextureTarget.texture;
422
424
  blurShader.uniforms.opacity.value = 1.0;
423
425
  fsQuad.render(renderer, blurShader);
424
-
426
+
425
427
  //二次描边
426
428
  renderer.setRenderTarget(blur2TextureTarget);
427
- blurShader.uniforms.width.value = glow_width / 10;
428
429
  blurShader.uniforms.tDiffuse.value = blur1TextureTarget.texture;
429
430
  blurShader.uniforms.opacity.value = 0.9;
430
431
  fsQuad.render(renderer, blurShader);
431
-
432
+
432
433
  //三次描边
433
434
  renderer.setRenderTarget(blur1TextureTarget);
434
435
  blurShader.uniforms.tDiffuse.value = blur2TextureTarget.texture;
435
436
  blurShader.uniforms.opacity.value = 0.8;
436
437
  fsQuad.render(renderer, blurShader);
437
-
438
+
438
439
  //四次描边
439
440
  renderer.setRenderTarget(blur2TextureTarget);
440
441
  blurShader.uniforms.tDiffuse.value = blur1TextureTarget.texture;
441
442
  blurShader.uniforms.opacity.value = 0.7;
442
443
  fsQuad.render(renderer, blurShader);
443
-
444
+
444
445
  //五次描边
445
446
  renderer.setRenderTarget(blur1TextureTarget);
446
447
  blurShader.uniforms.tDiffuse.value = blur2TextureTarget.texture;
447
448
  blurShader.uniforms.opacity.value = 0.6;
448
449
  fsQuad.render(renderer, blurShader);
449
-
450
+
450
451
  //六次描边
451
452
  renderer.setRenderTarget(blur2TextureTarget);
452
453
  blurShader.uniforms.tDiffuse.value = blur1TextureTarget.texture;
@@ -486,6 +487,7 @@ export default function glow_pass(renderer: WebGLRenderer, camera: Camera, objec
486
487
  renderer.setRenderTarget(originRenderTarget);
487
488
  filterSelectShader.uniforms.selectTexture.value = selectTextureTarget.texture;
488
489
  filterSelectShader.uniforms.blurTexture.value = blur1TextureTarget.texture;
490
+ filterSelectShader.uniforms.opacity.value = glow_opacity;
489
491
  filterSelectShader.blending = NormalBlending; // 与有的纹理融合计算 保留前面通道传递下来的纹理
490
492
  fsQuad.render(renderer, filterSelectShader);
491
493