Export geometry#
Here we document how to export point clouds and meshes from nerfstudio. The main command you’ll be working with is ns-export
. Our point clouds are exported as .ply
files and the textured meshes are exported as .obj
files.
Exporting a mesh#
1. TSDF Fusion#
TSDF (truncated signed distance function) Fusion is a meshing algorithm that uses depth maps to extract a surface as a mesh. This method works for all models.
ns-export tsdf --load-config CONFIG.yml --output-dir OUTPUT_DIR
2. Poisson surface reconstruction#
Poisson surface reconstruction gives the highest quality meshes. See the steps below to use Poisson surface reconstruction in our repo.
Note: This will only work with a Model that computes or predicts normals, e.g., nerfacto.
Train nerfacto with network settings that predict normals.
ns-train nerfacto --pipeline.model.predict-normals True
Export a mesh with the Poisson meshing algorithm.
ns-export poisson --load-config CONFIG.yml --output-dir OUTPUT_DIR
Exporting a point cloud#
ns-export pointcloud --help
Other exporting methods#
Run the following command to see other export methods that may exist.
ns-export --help
Texturing an existing mesh with NeRF#
Say you want to simplify and/or smooth a mesh offline, and then you want to texture it with NeRF. You can do that with the following command. It will work for any mesh filetypes that PyMeshLab can support, for example a .ply
.
python nerfstudio/scripts/texture.py --load-config CONFIG.yml --input-mesh-filename FILENAME --output-dir OUTPUT_DIR
Dependencies#
Our dependencies are shipped with the pip package in the pyproject.toml file. These are the following:
xatlas-python for unwrapping meshes to a UV map
pymeshlab for reducing the number of faces in a mesh