Editing Scene Assets in Blender
Habitat users often want to create visualizations for their projects, e.g. to show navigation trajectories of trained agents. This tutorial walks you through steps to edit a 3D model in Blender to create a “cut-away” version, which can be loaded into Habitat to create visualizations. We recommend watching all videos maximized so you don’t miss the details of the Blender GUI.
We’ll start with a non-basis-compressed GLB version of Matterport3D scene “i5noydFURQK”. (Blender won’t import models with basis-compressed textures; beware the import will fail and won’t really even give an error message). Here we’re just importing.
Next we rotate the scene to match Blender’s preferred z-up convention. This isn’t strictly necessary, but it makes it easier to view and edit the scene in Blender.
(Beware confusion here: Blender’s GLB importer and exporter do some automatic rotation which is usually more confusing than helpful.)
Notice the orange selection highlight–you can select all with the A hotkey. Notice also where we hold CTRL to do rotation in discrete increments; this helps us rotate exactly 90 degrees.
MP3D scenes are comprised of hundreds of small chunks, but it’s easier to work with a single mesh, so let’s join them all to one mesh.
Let’s switch to edit mode, select all vertices (same A hotkey), and use the Bisect tool to cut. We also toggle the isometric camera here to make this easier. We do this twice: once to show cutting away just the ceiling; a second time to show cutting away the walls, leaving basically only the floor.
Here’s a more advanced version where we preserve a few interesting objects in the middle of the room. We take care to only select the walls before doing the bisect. We are using SHIFT + left-click-drag to incrementally add vertices to our active selection.
Re-export to GLB
Finally let’s re-export a new GLB. One mistake we made here was not rotating back to the original y-up orientation. Remember you can also fix up your scene’s orientation in Habitat by editing the stage_config.json “up” field.
Thanks for watching!