Final-shutdown traversal: dispose every renderable's geometry and
material(s) under the scene. Unlike clearLoadedSceneContent, this
does NOT remove anything from the scene graph — the caller is about
to drop the scene, renderer, and camera, so detaching is unnecessary
and traversing once is faster than walking + removing.
Skips non-renderable Object3Ds; those have nothing to dispose.
Final-shutdown traversal: dispose every renderable's geometry and material(s) under the scene. Unlike
clearLoadedSceneContent, this does NOT remove anything from the scene graph — the caller is about to drop the scene, renderer, and camera, so detaching is unnecessary and traversing once is faster than walking + removing.Skips non-renderable Object3Ds; those have nothing to dispose.