Ver Fonte

Scene picking and selection overlay now properly accounts for multiple sub-meshes

BearishSun há 10 anos atrás
pai
commit
21bed4799a

+ 4 - 1
BansheeEditor/Source/BsScenePicking.cpp

@@ -303,7 +303,10 @@ namespace BansheeEngine
 				rs.setGpuParams(GPT_FRAGMENT_PROGRAM, md.mParamPickingFragParams);
 			}
 
-			gRendererUtility().draw(renderable.mesh, renderable.mesh->getProperties().getSubMesh(0));
+			UINT32 numSubmeshes = renderable.mesh->getProperties().getNumSubMeshes();
+
+			for (UINT32 i = 0; i < numSubmeshes; i++)
+				gRendererUtility().draw(renderable.mesh, renderable.mesh->getProperties().getSubMesh(i));
 		}
 	}
 

+ 5 - 1
BansheeEditor/Source/BsSelectionRenderer.cpp

@@ -136,7 +136,11 @@ namespace BansheeEngine
 			mColor.set(SELECTION_COLOR);
 
 			gRendererUtility().setPass(mMaterial, 0);
-			gRendererUtility().draw(objData.mesh, objData.mesh->getProperties().getSubMesh(0));
+
+			UINT32 numSubmeshes = objData.mesh->getProperties().getNumSubMeshes();
+
+			for (UINT32 i = 0; i < numSubmeshes; i++)
+				gRendererUtility().draw(objData.mesh, objData.mesh->getProperties().getSubMesh(i));
 		}
 	}
 }