Skip to content

Changes from upstream

embeddedt edited this page Mar 28, 2024 · 5 revisions

This list is out of date (it has not been updated since February 2024). It was published back when plans were in progress to merge Embeddium's Forge patches into Sodium, and should not be used to make comparisons between the mods. It remains here for archival purposes only.

  • Apply packed normals, lights & colors from baked quad vertex data
  • Read Forge ModelData map from the world when creating chunk meshing tasks
  • Call Forge overloads of various BakedModel and BlockState methods (e.g. IForgeBlockState#getLightEmission, IForgeBakedModel#getRenderLayers, IForgeBakedModel#getQuads)
  • Modify BlockOcclusionCache to call appropriate Forge APIs
  • Support entities with infinite bounding boxes properly (TODO: Possibly fixed by limiting the number of sections to scan to 15)
  • Frustum cull block entities
  • Add WorldSliceLocal as a wrapper around WorldSlice, to mimic vanilla passing a unique object for each subchunk, without impacting allocation rate significantly
  • Apply flat lighting to BakedQuads with AO disabled
  • Disable quad reorienting for a given direction if at least one quad disables AO (avoids Z-fighting)
  • Introduce naive translucency sorting (will be superseded by GFNI)
  • Introduce full-precision vertex format (https://github.com/CaffeineMC/sodium-fabric/pull/2116)
  • Support directing block rendering to an alternative vanilla-like render pipeline (e.g. CodeChickenLib, or Forge lighting)
  • Call WorldRenderer.getLightmapCoordinates on blocks if they are not emissive, rather than always using Sodium's override (allows dynamic lights mods to work without mixing into Sodium code)
Clone this wiki locally