Acuity is a core mod with an API mod authors can use to implement multi-layered textures, emissive rendering and fancy visual effects (shaders) for block rendering with good performance on moderate to high-end hardware, all without using TileEntitySpecialRenderer. Future versions may also offer performance and aesthetic benefits for players.
This mod is client-side only and can be quickly enabled and disabled at run time via configuration settings. When the mod is disabled, the game uses normal Minecraft rendering.
There are no published mods using Acuity (yet) so currently there is no reason to install this mod unless you want to help me test it. If you install it, and it is working correctly, you should notice... nothing! (Except maybe slightly higher frame rate.)
Internal changes to vertex formats and shaders for "vanilla" lighting model.
Alpha values sent by quad to lighter are no longer modified and always available as-is in the shader. (Main reason for format/shader changes.)
A few relatively minor optimizations - hot paths are more amenable to JIT complier inlining.
Added a callback for render reload cuz I needed it
Acuity seems to render at same brightness as normal Minecraft now, probably due to changes in light map handling.
Multi-layer texturing working again.
Alpha 240 8/12/2018
Render frame rates now slightly better than vanilla MC/Forge (on my machine, at least). See the image gallery for screenshots showing the difference.
API is simplified - simpler program construction and no longer an option for callbacks - was too much of a performance trap and limited approaches rendering optimization
Libraries will be available on Maven - see GitHub for details
Now handles pre-baked light maps correctly for models that don't use the API (which right now is all of them)
Added configurable performance logging. (Mostly useful for me to validate Acuity is "fast enough.")
Blocks should render a little faster with Acuity enabled. (See note below.)
Mod authors can create blocks with multiple texture layers (for example, base color + decorative texture + border) that render in a single pass without transparency. (It's possible to do this in vanilla, but requires three quads and possibly one or more transparency sorts unless you can get by with cutout textures.)
Mod authors can implement custom shaders that will be automatically activated per-quad.
Mod authors can use emissive rendering per-quad, and also per-texture layer within the same quad.
Side Note: About Acuity Performance
Acuity was not intended to be a performance optimization mod, but if it sacrifices performance then people won't use it. For equivalent scenes, my goal is that Acuity will be as fast or faster even though it renders all blocks using shaders. Shaders aren't inherently slow - the opposite is true - but they have to be implemented correctly.
Shader code is still WIP - works but expect big changes.
No enhanced lighting model is available - this will wait for MC 1.13 and LWJGL 3 support.
No support for animated blocks. (TESR still works.) Will probably be necessary in future for good results with enhanced lighting.
No support for particles or entities. Will probably be necessary in future for good results with enhanced lighting.
Mod Packs and Support
This mod is in active development and is not feature-complete nor stable. The first stable, non-alpha release will be for 1.13. There will NEVER be a non-alpha build of this mod for 1.12 and support for 1.12 will cease as soon as 1.13 Forge becomes available.By the time this mod is stable, 1.13 should be a viable option for pack makers.
That all said, you MAY use this mod in ModPacks if you are willing to accept the current instability and lack of future support for 1.12.