MeshAnything V2: Artist-Created Mesh Generation With Adjacent Mesh Tokenization
Paper
•
2408.02555
•
Published
•
31
Mirror of Yiwen-ntu/MeshAnythingV2.
Library: https://github.com/buaacyw/MeshAnythingV2
Our environment has been tested on Ubuntu 22, CUDA 11.8 with A800.
git clone https://github.com/buaacyw/MeshAnythingV2.git && cd MeshAnythingV2
conda create -n MeshAnythingV2 python==3.10.13 -y
conda activate MeshAnythingV2
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
pip install flash-attn --no-build-isolation
pip install -U gradio
# Put the output obj file of Rodin to rodin_result and using the following command to generate the Artist-Created Mesh.
# We suggest using the --mc flag to preprocess the input mesh with Marching Cubes first. This helps us to align the inference point cloud to our training domain.
python main.py --input_dir rodin_result --out_dir mesh_output --input_type mesh --mc
python app.py
# folder input
python main.py --input_dir examples --out_dir mesh_output --input_type mesh
# single file input
python main.py --input_path examples/wand.obj --out_dir mesh_output --input_type mesh
# Preprocess with Marching Cubes first
python main.py --input_dir examples --out_dir mesh_output --input_type mesh --mc
# The mc resolution is default to be 128. For some delicate mesh, this resolution is not sufficient. Raise this resolution takes more time to preprocess but should achieve a better result.
# Change it by : --mc_level 7 -> 128 (2^7), --mc_level 8 -> 256 (2^8).
# 256 resolution Marching Cube example.
python main.py --input_dir examples --out_dir mesh_output --input_type mesh --mc --mc_level 8
# Note: if you want to use your own point cloud, please make sure the normal is included.
# The file format should be a .npy file with shape (N, 6), where N is the number of points. The first 3 columns are the coordinates, and the last 3 columns are the normal.
# inference for folder
python main.py --input_dir pc_examples --out_dir pc_output --input_type pc_normal
# inference for single file
python main.py --input_path pc_examples/mouse.npy --out_dir pc_output --input_type pc_normal
Our code is based on these wonderful repos:
@misc{chen2024meshanythingv2artistcreatedmesh,
title={MeshAnything V2: Artist-Created Mesh Generation With Adjacent Mesh Tokenization},
author={Yiwen Chen and Yikai Wang and Yihao Luo and Zhengyi Wang and Zilong Chen and Jun Zhu and Chi Zhang and Guosheng Lin},
year={2024},
eprint={2408.02555},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2408.02555},
}