Skip to content

Commit 4a13895

Browse files
committed
Code cleanup.
1 parent 0510321 commit 4a13895

File tree

4 files changed

+23
-29
lines changed

4 files changed

+23
-29
lines changed

src/materials/OutlineBlendMaterial.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class OutlineBlendMaterial extends ShaderMaterial {
4343

4444
tDiffuse: new Uniform(null),
4545
tMask: new Uniform(null),
46-
tOutline: new Uniform(null),
46+
tEdges: new Uniform(null),
4747
tPattern: new Uniform(null),
4848

4949
edgeStrength: new Uniform(settings.edgeStrength),

src/materials/glsl/outline-blend/shader.frag

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
uniform sampler2D tDiffuse;
22
uniform sampler2D tMask;
3-
uniform sampler2D tOutline;
3+
uniform sampler2D tEdges;
44

55
uniform vec3 visibleEdgeColor;
66
uniform vec3 hiddenEdgeColor;
@@ -19,7 +19,7 @@ varying vec2 vUv;
1919
void main() {
2020

2121
vec4 color = texture2D(tDiffuse, vUv);
22-
vec2 outline = texture2D(tOutline, vUv).rg;
22+
vec2 edge = texture2D(tEdges, vUv).rg;
2323
vec2 mask = texture2D(tMask, vUv).rg;
2424

2525
#ifndef X_RAY
@@ -28,12 +28,12 @@ void main() {
2828

2929
#endif
3030

31-
outline *= (edgeStrength * mask.x * pulse);
32-
vec3 outlineColor = outline.x * visibleEdgeColor + outline.y * hiddenEdgeColor;
31+
edge *= (edgeStrength * mask.x * pulse);
32+
vec3 outlineColor = edge.x * visibleEdgeColor + edge.y * hiddenEdgeColor;
3333

3434
#ifdef ALPHA_BLENDING
3535

36-
color.rgb = mix(color.rgb, outlineColor, max(outline.x, outline.y));
36+
color.rgb = mix(color.rgb, outlineColor, max(edge.x, edge.y));
3737

3838
#else
3939

src/materials/glsl/outline-edges/shader.frag

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ void main() {
2020
float a1 = min(c2.y, c3.y);
2121
float visibilityFactor = min(a0, a1);
2222

23-
vec3 edgeColor = (1.0 - visibilityFactor > 0.001) ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);
24-
25-
gl_FragColor = vec4(edgeColor * d, d);
23+
gl_FragColor.rg = (1.0 - visibilityFactor > 0.001) ? vec2(d, 0.0) : vec2(0.0, d);
2624

2725
}

src/passes/OutlinePass.js

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export class OutlinePass extends Pass {
3333
* @param {PerspectiveCamera} camera - The main camera.
3434
* @param {Object} [options] - Additional parameters. See {@link BlurPass}, {@link OutlineBlendMaterial} and {@link OutlineEdgesMaterial} for details.
3535
* @param {Object} [options.pulseSpeed=0.0] - The pulse speed. A value of zero disables the pulse effect.
36+
* @param {Object} [options.blur=true] - Whether the outline should be blurry.
3637
*/
3738

3839
constructor(scene, camera, options = {}) {
@@ -78,10 +79,11 @@ export class OutlinePass extends Pass {
7879

7980
this.renderTargetDepth = new WebGLRenderTarget(1, 1, {
8081
minFilter: LinearFilter,
81-
magFilter: LinearFilter
82+
magFilter: LinearFilter,
83+
format: RGBFormat
8284
});
8385

84-
this.renderTargetDepth.texture.name = "GodRays.Depth";
86+
this.renderTargetDepth.texture.name = "Outline.Depth";
8587
this.renderTargetDepth.texture.generateMipmaps = false;
8688

8789
/**
@@ -93,7 +95,7 @@ export class OutlinePass extends Pass {
9395

9496
this.renderTargetMask = this.renderTargetDepth.clone();
9597

96-
this.renderTargetMask.texture.name = "GodRays.Mask";
98+
this.renderTargetMask.texture.name = "Outline.Mask";
9799

98100
/**
99101
* A render target for the edge detection.
@@ -106,10 +108,11 @@ export class OutlinePass extends Pass {
106108
minFilter: LinearFilter,
107109
magFilter: LinearFilter,
108110
stencilBuffer: false,
109-
depthBuffer: false
111+
depthBuffer: false,
112+
format: RGBFormat
110113
});
111114

112-
this.renderTargetEdges.texture.name = "GodRays.Edges";
115+
this.renderTargetEdges.texture.name = "Outline.Edges";
113116
this.renderTargetEdges.texture.generateMipmaps = false;
114117

115118
/**
@@ -119,9 +122,9 @@ export class OutlinePass extends Pass {
119122
* @private
120123
*/
121124

122-
this.renderTargetOutline = this.renderTargetEdges.clone();
125+
this.renderTargetBlurredEdges = this.renderTargetEdges.clone();
123126

124-
this.renderTargetOutline.texture.name = "GodRays.Outline";
127+
this.renderTargetBlurredEdges.texture.name = "Outline.BlurredEdges";
125128

126129
/**
127130
* A depth pass.
@@ -193,7 +196,8 @@ export class OutlinePass extends Pass {
193196

194197
this.outlineBlendMaterial = new OutlineBlendMaterial(options);
195198
this.outlineBlendMaterial.uniforms.tMask.value = this.renderTargetMask.texture;
196-
this.outlineBlendMaterial.uniforms.tOutline.value = this.renderTargetOutline.texture;
199+
200+
this.blur = (options.blur !== undefined) ? options.blur : true;
197201

198202
/**
199203
* A list of objects to outline.
@@ -300,8 +304,8 @@ export class OutlinePass extends Pass {
300304

301305
this.blurPass.enabled = value;
302306

303-
this.outlineBlendMaterial.uniforms.tOutline.value = value ?
304-
this.renderTargetOutline.texture :
307+
this.outlineBlendMaterial.uniforms.tEdges.value = value ?
308+
this.renderTargetBlurredEdges.texture :
305309
this.renderTargetEdges.texture;
306310

307311
}
@@ -525,7 +529,7 @@ export class OutlinePass extends Pass {
525529
if(this.blurPass.enabled) {
526530

527531
// Blur the edges.
528-
this.blurPass.render(renderer, this.renderTargetEdges, this.renderTargetOutline);
532+
this.blurPass.render(renderer, this.renderTargetEdges, this.renderTargetBlurredEdges);
529533

530534
}
531535

@@ -556,14 +560,6 @@ export class OutlinePass extends Pass {
556560
this.renderPassMask.initialize(renderer, alpha);
557561
this.blurPass.initialize(renderer, alpha);
558562

559-
if(!alpha) {
560-
561-
this.renderTargetMask.texture.format = RGBFormat;
562-
this.renderTargetEdges.texture.format = RGBFormat;
563-
this.renderTargetOutline.texture.format = RGBFormat;
564-
565-
}
566-
567563
}
568564

569565
/**
@@ -586,7 +582,7 @@ export class OutlinePass extends Pass {
586582
height = this.blurPass.height;
587583

588584
this.renderTargetEdges.setSize(width, height);
589-
this.renderTargetOutline.setSize(width, height);
585+
this.renderTargetBlurredEdges.setSize(width, height);
590586

591587
this.outlineBlendMaterial.uniforms.aspect.value = width / height;
592588
this.outlineEdgesMaterial.setTexelSize(1.0 / width, 1.0 / height);

0 commit comments

Comments
 (0)