
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-v0fabric-key-binding-api-v1fabric-lifecycle-events-v1
- Java 21 or later.
- Built with the Microsoft build of OpenJDK 21.0.2.
How to add Luminance to your mod:
- 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" } } - Add the following line to the dependencies section of your build.gradle:
include(modImplementation "maven.modrinth:luminance:${project.luminance}") - Add the following line to your gradle.properties:
- Replace 1.0.0-rc.1+1.21.4-fabric with the latest version of Luminance!
- 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
- This can be found on the version page on Modrinth.
- Replace 1.0.0-rc.1+1.21.4-fabric with the latest version of Luminance!
- 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.
How to Install Luminance (Mod)
Luminance by dannytaylor is verified for Fabric, Quilt across Minecraft versions 1.20.5, 1.20.5-rc2, 1.20.5-rc3, 1.20.6, 1.21, 1.21.1, 1.21.11, 1.21.4 (latest release: 1.1.0-beta.8+fabric-1.21.11, file size: 828 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.20.5, 1.20.5-rc2, 1.20.5-rc3, 1.20.6, 1.21, 1.21.1, 1.21.11, 1.21.4) and platform (Fabric, Quilt).
- Make sure you have the compatible loader or environment installed for Fabric, Quilt.
- Move the downloaded Luminance file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 |
Game crashes if Improved Transparency targets are used when Improved Transparency is off. ([#2](https://git.gay/Perspective/luminance/issues/2))
### Bug Fixes
- Fixed null error with shader stacks name/description.
- Added **Force Transparency Targets** config option.
Report bugs [here](https://git.gay/Perspective/luminance/issues).
- Fixed null check error... (i am so silly SOBBING)
- Updated bundled seam version.
- Fixed silhouette post effects as they were missed in the previous beta release. (Fixes crashing: [Perspective/1.x#2](https://git.gay/Perspective/1.x/issues/2))
luminance:outlinedno longer uses multiple depths. (Fixes crashing: [Perspective/1.x#2](https://git.gay/Perspective/1.x/issues/2))- This shader is used by
luminance:outlined,luminance:outlined2,luminance:silhouette, andluminance:silhouette2. - Replaced
SpectatorHandler.ModewithPriorityMode. SpectatorPriorityModeValuehas been renamed toPriorityModeValue.- Added
always_onobject to shader registration. - Optionally takes
location, andpriority. - If not provided, defaults to
luminance:game, and0. - Post effects can now be registered more than once as different shaders.
- 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
- Fixed mixin for panorama alpha uniform, so the game no longer crashes. ([Nettakrim](https://modrinth.com/user/Nettakrim))
> 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](https://modrinth.com/user/Nettakrim))
- Dynamic Uniforms now use namespaced identifiers. ([Nettakrim](https://modrinth.com/user/Nettakrim))
luminance_alpha_smoothis nowluminance:alpha/smooth.- Added and updated several shaders, and dynamic uniforms. ([Nettakrim](https://modrinth.com/user/Nettakrim), [dannytaylor](https://modrinth.com/user/dannytaylor))
- Fixed [MC-307206](https://bugs.mojang.com/browse/MC/issues/MC-307206). ([Nettakrim](https://modrinth.com/user/Nettakrim))
- Remapped to Official Mappings in preparation for 26.1. ([dannytaylor](https://modrinth.com/user/dannytaylor))
- Replaced RenderTypes with RenderLocations. ([dannytaylor](https://modrinth.com/user/dannytaylor), [Nettakrim](https://modrinth.com/user/Nettakrim))
- Mods can now register custom RenderLocations.
- ShaderTime now advances when paused or not in a world. ([dannytaylor](https://modrinth.com/user/dannytaylor))
- We now use the raw tick progress.
- Updated Shader Dataloader. ([dannytaylor](https://modrinth.com/user/dannytaylor))
- Replaced
disable_ui_rendertype/disable_game_rendertype/disable_screen_modewithfallback_over_ui. - Replaced
disable_ui_background_rendertypeswithfallback_under_ui. - Added
photosensitive. - Added photosensitive callable to ShaderRender event. ([dannytaylor](https://modrinth.com/user/dannytaylor))
- When true, shaders that have
photosensitiveenabled won't be rendered. - Added Shader Stacks. ([dannytaylor](https://modrinth.com/user/dannytaylor))
- This is nearly identical to the "Shader Pack" system from [Perspective](https://modrinth.com/mod/mclegoman-perspective).
- This was moved into Luminance to allow for greater mod compatibility.
- Slowed down
minecraft:wobbleby four times. ([Nettakrim](https://modrinth.com/user/Nettakrim)) - This makes it **alot** easier on the eyes, at the cost of Mojang's artistic vision.
- Updated Attributions Screen. ([dannytaylor](https://modrinth.com/user/dannytaylor))
## Known Issues
- Hand Depth is not merged into the
minecraft:maindepth buffer. - This isn't super noticable on shaders that are rendered on the
luminance:levelrender location. - Shaders that use Improved Transparency depth buffers - such as
luminance:outlined- should fallback to this render location. luminance:graphics_modeuniform 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.
- Updated config screens.
- Config and Information screens have been merged into a list screen.
- Credits/Attribution screen is now translatable.
- Perspective uniform now defaults to
0.0F. (legotaylor) - Added
luminance:post/color_overlayshader. (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)
- Perspective uniform now defaults to
0.0F. (legotaylor) - Added
luminance:post/color_overlayshader. (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)
- Are you a user that wants to see Luminance in action?**
> 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](https://github.com/mclegoman/luminance/blob/master/ResourcepackGuide/ResourcepackGuide.md) 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, ...
- Are you a user that wants to see Luminance in action?**
> 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](https://github.com/mclegoman/luminance/blob/master/ResourcepackGuide/ResourcepackGuide.md) 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, ...
- Fixed Hand Depth. (Nettakrim)
- Added
luminance:aaantialias shader. (dannytaylor, Nettakrim) - Updated variable, and function names to be more relevant for the context of shader rendering. (dannytaylor)
- GAME -> UI, SCREEN_BACKGROUND -> UI_BACKGROUND, afterGameRender -> afterUiRender, afterScreenBackgroundRender -> afterUiBackgroundRender, afterHandRender -> afterVanillaPostEffectRender, afterWeatherRender -> afterFabulousRender
- Updated luminance json dataloader. (dannytaylor)
- "disable_game_rendertype" has been renamed to "disable_ui_rendertype".
- If "disable_ui_rendertype" cannot be found, it will check for "disable_game_rendertype", and "disable_screen_mode", before defaulting to false.
_smoothuniforms now lerp with a nonlinear deltatime factor, such that they will be the same speed regardless of framerate. (Nettakrim)- changed default value for
luminance:post/scanlinesAmount uniform from 800 to 2 (it looks nearly identical but is in the range where it directly affects the size of the lines, instead of only working because of moire with pixels). (Nettakrim) - Added
luminance_camandluminance_cam_fractuniforms. (Nettakrim) - Added
luminance_clippinguniform that returns the near and far clipping planes, this allows linearizeDepth to be actually correct. (Nettakrim) - Updated the alpha slider used in the config screen to have it's own class. (it's functionally the same). (Nettakrim)
> **Developers note**
> There is currently a bug with our development environment that causes mod-loader specific classes to *sometimes* not be loaded, however this doesn't effect the final build.
> After releasing v1.0, I'll work on a fix for this, which will also allow for a merged jar for both quilt and fabric - and eventually neoforge.
- Fixed Hand Depth. (Nettakrim)
- Added
luminance:aaantialias shader. (dannytaylor, Nettakrim) - Updated variable, and function names to be more relevant for the context of shader rendering. (dannytaylor)
- GAME -> UI, SCREEN_BACKGROUND -> UI_BACKGROUND, afterGameRender -> afterUiRender, afterScreenBackgroundRender -> afterUiBackgroundRender, afterHandRender -> afterVanillaPostEffectRender, afterWeatherRender -> afterFabulousRender
- Updated luminance json dataloader. (dannytaylor)
- "disable_game_rendertype" has been renamed to "disable_ui_rendertype".
- If "disable_ui_rendertype" cannot be found, it will check for "disable_game_rendertype", and "disable_screen_mode", before defaulting to false.
_smoothuniforms now lerp with a nonlinear deltatime factor, such that they will be the same speed regardless of framerate. (Nettakrim)- changed default value for
luminance:post/scanlinesAmount uniform from 800 to 2 (it looks nearly identical but is in the range where it directly affects the size of the lines, instead of only working because of moire with pixels). (Nettakrim) - Added
luminance_camandluminance_cam_fractuniforms. (Nettakrim) - Added
luminance_clippinguniform that returns the near and far clipping planes, this allows linearizeDepth to be actually correct. (Nettakrim) - Updated the alpha slider used in the config screen to have it's own class. (it's functionally the same). (Nettakrim)
> **Developers note**
> There is currently a bug with our development environment that causes mod-loader specific classes to *sometimes* not be loaded, however this doesn't effect the final build.
> After releasing v1.0, I'll work on a fix for this, which will also allow for a merged jar for both quilt and fabric - and eventually neoforge.