@@ -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