Browse Source

MMDLoader supports Effect

* MMDLoader supports Effect

* Fix typo
Takahiro 9 years ago
parent
commit
fecac1921c
1 changed files with 28 additions and 2 deletions
  1. 28 2
      examples/js/loaders/MMDLoader.js

+ 28 - 2
examples/js/loaders/MMDLoader.js

@@ -4022,6 +4022,7 @@ THREE.MMDGrantSolver.prototype = {
 THREE.MMDHelper = function ( renderer ) {
 
 	this.renderer = renderer;
+	this.effect = null;
 
 	this.meshes = [];
 
@@ -4070,6 +4071,17 @@ THREE.MMDHelper.prototype = {
 
 	},
 
+	/*
+	 * Note: There may be a possibility that Outline wouldn't work well with Effect.
+	 *       In such a case, try to set doOutlineDrawing = false or
+	 *       manually comment out renderer.clear() in *Effect.render().
+	 */
+	setEffect: function ( effect ) {
+
+		this.effect = effect;
+
+	},
+
 	setAudio: function ( audio, listener, params ) {
 
 		this.audioManager = new THREE.MMDAudioManager( audio, listener, params );
@@ -4385,7 +4397,7 @@ THREE.MMDHelper.prototype = {
 	renderMain: function ( scene, camera ) {
 
 		this.setupMainRendering();
-		this.renderer.render( scene, camera );
+		this.callRender( scene, camera );
 
 	},
 
@@ -4395,12 +4407,26 @@ THREE.MMDHelper.prototype = {
 		this.renderer.shadowMap.enabled = false;
 
 		this.setupOutlineRendering();
-		this.renderer.render( scene, camera );
+		this.callRender( scene, camera );
 
 		this.renderer.shadowMap.enabled = tmpEnabled;
 
 	},
 
+	callRender: function ( scene, camera ) {
+
+		if ( this.effect === null ) {
+
+			this.renderer.render( scene, camera );
+
+		} else {
+
+			this.effect.render( scene, camera );
+
+		}
+
+	},
+
 	setupMainRendering: function () {
 
 		for ( var i = 0; i < this.meshes.length; i++ ) {