- Implement wavelet OIT
- Needed to do the same normalization step as in MBOIT but that's not
described in the blog post I followed
- Use an expensive pseudo blue noise function to slightly correct
banding artifacts
- Implement mboit on indirect
- Has issues when many high alpha fragments are stacked on top of each
other. The transmittance function explodes to zero, and we end up just
writing out black in the second pass.
- Other than that, I think the approach is very sound but hopefully a
solution can be found
- Needs some clean up work with instancing, and in fact I think mboit
can be implemented on GL3.2, whereas wboit relied on extensions or
GL4.0
- Add workaround for race condition flipping the "mergeable" bit for
instance pages
- Sometimes a page would end up full while another thread was racing to
set the mergeable bit, so when we later tried to merge pages we'd get
an array index out of bounds
- This change makes it so we only ever set the mergeable bit and handle
the case of a full page when trying to merge
- Should also help us avoid the alternative case where a page that is
actually mergeable isn't marked as such
- Fix culling for meshes that occupy a significant portion of the screen
and have their corners occluded but center visible
- We actually just need to generate one more mip level, crunching the
entire frame down into a single pixel
- Config fields default to "default" and can be either disabled or force
enabled via the vanillin config file
- Alternatively, mods can set custom properties to disable specific
visuals
- Emit a warning when a visual is disabled due to mod intervention
- Emit a warning when a visual is force enabled despite mod intervention
- Add missing @Nullable annotations to visualizer registry
- Build out common-side configuration infrastructure
- Add fabric config json for vanillin
- Add equivalent forge config json
- Want to allow for toggling specific visualizers/updating config with a
command
- Move source set bundling/common source set sharing logic into
transitiveSourceSets and make it more flexible
- Remove commonProject field from platform extension
- Assume group/version are behind properties in subproject.init
- Force each subproject to manually specify their base archive name
- Don't generate mod/api artifact ids, just write them out by hand
- Remove DependentProject
- Loom gets angry when a mod* dependency doesn't immediately exist so
use a regular runtime dependency with the devlibs jar
- Strangely, the include dependency is just fine with the remap jar
- Move outgoing remapJar/jar configuration generation to JarTaskSet
- Don't actually need evaluationDependsOn
- Fix test mod id
- Replace outgoing jars by directly consuming classes/resources from
common
- Add vanillin logo
- Move subproject plugin logic to an extension so it can be configured
- Rename "mod_" properties to "flywheel_"
- Move common vanillin stuffs to a "vanillin" sourceset
- Add vanillinForge and vanillinFabric subprojects
- Mostly do gradling from scratch
- Export remap jars from platform projects to `include` in vanillin
projects
- Allow materials to specify the cardinal lighting mode
- Hard-code the cardinal lighting mode to be one of 3
- Off
- Chunk
- Entity (default)
- This gives artists some control over how they want their models to
appear in-game. Kryppers in particular noticed lighting discrepancies
between a flywheel model and a block model
- Remove "useLightDirections" config, command, and uniform
- Remove "diffuse" flag from Material
- Replace ModelUtil.VANILLA_RENDERER with the actual vanilla renderer
- Inline it and remove the static field
- Remove the BlockRenderDispatcher parameter from all BakedModelBufferer
functions
- Remove FlwLibLink#createVanillaBlockRenderDispatcher
- Fix exception thrown in light storage when vising nether and end
dimensions
- Try to make section collection more tolerant, but more work on a
fallback path is likely needed
- Atomically count instances in indirect instancer
- Fixes indirect draws/instancers never being deleted
- Fix baseDraw being set incorrectly on intel
- Handle setting baseDraw in GlCompat#safeMultiDrawElementsIndirect
- Add debug flag to disable frame/tick plan execution
- Should help debugging cases where a visual constructor produces a
visual in an invalid state like the weeping shulker bug
- Fix darkness when collecting light sections from high in the air
- Add dummy data layer impl to return a constant
- Empty sky section returns 15
- Empty block section returns 0
- Copy vanilla's logic for determining which data layer to use for a
given position's sky light value
- While I'm at it, retrieve light section storage via an accessor to
avoid allocating SectionPos objects
- Improve lut debug view
- BackendManager.defaultBackend now dynamically computes the result every time it is invoked
- Forge backend config value now uses a supplier to provide the default backend
- Fix Fabric backend config being saved to "flw_backends" but loaded from "flw_backend"