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 +1 -1
- package/pass/glow_pass.js +7 -3
- package/pass/glow_pass.ts +7 -3
package/package.json
CHANGED
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 =
|
|
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 =
|
|
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
|
|