Normal data problem with blendshapes

   2213   10   1
User Avatar
Member
11 posts
Joined: June 2020
Offline
Hello.

The blendshapes in the FBX files imported with fbx character import are different from what I see in other software (I have tried with blender).
How can I solve this problem?

I have attached a test project.

Attachments:
2023-01-10_182138.png (1.3 MB)
2023-01-10_182216.png (575.9 KB)
blendshape_test.zip (265.4 KB)

User Avatar
Member
51 posts
Joined: June 2020
Offline
I tested it. both look the same

Attachments:
Screenshot_4.png (1.1 MB)

User Avatar
Member
11 posts
Joined: June 2020
Offline
Thank you.

I am referring to the black shadow on the Edge of this hair.

The light blue lines in your image remind me of Blender's sharpening.
I haven't solved it yet, but I found out that it might be related to it.

Attachments:
hair.png (865.8 KB)

User Avatar
Member
11 posts
Joined: June 2020
Offline
The importer does not seem to reflect sharp (or hard edge) in the normal for meshes stored as blendshapes.
In contrast, the importer correctly handles sharp and reflects it to the normal in a generic mesh.
Ideally, the importer should handle it the same way.

(Blendshape's normal is essential for large shape changes)
Edited by tsuno - Jan. 10, 2023 08:30:48
User Avatar
Member
51 posts
Joined: June 2020
Offline
I think the normal value is wrong.

Attachments:
Screenshot_5.png (543.1 KB)

User Avatar
Member
11 posts
Joined: June 2020
Offline
I think so, too.
I think when it is imported to Houdini it get wrong...

Is that screen Maya?
(I dont have Maya.)
If it's wrong in Maya too, it might be a problem with the export in Blender.
User Avatar
Member
51 posts
Joined: June 2020
Offline
Yes this is the "maya" screen. However, when blending the two meshes, the normal data looks fine in maya. But when I showed these meshes separately, I got this image.(above)
User Avatar
Member
477 posts
Joined: Aug. 2014
Offline
It looks like normals of blend shapes were either not exported with the character, or Houdini doesn't know how to handle them. So what happens is that custom vertex normals of the skin mesh are blended with smooth normals that were applied on blend shapes during import.

To fix this, you can stop blending normals (remove N from Character Blend Shape's attribsparm), or you can copy normals from base mesh to each extracted blend shape and then add those blend shapes back to character's skin geometry.
Edited by ajz3d - Jan. 11, 2023 11:21:35

Attachments:
blendshapes_normals.jpg (148.0 KB)

User Avatar
Member
11 posts
Joined: June 2020
Offline
Thank you.
I agree with you.

Thanks also for the current solution.

Maybe they can't implement it because of the FBX data specs, but I would like to be able to get the normal information of the blend shape as well as the base mesh correctly.
I will submit a request to the company.
Edited by tsuno - Jan. 13, 2023 04:12:26
User Avatar
Member
15 posts
Joined: Aug. 2022
Offline
1. Can confirm as for 19.5 normals for blend shapes are exported but they all have zero values (meaning zero difference from the base blend shape). It seems that fbx exporter is either ignoring blend shape normals or zeroes them for some other reason.



2. Tried method siggested by @ajz3d but normals are lost when you add blend shape.

Correct normals when you copied them to the extracted blend shape.


But when I add blend shape and extract it again they are gone (I mean they are back to the base mesh, ignoring blend shape normals). When I play blend shapes animation visually it's the same result - it's not considering blend shapes normals.


UPD. Found the way to solve the issue #2 inside Houdini by adding point jitter with really small scale 0.0003 - previously Houdini was ignoring changing normals if there were no change in points position.
But after exporting it to FBX I still got issue #1.
Edited by Andrej730 - Sept. 19, 2023 02:15:07
User Avatar
Member
213 posts
Joined: June 2023
Offline
Is there a solution to this? It seems really weird that Houdini chooses to export zeros.
  • Quick Links