zhan-xu / RigNet

Code for SIGGRAPH 2020 paper "RigNet: Neural Rigging for Articulated Characters"
GNU General Public License v3.0
1.34k stars 181 forks source link

Pre-processing data and compute bandwidth #63

Closed crylingya closed 2 years ago

crylingya commented 2 years ago

Thanks for your excellent work!! I read the remark and knew that if the obj file contented more than 5k vertices, I needed to do sampling first. Do you have some rules for sampling or just do some random selection? Now I only have one single obj file, how to get *_remesh.obj? Also you have mentioned that if I use my own file as input, I need to compute the bandwidth first. How to calculate it?

Thanks again for your code!

zhan-xu commented 2 years ago

I used some off-the-shelf mesh simplification method for remeshing. For example I used "simplification: quadric edge collapse decimation" in meshlab or "simplify_quadric_decimation" from open3d for that.

You can use the learnt bandwidth, where you can simply set bandwidth=None. However sometimes you can get better results by tunning this bandwidth. I would suggest adjust around 0.03-0.06 as the examples I provided, but this depends on your model.

crylingya commented 2 years ago

@zhan-xu Thank you for your nice and quick reply. I have tried to use an OBJ file from SMPL(#vertices=6890, remesh to #vertices=4000), but the result was strange. I have tested different bandwidth, all were similar to each other... Screenshot from 2021-10-08 16-08-26 .

zhan-xu commented 2 years ago

This looks like your model is not symmetric about y-z plane. We assume the prediction is always symmetric and copy joints from left to right. You may adjust your model to make sure it standing straight up.

crylingya commented 2 years ago

@zhan-xu I think it must be magic! When the model was symmetric about y-z plane, the result was perfect! Thank you for your wonderful work and patient answers!!