Jelajahi Sumber

Improved loading of vertex attribute defaults.

tschw 10 tahun lalu
induk
melakukan
9d3ac1aa7a
1 mengubah file dengan 18 tambahan dan 6 penghapusan
  1. 18 6
      src/renderers/WebGLRenderer.js

+ 18 - 6
src/renderers/WebGLRenderer.js

@@ -895,6 +895,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 		var geometryAttributes = geometry.attributes;
 		var programAttributes = program.attributes;
 
+		var materialDefaultAttributeValues = material.defaultAttributeValues;
+
 		for ( var name in programAttributes ) {
 
 			var programAttribute = programAttributes[ name ];
@@ -962,17 +964,27 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 					}
 
-				} else if ( material.defaultAttributeValues !== undefined ) {
+				} else if ( materialDefaultAttributeValues !== undefined ) {
+
+					var value = materialDefaultAttributeValues[ key ];
+					if ( value !== undefined ) {
 
-					if ( material.defaultAttributeValues[ name ] !== undefined ) {
+						switch ( value.length ) {
 
-						if ( material.defaultAttributeValues[ name ].length === 2 ) {
+							case 2:
+								_gl.vertexAttrib2fv( programAttribute, value );
+								break;
 
-							_gl.vertexAttrib2fv( programAttribute, material.defaultAttributeValues[ name ] );
+							case 3:
+								_gl.vertexAttrib3fv( programAttribute, value );
+								break;
 
-						} else if ( material.defaultAttributeValues[ name ].length === 3 ) {
+							case 4:
+								_gl.vertexAttrib4fv( programAttribute, value );
+								break;
 
-							_gl.vertexAttrib3fv( programAttribute, material.defaultAttributeValues[ name ] );
+							default:
+								_gl.vertexAttrib1fv( programAttribute, value );
 
 						}