Search Unity

Question Blendshape with their own vertex colors importation

Discussion in 'General Discussion' started by neoshaman, Jul 21, 2022.

  1. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Hello!

    Does some know if unity handle more vertex data with blendshape than position and possibly normal? I need vertex color blending! The manual don't seem to shed much light about it.

    I was trying to look if blender could back vertex color per shapekey but it doesn't seem to do that, also potentially fbx wouldn't store that either. If I'm wrong please correct me!

    I basically need to blend not only the position but baked vertex colors to control a texture. If unity can handle the extra data, I could probably wrote a custom importer, though I currently don't get how unity handle blendshape. I hope I'm not going down another unity rabbit hole.
     
  2. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    You could always use a texture instead. This problem reminds me a bit of the wrinkle maps they used for the blacksmith demo:
    https://blog.unity.com/technology/wrinkle-maps-in-the-blacksmith

    Unfortunately the asset from asset store isn't available anymore, but the principle is simple.

    How many shape keys are there that require the masking? If it's less than 5 you could always just use a texture and pass in a vector to the shader for how to multiply those masks before getting the final one.
     
  3. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Yeah 300 or 56 shapekey/blendshape blending probably won't cut it. It's for stretch map.

    I thought of texture and passing the whole blendshape as texture too, but too many sampling. I guess if that's not possible I should role my own blending system.

    But I'm not sure how to do it efficiently. The naive wau is to have an array per frame x blendshape, and merge down all blendshape for a frame, each frame. I'm not sure how else to do timeline scrubbing.

    Passing vertex color was supposed to be an "optimisation".

    Funnily my research return workflow for unreal, because of course.