FabricMC / fabric

Essential hooks for modding with Fabric.
Apache License 2.0
2.34k stars 413 forks source link

Indigo and Renderer API missing features #2806

Open Technici4n opened 1 year ago

Technici4n commented 1 year ago

The following features are reasonably easy to support and would be nice to have. Most of these were discussed at https://discord.com/channels/507304429255393322/566276937035546624/1058160427047059466.

Technici4n commented 1 year ago

Writing down this extra clarification from Pepper regarding the first feature:

There's a bit of strangeness with one of the material properties, noDiffuse, because QuadViewImpl has an extra field for it that I think is used for when a vanilla quad goes through FRAPI, but for the inspection to work correctly this field needs to be removed and the quad needs to use noDiffuse properly. To be clear the inconsistency would arise from the fact that the quad's material would report one state of diffuse while the quad would actually be rendered with the opposite state of diffuse

Technici4n commented 1 year ago

TBD whether the AO disabling logic also needs to be integrated into the RenderMaterial before the quad transforms are applied.

Technici4n commented 1 year ago

It would be nice to have a sane way to access the current ModelTransformation$Mode inside of emitItemQuads. This should probably be added to the RenderContext. We could either extend the RenderContext with an item-specific sub-interface (ItemRenderContext extends RenderContext) and ask models to cast, or we could add the methods to RenderContext. Not sure what's the best option, but it will need to scale in case we want to pass more context in the future.

Technici4n commented 1 year ago

Perhaps something to add to this issue is to remove texture indices. There has never been an implementation that has supported them and Grondag himself removed them in FREX because he realized that just making a new quad is much easier than supporting multiple texture indices.

PepperCode1 commented 1 year ago

Numbers 2 and 5 were addressed by #2898.

Technici4n commented 1 year ago

Number 6 and 8 will be addressed by #3044.

Technici4n commented 1 year ago

Number 1 will be addressed by #3066.