gwihlidal / meshopt-rs

Rust ffi and idiomatic wrapper for zeux/meshoptimizer, a mesh optimization library that makes indexed meshes more GPU-friendly.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simplifier should read the entire vertex, not just positions

gwihlidal opened this issue · comments

Simplifier actually reads the entire vertex, not just position data - it has preferential treatment for position data in the vertex, but it uses other bytes to figure out where UV collapses happen.

It's not a major issue currently, but this should be addressed later (possibly with some interface changes on the C side to make things nicer in this area).

I lied :( The C interface is actually correct, and therefore the Rust version is also correct because it's the obvious code that you write for a C interface like this and it works :D

I confused myself - for some reason I had a vague memory of reading other vertex data to perform indexing, but upon closer inspection I remembered that the attribute seams are currently inferred from the input index stream. Only position data is read.

This might need to change long term as one of the big issues is that the simplifier currently can't distinguish normal seams from UV seams (and they are very different in terms of how they should be handled). However, this requires a different C-side interface anyway :)

So this issue can be closed.

Sounds good!