Browse Source

WebGLRenderer: Use pixelRatio 1 when rendering to RenderTarget. See #7451.

Mr.doob 9 years ago
parent
commit
5473ccef10
1 changed files with 12 additions and 3 deletions
  1. 12 3
      src/renderers/WebGLRenderer.js

+ 12 - 3
src/renderers/WebGLRenderer.js

@@ -80,6 +80,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 	// internal state cache
 
 	_currentProgram = null,
+	_currentRenderTarget = null,
 	_currentFramebuffer = null,
 	_currentMaterialId = - 1,
 	_currentGeometryProgram = '',
@@ -217,6 +218,12 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	//
 
+	function getTargetPixelRatio() {
+
+		return _currentRenderTarget === null ? pixelRatio : 1;
+
+	}
+
 	function glClearColor( r, g, b, a ) {
 
 		if ( _premultipliedAlpha === true ) {
@@ -843,7 +850,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			if ( material.wireframe === true ) {
 
-				state.setLineWidth( material.wireframeLinewidth * pixelRatio );
+				state.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );
 				renderer.setMode( _gl.LINES );
 
 			} else {
@@ -873,7 +880,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 			if ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material
 
-			state.setLineWidth( lineWidth * pixelRatio );
+			state.setLineWidth( lineWidth * getTargetPixelRatio() );
 
 			if ( object instanceof THREE.LineSegments ) {
 
@@ -1977,7 +1984,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		uniforms.psColor.value = material.color;
 		uniforms.opacity.value = material.opacity;
-		uniforms.size.value = material.size * pixelRatio;
+		uniforms.size.value = material.size * getTargetPixelRatio();
 		uniforms.scale.value = _canvas.height / 2.0; // TODO: Cache this.
 
 		uniforms.map.value = material.map;
@@ -3358,6 +3365,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	this.setRenderTarget = function ( renderTarget ) {
 
+		_currentRenderTarget = renderTarget;
+
 		if ( renderTarget && properties.get( renderTarget ).__webglFramebuffer === undefined ) {
 
 			setupRenderTarget( renderTarget );