Replies: 6 comments 4 replies
-
This is a bit of a tricky issue. Here we have an example of a pass which wants to run after optimizers, but to use information (blendshape labels) that optimizers typically delete as an input. As background, VRCFury runs between Transforming and Optimizing; this is so that VRCF can be generally compatible with optimization tools such as AAO and TTT (and lil mesh simplifier as well!). Running it before Transforming would generally break MA's menu installer, which relies on menu assets remaining unchanged (and would break anything that relies on unused blendshapes as inputs!); running it after optimizing would break VRCF when those optimizers are present, so we're a bit stuck. While I can theoretically provide a mesh manipulation API in NDMF that could be used to apply labels to vertices and make these kinds of mesh manipulation tools play better together, VRCFury is probably not going to onboard onto that, so they'd be lost at the VRCF stage (or if you're running d4rk's optimizer they'd be lost there as well). We also lose track of duplicated mesh/asset identity when VRCF replaces them, since VRCF isn't invoking the Some not-so-great solutions that come to mind:
@lilxyzw @SenkyDragon @hai-vr any thoughts? |
Beta Was this translation helpful? Give feedback.
-
More thoughts: We can attach additional information to a mesh renderer by adding a label component to the game object. This could solve the problem of maintaining mesh identity while releasing control to VRCF. However, we still need to identify vertices across arbitrary mesh optimizations... Identifying unchanged vertices will be relatively easy, but if two share a coordinate, then we're dealing with some kind of weird graph pseudo-isomorphism problem? |
Beta Was this translation helpful? Give feedback.
-
Another option: Applying fake bone weights that are deleted (and converted back into mesh labels) later in processing...? |
Beta Was this translation helpful? Give feedback.
-
@anatawa12 may be interested in any mesh API stuff too 😅 |
Beta Was this translation helpful? Give feedback.
-
I'm opening this discussion as i believed it was interesting to push upstream, but i would be quite unable to provide any insights on how to resolve that issue. So i'll just be there watching. 🫥 |
Beta Was this translation helpful? Give feedback.
-
I could not understand this sentence well. |
Beta Was this translation helpful? Give feedback.
-
I'm opening this discussion regarding a issue i had with a tool from Haï here hai-vr/prefabulous-avatar#8
There seem to be a blur onto what we should use as an NDMF sequence step for tools that are based on the skinmesh.
In that case we have a tool that is "recalculate normals".
It is a "transforming tool", so it is placed in the transforming step, but this tool is impacted by the "Optimization" step tool from https://github.com/lilxyzw/lilNDMFMeshSimplifier that runs after in the sequence.
You can see in the linked issue that that makes the behavior of their tool act weird.
From what Haï says, the package was actually in the transform step but was moved to be compatible with "VRCFury's Blendshape Optimizer".
Maybe there is a need for a new step or something to be defined so we can make those kind of tools work together.
Tell me what you think of that.
Beta Was this translation helpful? Give feedback.
All reactions