No description
  • Java 79.5%
  • GLSL 20.5%
Find a file
2026-07-23 17:03:04 +02:00
gradle/wrapper Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
src/main Maybe fix teleporting into unloaded chunks 2026-07-23 17:03:04 +02:00
.gitignore Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
build.gradle Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
gradle.properties Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
gradlew Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
gradlew.bat Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
LICENSE.txt Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
README.md Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00
settings.gradle Initial commit: ray-marched volumetric border fog with seamless wrap 2026-07-23 15:55:28 +02:00

The Fog Is Coming

A Fabric 1.21.11 mod that replaces the vanilla world-border force field with a custom Nebulon world effect and ray-marched shader. Walking into the soft white mist wraps the player to the opposite edge while its dense core hides the relocation.

Fog quality

On first client launch the mod creates config/thefogiscomming-client.json:

{
  "quality": "AUTO"
}

Valid values are AUTO, LOW, BALANCED, HIGH, and ULTRA. AUTO maps Fast graphics to Low, Fancy to Balanced, and Fabulous/Custom to High. Balanced uses up to 16 ray-march steps and is the baseline profile for an M2 MacBook Air.

Fog LOD is continuous within every preset. The distant bank uses as few as six march steps and two broad noise octaves, then introduces finer fluffy detail while the player approaches. Dense pixels stop marching as soon as they become opaque. Camera and depth transforms are supplied or reconstructed directly instead of inverting matrices per fragment.

For quick testing, -Dthefogiscomming.quality=low overrides the file for that launch.

Behavior

  • Nearby border sides are persistent Nebulon effects rendered by a custom batched EffectBatchRenderer.
  • The custom shader uses world-anchored multi-octave noise to form a broad white mist bank, a fluffy irregular approach, and an opaque crossing core.
  • A guaranteed inner veil conceals border-block silhouettes and the wrap, while scene-depth clipping keeps nearby foreground terrain correct.
  • Fog is composited after vanilla clouds and weather, so clouds cannot appear pasted over the mist.
  • Each proxy follows the camera vertically and along the border, keeping its feathered ends beyond the render sphere so it appears infinite.
  • A long smooth distance crossfade prewarms each side before it becomes visible, preventing border walls from popping into view.
  • Crossing either axis wraps to the opposite side. Corner crossings wrap both axes together.
  • Vehicles, passengers, velocity, yaw, and pitch remain together.
  • A small, non-persistent destination chunk ticket starts loading the opposite side only while the player is moving toward the border.
  • Grounded players search nearby loaded heightmap columns for dry, collision-free land instead of arriving inside terrain, over open air, or in water when a dry candidate is available.
  • Elytra, creative-flight, and spectator crossings preserve altitude and velocity; vertical adjustment happens only when the corresponding destination space is obstructed.
  • The destination remains inside the opposite fog bank, hiding chunk delivery and the teleport until the player walks out of the mist.