@@ -15,10 +15,20 @@ THREE.EffectComposer = function ( renderer, renderTarget ) {
1515 stencilBuffer : false
1616 } ;
1717
18- var size = renderer . getDrawingBufferSize ( new THREE . Vector2 ( ) ) ;
19- renderTarget = new THREE . WebGLRenderTarget ( size . width , size . height , parameters ) ;
18+ var size = renderer . getSize ( new THREE . Vector2 ( ) ) ;
19+ this . _pixelRatio = renderer . getPixelRatio ( ) ;
20+ this . _width = size . width ;
21+ this . _height = size . height ;
22+
23+ renderTarget = new THREE . WebGLRenderTarget ( this . _width * this . _pixelRatio , this . _height * this . _pixelRatio , parameters ) ;
2024 renderTarget . texture . name = 'EffectComposer.rt1' ;
2125
26+ } else {
27+
28+ this . _pixelRatio = 1 ;
29+ this . _width = renderTarget . width ;
30+ this . _height = renderTarget . height ;
31+
2232 }
2333
2434 this . renderTarget1 = renderTarget ;
@@ -162,10 +172,13 @@ Object.assign( THREE.EffectComposer.prototype, {
162172
163173 if ( renderTarget === undefined ) {
164174
165- var size = this . renderer . getDrawingBufferSize ( new THREE . Vector2 ( ) ) ;
175+ var size = this . renderer . getSize ( new THREE . Vector2 ( ) ) ;
176+ this . _pixelRatio = this . renderer . getPixelRatio ( ) ;
177+ this . _width = size . width ;
178+ this . _height = size . height ;
166179
167180 renderTarget = this . renderTarget1 . clone ( ) ;
168- renderTarget . setSize ( size . width , size . height ) ;
181+ renderTarget . setSize ( this . _width * this . _pixelRatio , this . _height * this . _pixelRatio ) ;
169182
170183 }
171184
@@ -181,15 +194,29 @@ Object.assign( THREE.EffectComposer.prototype, {
181194
182195 setSize : function ( width , height ) {
183196
184- this . renderTarget1 . setSize ( width , height ) ;
185- this . renderTarget2 . setSize ( width , height ) ;
197+ this . _width = width ;
198+ this . _height = height ;
199+
200+ var effectiveWidth = this . _width * this . _pixelRatio ;
201+ var effectiveHeight = this . _height * this . _pixelRatio ;
202+
203+ this . renderTarget1 . setSize ( effectiveWidth , effectiveHeight ) ;
204+ this . renderTarget2 . setSize ( effectiveWidth , effectiveHeight ) ;
186205
187206 for ( var i = 0 ; i < this . passes . length ; i ++ ) {
188207
189- this . passes [ i ] . setSize ( width , height ) ;
208+ this . passes [ i ] . setSize ( effectiveWidth , effectiveHeight ) ;
190209
191210 }
192211
212+ } ,
213+
214+ setPixelRatio : function ( pixelRatio ) {
215+
216+ this . _pixelRatio = pixelRatio ;
217+
218+ this . setSize ( this . _width , this . _height ) ;
219+
193220 }
194221
195222} ) ;
0 commit comments