Explorar o código

Add GLTFLoader PointsMaterial support

Takahiro %!s(int64=7) %!d(string=hai) anos
pai
achega
8e56415cc6
Modificáronse 1 ficheiros con 18 adicións e 0 borrados
  1. 18 0
      examples/js/loaders/GLTFLoader.js

+ 18 - 0
examples/js/loaders/GLTFLoader.js

@@ -2120,6 +2120,24 @@ THREE.GLTFLoader = ( function () {
 
 					} else if ( primitive.mode === WEBGL_CONSTANTS.POINTS ) {
 
+						var cacheKey = 'PointsMaterial:' + material.uuid;
+
+						var pointsMaterial = scope.cache.get( cacheKey );
+
+						if ( ! pointsMaterial ) {
+
+							pointsMaterial = new THREE.PointsMaterial();
+							THREE.Material.prototype.copy.call( pointsMaterial, material );
+							pointsMaterial.color.copy( material.color );
+							pointsMaterial.map = material.map;
+							pointsMaterial.lights = false;  // PointsMaterial doesn't support lights yet
+
+							scope.cache.add( cacheKey, pointsMaterial );
+
+						}
+
+						material = pointsMaterial;
+
 						mesh = new THREE.Points( geometry, material );
 
 					} else {