@@ -19716,7 +19716,7 @@ THREE.WebGLRenderer = function ( parameters ) {
1971619716
1971719717 // Geometry splitting
1971819718
19719- function sortFacesByMaterial ( geometry ) {
19719+ function sortFacesByMaterial ( geometry, material ) {
1972019720
1972119721 var f, fl, face, materialIndex, vertices,
1972219722 materialHash, groupHash,
@@ -19725,12 +19725,14 @@ THREE.WebGLRenderer = function ( parameters ) {
1972519725 var numMorphTargets = geometry.morphTargets.length;
1972619726 var numMorphNormals = geometry.morphNormals.length;
1972719727
19728+ var usesFaceMaterial = material instanceof THREE.MeshFaceMaterial;
19729+
1972819730 geometry.geometryGroups = {};
1972919731
1973019732 for ( f = 0, fl = geometry.faces.length; f < fl; f ++ ) {
1973119733
1973219734 face = geometry.faces[ f ];
19733- materialIndex = face.materialIndex;
19735+ materialIndex = usesFaceMaterial ? face.materialIndex : undefined ;
1973419736
1973519737 materialHash = ( materialIndex !== undefined ) ? materialIndex : -1;
1973619738
@@ -19830,7 +19832,7 @@ THREE.WebGLRenderer = function ( parameters ) {
1983019832
1983119833 function addObject ( object, scene ) {
1983219834
19833- var g, geometry, geometryGroup;
19835+ var g, geometry, material, geometryGroup;
1983419836
1983519837 if ( ! object.__webglInit ) {
1983619838
@@ -19842,12 +19844,13 @@ THREE.WebGLRenderer = function ( parameters ) {
1984219844 if ( object instanceof THREE.Mesh ) {
1984319845
1984419846 geometry = object.geometry;
19847+ material = object.material;
1984519848
1984619849 if ( geometry instanceof THREE.Geometry ) {
1984719850
1984819851 if ( geometry.geometryGroups === undefined ) {
1984919852
19850- sortFacesByMaterial( geometry );
19853+ sortFacesByMaterial( geometry, material );
1985119854
1985219855 }
1985319856
0 commit comments