Source

Branch

1/ @unconed

Re: we should keep using index buffers and indexed vertices

Having every single vertex attribute be indexed means you need duplicate vertices to handle cases where you have attribute seams (e.g. flipped tangents). This requires data-dependent splitting and reprocessing, which may not be feasable at runtime.

I would much prefer a model that supports mixing “welded” and “unwelded” data instead. Do you think such a model can work? Or is it not feasible to cache partial vertices?

I wonder because both driver devs and engine devs seem to be converging on the same sorts of shader preprocessing steps anyway (dead code elimination, attribute grouping, etc). If the vertex/fragment pipeline is a facade, couldn’t we model this as a more directly in user-space instead?