浏览代码

WebGLDeferredRenderer: added antialias constructor parameter.

This mirrors WebGLRenderer: when "antialias = true" FXAA is enabled, by default it's disabled.

Unlike WebGLRenderer though antialiasing can be enabled / disabled in runtime:

renderer.setAntialias( true );
renderer.setAntialias( false );
alteredq 12 年之前
父节点
当前提交
8c5f2d32f2

+ 40 - 2
examples/js/renderers/WebGLDeferredRenderer.js

@@ -16,11 +16,13 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 
 	var brightness = parameters.brightness;
 
+	var antialias = parameters.antialias !== undefined ? parameters.antialias : false;
+
 	this.renderer = parameters.renderer;
 
 	if ( this.renderer === undefined ) {
 
-		this.renderer = new THREE.WebGLRenderer( { alpha: false } );
+		this.renderer = new THREE.WebGLRenderer( { alpha: false, antialias: false } );
 		this.renderer.setSize( width, height );
 		this.renderer.setClearColorHex( 0x000000, 0 );
 
@@ -459,7 +461,30 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 
 	};
 
-	//
+	// external API
+
+	this.setAntialias = function ( enabled ) {
+
+		antialias = enabled;
+
+		if ( antialias ) {
+
+			effectFXAA.enabled = true;
+			compositePass.renderToScreen = false;
+
+		} else {
+
+			effectFXAA.enabled = false;
+			compositePass.renderToScreen = true;
+		}
+
+	};
+
+	this.getAntialias = function () {
+
+		return antialias;
+
+	};
 
 	this.setSize = function ( width, height ) {
 
@@ -619,6 +644,8 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 
 	};
 
+	//
+
 	var createRenderTargets = function ( ) {
 
 		var rtParamsFloatLinear = { minFilter: THREE.NearestFilter, magFilter: THREE.LinearFilter, stencilBuffer: true,
@@ -694,6 +721,17 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 		compFinal.addPass( compositePass );
 		compFinal.addPass( effectFXAA );
 
+		if ( antialias ) {
+
+			effectFXAA.enabled = true;
+			compositePass.renderToScreen = false;
+
+		} else {
+
+			effectFXAA.enabled = false;
+			compositePass.renderToScreen = true;
+		}
+
 	};
 
 	// init

+ 1 - 1
examples/webgl_lights_deferred_animation.html

@@ -115,7 +115,7 @@
 
 				// renderer
 
-				renderer = new THREE.WebGLDeferredRenderer( { width: WIDTH, height: HEIGHT, scale: SCALE, brightness: 2 } );
+				renderer = new THREE.WebGLDeferredRenderer( { width: WIDTH, height: HEIGHT, scale: SCALE, brightness: 2, antialias: true } );
 
 				renderer.domElement.style.position = "absolute";
 				renderer.domElement.style.top = MARGIN + "px";

+ 1 - 1
examples/webgl_lights_deferred_pointlights.html

@@ -111,7 +111,7 @@
 
 				// renderer
 
-				renderer = new THREE.WebGLDeferredRenderer( { width: WIDTH, height: HEIGHT, scale: SCALE, brightness: 2 } );
+				renderer = new THREE.WebGLDeferredRenderer( { width: WIDTH, height: HEIGHT, scale: SCALE, brightness: 2, antialias: true } );
 
 				renderer.domElement.style.position = "absolute";
 				renderer.domElement.style.top = MARGIN + "px";