Procházet zdrojové kódy

WebGLRenderer: Support for THREE.PointCloud+BufferGeometry+drawCall.count.

Mr.doob před 10 roky
rodič
revize
8d926d787c
1 změnil soubory, kde provedl 21 přidání a 3 odebrání
  1. 21 3
      src/renderers/WebGLRenderer.js

+ 21 - 3
src/renderers/WebGLRenderer.js

@@ -2670,11 +2670,29 @@ THREE.WebGLRenderer = function ( parameters ) {
 				}
 
 				var position = geometry.attributes.position;
+				var offsets = geometry.offsets;
 
-				_gl.drawArrays( mode, 0, position.array.length / 3 );
+				if ( offsets.length === 0 ) {
 
-				_this.info.render.calls ++;
-				_this.info.render.points += position.array.length / 3;
+					_gl.drawArrays( mode, 0, position.array.length / 3 );
+
+					_this.info.render.calls ++;
+					_this.info.render.points += position.array.length / 3;
+
+				} else {
+
+					for ( var i = 0, il = offsets.length; i < il; i ++ ) {
+
+						var startIndex = offsets[ i ].index;
+
+						_gl.drawArrays( mode, 0, offsets[ i ].count );
+
+						_this.info.render.calls ++;
+						_this.info.render.points += offsets[ i ].count;
+
+					}
+
+				}
 
 			}