4dface: Blendshapes of the 16k vertex model produce faulty shapes
Thank you for your effort in this repo! I’ve learnt a lot from it.
I was wondering if the blendshape is working as intended. In addition to writing a neutral face to an .obj file, I also wanted to write a face with expression to another file.
// neutral_expression and merged_mesh are defined in 4dface.cpp render::write_textured_obj(neutral_expression, "neutral.obj"); render::write_textured_obj(merged_mesh, "expression.obj");
The neutral face looks great, but not for the one with expression. I think it has something to do with the blendshape, but I’m not sure.
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 17 (9 by maintainers)
Yes, I found the 29k model after I’ve posted my previous comment, and then I frantically deleted it. But thank you @Larumbergera for following up. And thank you again @patrikhuber for the repo!
Okay, I just spent the last couple of hours investigating this. It’s very odd. I double-checked the code which generates the reduced blendshapes and everything else I could think of, and all looks fine. All the blendshapes are generated by the same code, and it works correctly for all other model resolution levels.
This is how neutral and added surprise expression look like, with the 29k model:

And this is what happens to the 16k mesh when you add 0.2 * surprise:
The “pyramids” seem to appear because some vertices are “stuck” in neutral and don’t seem to move along with the other vertices. I inspected these vertices, and all of the ones that are “stuck” have a vertex id of above around 5000 or so. Which means the lower vertex id’s might move correctly, while the higher ones don’t. It’s just a theory, I’m not sure about any of this. I have absolutely no clue what could cause this.
Update: After looking at a neutral obj and a 0.2*surprise obj of the 16k model, I don’t think only what I described in the last paragraph is going on. There is something else as well, maybe random, I am not sure.
I don’t think I’ll have time to investigate this further in the next months, as I will be busy with a deadline. Do you have a very compelling reason why you have to use the 16k model and can’t use the 29k or 3448 model? Or do you feel like having a look at this problem by yourself?