Перейти к содержимому
Mineforgian

Luminance

a library mod that helps other mods with shaders

6K загрузок11 подписчиковLGPL-3.0-onlyfabricquilt

Обновлён 20 мая 2026 г. · опубликован 22 апреля 2024 г.

  • Strength Dynamic Uniform

Luminance

About

Luminance is a library mod that is primarily designed to help other mods with shaders.

As a user, you should only need to install this if a mod requires it.

Features

  • Adds Dynamic Shader Uniforms
    • These let post-processing shaders have more information about what's happening in-game.
    • Luminance comes with a bunch of these by default, but you can add your own too!
  • Adds shaders that have been used in previous minecraft versions.
    • Requires Perspective or Souper Secret Settings.
    • Luminance takes care of rendering shaders, so you don't have to!
    • You can check if Iris Shaders are enabled using Luminance.
      • This means you don't have to have Iris added to your development environment!
    • You can replace your ModMenu icon using Luminance!
      • Make your mod icon change depending on the time of year, or via a config option, anything's possible!

Dependencies

  • Fabric API or Quilted Fabric API (QFAPI)
    • fabric-resource-loader-v0
    • fabric-key-binding-api-v1
    • fabric-lifecycle-events-v1
  • Java 21 or later.
    • Built with the Microsoft build of OpenJDK 21.0.2.

How to add Luminance to your mod:

  1. Add the following lines to the repository section of your build.gradle:
exclusiveContent {
		forRepository {
			maven {
				name = "Modrinth"
				url = "https://api.modrinth.com/maven"
			}
		}
		filter {
			includeGroup "maven.modrinth"
		}
	}
  1. Add the following line to the dependencies section of your build.gradle:
include(modImplementation "maven.modrinth:luminance:${project.luminance}")
  1. Add the following line to your gradle.properties:
    1. Replace 1.0.0-rc.1+1.21.4-fabric with the latest version of Luminance!
      1. This can be found on the version page on Modrinth.
luminance = 1.0.0-release.1+1.21.4-fabric
#luminance = 1.0.0-release.1+1.21.4-quilt
  1. Reload gradle and you're ready to use Luminance!

Also check out

Our GitHub Page
Perspective by dannytaylor
Souper Secret Settings by Nettakrim
Luminance Mod Collection

Licensed under LGPL-3.0-or-later.

This mod is not affiliated with/endorsed by Mojang Studios or Microsoft.
Some game assets are property of Mojang Studios and fall under Minecraft EULA.

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
1.1.0-beta.3+fabric-1.21.11Бета1.21.11fabric20 мая 2026 г.Скачать (825 КБ)
1.1.0-beta.2+fabric-1.21.11Бета1.21.11fabric18 апреля 2026 г.Скачать (849 КБ)
1.1.0-beta.1+fabric-1.21.11Бета1.21.11fabric17 апреля 2026 г.Скачать (849 КБ)
1.1.0-alpha.1+1.21.4-fabricАльфа1.21.4fabric27 августа 2025 г.Скачать (781 КБ)
1.0.1-release.1+1.21.4-quiltРелиз1.21.4quilt19 мая 2025 г.Скачать (781 КБ)
1.0.1-release.1+1.21.4-fabricРелиз1.21.4fabric19 мая 2025 г.Скачать (773 КБ)
1.0.0-release.1+1.21.4-quiltРелиз1.21.4quilt1 мая 2025 г.Скачать (780 КБ)
1.0.0-release.1+1.21.4-fabricРелиз1.21.4fabric1 мая 2025 г.Скачать (771 КБ)
1.0.0-rc.2+1.21.4-quiltБета1.21.4quilt1 мая 2025 г.Скачать (780 КБ)
1.0.0-rc.2+1.21.4-fabricБета1.21.4fabric1 мая 2025 г.Скачать (771 КБ)
1.0.0-rc.1+1.21.4-quiltБета1.21.4quilt26 апреля 2025 г.Скачать (774 КБ)
1.0.0-rc.1+1.21.4-fabricБета1.21.4fabric26 апреля 2025 г.Скачать (766 КБ)
1.0.0-alpha.5+1.21.4-quiltАльфа1.21.4quilt31 марта 2025 г.Скачать (764 КБ)
1.0.0-alpha.5+1.21.4-fabricАльфа1.21.4fabric31 марта 2025 г.Скачать (764 КБ)
1.0.0-alpha.4+1.21Альфа1.21, 1.21.1fabric, quilt17 августа 2024 г.Скачать (324 КБ)

Показаны последние 15 из 19 версий.

Ченджлог

1.1.0-beta.3+fabric-1.21.11Бета1.21.11 · 20 мая 2026 г.
  • Updated package to dev.dannytaylor.luminance.
    • Any mods using Luminance will need to be updated to support this version onwards.
  • Renamed uses of "Fabulous" to "Improved Transparency".
  • Moved classes and methods also used by Perspective to Seam.
  • Bundled Seam 1.0-alpha.2
  • non-resourcepack backed shader registration

source code has been moved, it's now located at https://git.gay/Perspective/luminance

1.1.0-beta.2+fabric-1.21.11Бета1.21.11 · 18 апреля 2026 г.
  • Fixed mixin for panorama alpha uniform, so the game no longer crashes. (Nettakrim)
1.1.0-beta.1+fabric-1.21.11Бета1.21.11 · 17 апреля 2026 г.

Please Note: This changelog might not contain all the changes (there's been alot), and our resource pack documentation is currently out of date.

  • Updated to 1.21.11 (Nettakrim)
  • Dynamic Uniforms now use namespaced identifiers. (Nettakrim)
    • luminance_alpha_smooth is now luminance:alpha/smooth.
  • Added and updated several shaders, and dynamic uniforms. (Nettakrim, dannytaylor)
  • Fixed MC-307206. (Nettakrim)
  • Remapped to Official Mappings in preparation for 26.1. (dannytaylor)
  • Replaced RenderTypes with RenderLocations. (dannytaylor, Nettakrim)
    • Mods can now register custom RenderLocations.
  • ShaderTime now advances when paused or not in a world. (dannytaylor)
    • We now use the raw tick progress.
  • Updated Shader Dataloader. (dannytaylor)
    • Replaced disable_ui_rendertype/disable_game_rendertype/disable_screen_mode with fallback_over_ui.
    • Replaced disable_ui_background_rendertypes with fallback_under_ui.
    • Added photosensitive.
  • Added photosensitive callable to ShaderRender event. (dannytaylor)
    • When true, shaders that have photosensitive enabled won't be rendered.
  • Added Shader Stacks. (dannytaylor)
    • This is nearly identical to the "Shader Pack" system from Perspective.
      • This was moved into Luminance to allow for greater mod compatibility.
  • Slowed down minecraft:wobble by four times. (Nettakrim)
    • This makes it alot easier on the eyes, at the cost of Mojang's artistic vision.
  • Updated Attributions Screen. (dannytaylor)

Known Issues

  • Hand Depth is not merged into the minecraft:main depth buffer.
    • This isn't super noticable on shaders that are rendered on the luminance:level render location.
      • Shaders that use Improved Transparency depth buffers - such as luminance:outlined - should fallback to this render location.
  • luminance:graphics_mode uniform has been removed.
    • We will likely add seperate uniforms for each option as this has been split into "presets".
  • Shader uniforms cannot be overriden from a stack.
1.1.0-alpha.1+1.21.4-fabricАльфа1.21.4 · 27 августа 2025 г.
  • Updated config screens.
    • Config and Information screens have been merged into a list screen.
    • Credits/Attribution screen is now translatable.
1.0.1-release.1+1.21.4-quiltРелиз1.21.4 · 19 мая 2025 г.
  • Perspective uniform now defaults to 0.0F. (legotaylor)
  • Added luminance:post/color_overlay shader. (legotaylor)
  • Updated silhouette shaders to use the color overlay shader. (legotaylor)
  • Added new uniform luminance_renderType, that returns the most appropriate rendertype for where the game currently is in its render loop (nettakrim)
  • Added uniforms for arbitrary effect duration and amplitude (presence can be checked by seeing if duration is anything other than 0 [-1 is infinite]), defaults to minecraft:speed. (nettakrim)
1.0.1-release.1+1.21.4-fabricРелиз1.21.4 · 19 мая 2025 г.
  • Perspective uniform now defaults to 0.0F. (legotaylor)
  • Added luminance:post/color_overlay shader. (legotaylor)
  • Updated silhouette shaders to use the color overlay shader. (legotaylor)
  • Added new uniform luminance_renderType, that returns the most appropriate rendertype for where the game currently is in its render loop (nettakrim)
  • Added uniforms for arbitrary effect duration and amplitude (presence can be checked by seeing if duration is anything other than 0 [-1 is infinite]), defaults to minecraft:speed. (nettakrim)
1.0.0-release.1+1.21.4-quiltРелиз1.21.4 · 1 мая 2025 г.

So... what's Luminance? Luminance is a library mod that helps with shader rendering. It helps mod developers setup shader rendering so they can focus on the shaders themselves! Luminance also adds Dynamic Uniforms, which allow developers to pass information to their shaders - we also include some default ones!

Are you a user that wants to see Luminance in action?
Try out Souper Secret Settings by Nettakrim, or Perspective by dannytaylor!

Luminance Documentation hasn't been written yet (it's on the top of our todo list!), however both Souper Secret Settings and Perspective are both open source so you can always see how we use it!
You can also check out our Resourcepack Guide which explains how to create a luminance shader resource pack.

Luminance Shader Resource Reloader Format

To make things simple, we've added a new resource to resource packs, which is located at assets/<namespace>/luminance/<id>.json.

{  
  "post_effect": "namespace:id", // defaults to `modid:shaderid` of the json file if not specified, this specifies the location of the post effect json.  
  "enabled": true, // defaults to true, specifies whether the shader can be used.  
  "disable_ui_rendertype": true, // defaults to false, specifies whether the shader can be rendered using the `UI` render type.  
  "registries": [ // If not provided, the shader will be registered to "luminance:main", if you do provide this, it will only be registered to the specified registries.  
    "luminance:main" // This is the default registry, most mods using Luminance should be using this.  
  ]
  "custom": {  
    "namespace": {} // defaults to new JsonObject(), can be obtained in the `ShaderRegistryEntry`.  
  }  
}  

Dynamic Uniforms

We include some default dynamic uniforms that any mod using Luminance can use in their shaders!

id type sub-uniforms config
luminance_panoramaAlpha float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_hudHidden float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isInGui float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_viewDistance float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_fov float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_fps float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_graphicsMode float(0.0-2.0)
luminance_eye vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_eye_fract vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_pos vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_pos_fract vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_cam vec3 (sub-uniforms are float) _x _y _z
luminance_cam_fract vec3 (sub-uniforms are float) _x _y _z
luminance_pitch float(-90.0-90.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_yaw float(-180.0-180.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_clipping float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_velocity float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentHealth float(0.0-luminance_maxHealth) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxHealth float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentAbsorption float(0.0-luminance_maxAbsorption) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxAbsorption float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentHurtTime float(0.0-luminance_maxHurtTime) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxHurtTime float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentAir float(0.0-luminance_maxAir) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxAir float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isAlive float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isDead float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isSprinting float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isSwimming float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isSneaking float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isCrawling float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isInvisible float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isWithered float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isPoisoned float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isBurning float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isOnGround float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isOnLadder float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isRiding float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_hasPassengers float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_biomeTemperature float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_alpha float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_perspective float(0.0-3.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_selectedSlot float(0.0-8.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_score float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_skyAngle float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_sunAngle float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isDay float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_starBrightness float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_time float(0.0-1.0) period
luminance_random float(0.0-1.0)

Custom Mod Menu Icon

Luminance adds a way to change the icon used for your mod. Want a custom icon that only shows on October 31st? You can do that: CompatHelper.addOverrideModMenuIcon(new Couple<>("modid", "halloween"), () -> "assets/modid/icons/halloween.png", () -> LocalDate.now().getMonth() == Month.October && LocalDate.now().getDayOfMonth() == 31);
You can also add a Luminance badge to your mod using:
addLuminanceModMenuBadge("modid");

Iris Shaders Compatibility

You can render both Luminance and Iris shaders at the same time! You can also check if Iris has shaders enabled by using CompatHelper.isIrisShadersEnabled()

Licenced under LGPL-3.0-or-later

Developer's note
We're working on a way for one jar for both quilt, and fabric (and eventually neoforge - that's going to take some time though!). If you have any thoughts, please share them here!

1.0.0-release.1+1.21.4-fabricРелиз1.21.4 · 1 мая 2025 г.

So... what's Luminance? Luminance is a library mod that helps with shader rendering. It helps mod developers setup shader rendering so they can focus on the shaders themselves! Luminance also adds Dynamic Uniforms, which allow developers to pass information to their shaders - we also include some default ones!

Are you a user that wants to see Luminance in action?
Try out Souper Secret Settings by Nettakrim, or Perspective by dannytaylor!

Luminance Documentation hasn't been written yet (it's on the top of our todo list!), however both Souper Secret Settings and Perspective are both open source so you can always see how we use it!
You can also check out our Resourcepack Guide which explains how to create a luminance shader resource pack.

Luminance Shader Resource Reloader Format

To make things simple, we've added a new resource to resource packs, which is located at assets/<namespace>/luminance/<id>.json.

{  
  "post_effect": "namespace:id", // defaults to `modid:shaderid` of the json file if not specified, this specifies the location of the post effect json.  
  "enabled": true, // defaults to true, specifies whether the shader can be used.  
  "disable_ui_rendertype": true, // defaults to false, specifies whether the shader can be rendered using the `UI` render type.  
  "registries": [ // If not provided, the shader will be registered to "luminance:main", if you do provide this, it will only be registered to the specified registries.  
    "luminance:main" // This is the default registry, most mods using Luminance should be using this.  
  ]
  "custom": {  
    "namespace": {} // defaults to new JsonObject(), can be obtained in the `ShaderRegistryEntry`.  
  }  
}  

Dynamic Uniforms

We include some default dynamic uniforms that any mod using Luminance can use in their shaders!

id type sub-uniforms config
luminance_panoramaAlpha float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_hudHidden float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isInGui float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_viewDistance float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_fov float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_fps float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_graphicsMode float(0.0-2.0)
luminance_eye vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_eye_fract vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_pos vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_pos_fract vec3 _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_cam vec3 (sub-uniforms are float) _x _y _z
luminance_cam_fract vec3 (sub-uniforms are float) _x _y _z
luminance_pitch float(-90.0-90.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_yaw float(-180.0-180.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_clipping float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_velocity float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentHealth float(0.0-luminance_maxHealth) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxHealth float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentAbsorption float(0.0-luminance_maxAbsorption) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxAbsorption float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentHurtTime float(0.0-luminance_maxHurtTime) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxHurtTime float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_currentAir float(0.0-luminance_maxAir) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_maxAir float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isAlive float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isDead float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isSprinting float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isSwimming float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isSneaking float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isCrawling float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isInvisible float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isWithered float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isPoisoned float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isBurning float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isOnGround float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isOnLadder float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isRiding float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_hasPassengers float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_biomeTemperature float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_alpha float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_perspective float(0.0-3.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_selectedSlot float(0.0-8.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_score float(0.0+) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_skyAngle float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_sunAngle float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_isDay float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_starBrightness float(0.0-1.0) _delta, _prev, _smooth, _smooth_delta, _smooth_prev
luminance_time float(0.0-1.0) period
luminance_random float(0.0-1.0)

Custom Mod Menu Icon

Luminance adds a way to change the icon used for your mod. Want a custom icon that only shows on October 31st? You can do that: CompatHelper.addOverrideModMenuIcon(new Couple<>("modid", "halloween"), () -> "assets/modid/icons/halloween.png", () -> LocalDate.now().getMonth() == Month.October && LocalDate.now().getDayOfMonth() == 31);
You can also add a Luminance badge to your mod using:
addLuminanceModMenuBadge("modid");

Iris Shaders Compatibility

You can render both Luminance and Iris shaders at the same time! You can also check if Iris has shaders enabled by using CompatHelper.isIrisShadersEnabled()

Licenced under LGPL-3.0-or-later

Developer's note
We're working on a way for one jar for both quilt, and fabric (and eventually neoforge - that's going to take some time though!). If you have any thoughts, please share them here!

Комментарии

Загружаем…