소스 검색

WebGLRenderer: Sort on bounding sphere center, not origin (#25913)

* WebGLRenderer: Sort on bounding sphere center.

* Update screenshot for webgl_buffergeometry_drawrange.
Don McCurdy 2 년 전
부모
커밋
fab4ed4aac
2개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. BIN
      examples/screenshots/webgl_buffergeometry_drawrange.jpg
  2. 8 4
      src/renderers/WebGLRenderer.js

BIN
examples/screenshots/webgl_buffergeometry_drawrange.jpg


+ 8 - 4
src/renderers/WebGLRenderer.js

@@ -1163,16 +1163,20 @@ class WebGLRenderer {
 
 					if ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {
 
+						const geometry = objects.update( object );
+						const material = object.material;
+
 						if ( sortObjects ) {
 
-							_vector3.setFromMatrixPosition( object.matrixWorld )
+							if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();
+
+							_vector3
+								.copy( geometry.boundingSphere.center )
+								.applyMatrix4( object.matrixWorld )
 								.applyMatrix4( _projScreenMatrix );
 
 						}
 
-						const geometry = objects.update( object );
-						const material = object.material;
-
 						if ( Array.isArray( material ) ) {
 
 							const groups = geometry.groups;