Introduction
...
Concepts, In Detail
Blend Targets
In Unity it's an import choice to either import or calculate blend shape normals. Calculation is then "auto-smooth" per-blendshape and the calculated normals are used at runtime for interpolation.
Video of a box/sphere blend shape interpolation:
Which means that sharp cube to smooth sphere is representable in Unity and also in FBX and glTF. Hree's a glb file that illustrates the concept:
Blending normals is as a general problem not solvable because normals in different shapes easily become self contradictory, especially in crease areas. The general technique used in engines and renderers is to figure out where creased edges are and compute normals of the final blended mesh. In a subdivision surface, that's indicated with crease attributes; when importing from FBX, you can infer crease edges from the boundaries of smoothing groups. For smoothing groups and polygon meshes in general, Newell's method is commonly used (cf. https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normal) For subdivision surfaces, the preferred thing is to compute the normal for each vertex at the limit surface. This can be done through various analytic methods without performing the subdivision.
In the case of the cube to sphere example, the morph is possible without artifacts, because the convexity of the shapes does not change throughout the morph. Interpolation is more problematic in areas where a mesh surface stretches and folds, such as occurs at the corners of a character's mouth.
...
- documentation published by the consortium
VRM utilities, https://vipe.io/utilities
- curated by Vipe
VRoid
VRoid Studio https://vroid.com/en/studio
- Software to create avatars
VRoid Hub https://hub.vroid.com/en
- Sharing site
Booth https://booth.pm/en/search/vroid
- eCommerce site for accessories like clothes and hair styles
Fashion Show https://vroid.com/en/news/6UFOiyMQm9Ih4YUD2AoRBh
- Example use case