donmccurdy/glTF-Transform

simplify: attribute weighted simplification

Opened this issue · 7 comments

Hello, currently simplify doesn't take vertex colors into account. Looks like meshoptimizer added this feature recently. Is this already exposed/available in gltf-transform?

zeux/meshoptimizer#652 (comment)

Not yet exposed – see #1153. It's marked as an 'experimental' feature, so we would need to do something like that here, as I assume the meshoptimizer API could change at any time. In the meantime, vertex colors only factor in to the extent that they limit welding vertices before simplification.

Ok - thanks for the link!

Here's also another very very simple model where this would help (it would probably not remove any vertices in this simple case)

BenchSmall.zip

image

Also have a look at #992

It looks like there are breaking changes planned for the simplifyWithAttributes API, which is still experimental:

zeux/meshoptimizer#601

I think the rest of this task – supporting simplifyWithAttributes — will need to wait for a 4.1+ release.

In case it is useful to the discussion, a recent meshoptimizer PR exposed target_error to gltf_pack zeux/meshoptimizer#494

This change exposes simplification error via command line argument -se, which can be valuable to control simplification more precisely and may also be used to slightly increase the defaults when -sv is used.
Also this change completes zeux/meshoptimizer#688 by incorporating both normals and colors when -sv is specified, which improves quality on models with vertex colors further.

kzhsw commented

In case it is useful to the discussion, a recent meshoptimizer PR exposed target_error to gltf_pack zeux/meshoptimizer#494

@jo-chemla glTF-Transform does not directly use the gltfpack tool, it uses the meshoptimizer js api here