Browse Source

Merge remote branch 'alteredq/master'

Mr.doob 14 years ago
parent
commit
195d9a3820

+ 8 - 5
examples/lights_pointlights_gl.html

@@ -54,7 +54,7 @@
 			var camera, scene, renderer,
 			particle1, particle2, particle2,
 			light1, light2, light3,
-			object;
+			object,loader;
 
 			init();
 			setInterval( loop, 1000 / 60 );
@@ -68,8 +68,10 @@
 
 				scene = new THREE.Scene();
 
-				var loader = new THREE.Loader();
+				loader = new THREE.Loader( true );
+				document.body.appendChild( loader.statusDomElement );
 				
+				/*
 				loader.loadAscii( "obj/walt/WaltHead_slim.js", function( geometry ) {
 				
 					//object = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( { ambient: 0x555555, color: 0x555555, specular: 0xffffff, shininess: 50, shading: THREE.FlatShading } )  );
@@ -79,18 +81,19 @@
 					scene.addObject( object );
 					
 				});
+				*/
 				
 
-				/*
 				loader.loadBinary( "obj/walt/WaltHead_bin.js", function( geometry ) {
 				
-					object = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( 0x555555, 0x555555, 0xffffff, 50, 1.0  )  );
+					object = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( { ambient: 0x555555, color: 0x555555, specular: 0xffffff, shininess: 50, shading: THREE.SmoothShading }  )  );
 					object.scale.x = object.scale.y = object.scale.z = 0.80;
 					object.overdraw = true;
 					scene.addObject( object );
 					
+					loader.statusDomElement.style.display = "none";
+					
 				}, "obj/walt");
-				*/
 				
 				/*
 				var directionalLight = new THREE.DirectionalLight( 0x111111, 0.9 );

+ 2 - 2
examples/materials_cars.html

@@ -154,7 +154,7 @@
 			var windowHalfX = window.innerWidth / 2;
 			var windowHalfY = window.innerHeight / 2;
 
-			var loader = new THREE.Loader();
+			var loader = new THREE.Loader( true );
 			document.body.appendChild( loader.statusDomElement );
 			
 			document.addEventListener('mousemove', onDocumentMouseMove, false);
@@ -542,7 +542,7 @@
 
 			function createScene( geometry, car ) {
 
-				$( "status" ).innerHTML = "Creating model ...";
+				loader.statusDomElement.innerHTML = "Creating model ...";
 
 				var m = new THREE.MeshFaceMaterial(),
 					s = CARS[ car ].scale * 1,

+ 65 - 0
src/materials/MeshShaderMaterial.js

@@ -0,0 +1,65 @@
+/**
+ * @author alteredq / http://alteredqualia.com/
+ *
+ * parameters = {
+ *  fragment_shader: <string>,
+ *  vertex_shader: <string>,
+ *  uniforms: [ "parameter1": value1, "parameter2": value2 ],
+ 
+ *  shading: THREE.SmoothShading,
+ *  blending: THREE.NormalBlending,
+ *  wireframe: <boolean>,
+ *  wireframe_linewidth: <float>
+ * }
+ */
+
+THREE.MeshShaderMaterial = function ( parameters ) {
+
+	this.id = THREE.MeshShaderMaterialCounter.value ++;
+
+	this.fragment_shader = "void main() {}";
+	this.vertex_shader = "void main() {}";
+    this.uniforms = {};
+
+	this.shading = THREE.SmoothShading;
+	this.blending = THREE.NormalBlending;
+
+	this.wireframe = false;
+	this.wireframe_linewidth = 1;
+	this.wireframe_linecap = 'round';
+	this.wireframe_linejoin = 'round';
+
+	if ( parameters ) {
+
+        if ( parameters.fragment_shader !== undefined ) this.fragment_shader = parameters.fragment_shader;
+        if ( parameters.vertex_shader !== undefined ) this.vertex_shader = parameters.vertex_shader;
+
+        if ( parameters.uniforms !== undefined ) this.uniforms = parameters.uniforms;
+
+		if ( parameters.shading !== undefined ) this.shading = parameters.shading;
+		if ( parameters.blending !== undefined ) this.blending = parameters.blending;
+
+		if ( parameters.wireframe !== undefined ) this.wireframe = parameters.wireframe;
+		if ( parameters.wireframe_linewidth !== undefined ) this.wireframe_linewidth = parameters.wireframe_linewidth;
+		if ( parameters.wireframe_linecap !== undefined ) this.wireframe_linecap = parameters.wireframe_linecap;
+		if ( parameters.wireframe_linejoin !== undefined ) this.wireframe_linejoin = parameters.wireframe_linejoin;
+
+	}
+
+	this.toString = function () {
+
+		return 'THREE.MeshShaderMaterial (<br/>' +
+			'id: ' + this.id + '<br/>' +
+        
+			'blending: ' + this.blending + '<br/>' +
+			'wireframe: ' + this.wireframe + '<br/>' +
+			'wireframe_linewidth: ' + this.wireframe_linewidth +'<br/>' +
+			'wireframe_linecap: ' + this.wireframe_linecap +'<br/>' +
+			'wireframe_linejoin: ' + this.wireframe_linejoin +'<br/>' +
+			')';
+
+	};
+
+}
+
+THREE.MeshShaderMaterialCounter = { value: 0 };