Version 3.0.0-alpha.1:
Partially updated to MC 1.21.2
This update contains major breaking changes made by Mojang to shader declarations preparing the terrain for Vibrant Visuals. More breaking changes should be expected for later versions.
For this first alpha, only ShaderEffectManager#manage, ManagedShaderEffect and basic uniform manipulation methods are expected to work.
Feedback is welcome on the Satin GitHub page.
Changes
- Post process shaders are now loaded from
post_effectandshadersinstead of respectivelyshaders/postandshaders/program. By convention, files previously inshaders/programshould go to theshaders/postsubdirectory. - Identifiers for
ManagedShaderEffecthave changed:mymod:shaders/post/example.jsonbecomesmymod:example(theexample.jsonfile also needs to be moved to thepost_effectdirectory) - Includes (loaded from
shaders/include) are now available in post process shaders - Post-process effect format has changed:
inputstake asampler_name, which will be suffixed with "Sampler" (e.g."sampler_name": "In"becomes"name": "InSampler"in the shader definition)
see full changelog here
Version 2.0.0:
Updated to MC 1.21
Changes
- The root package has been changed from
ladysnake.satintoorg.ladysnake.satin- global search-replace of
ladysnake.satin->org.ladysnake.satinshould do the trick for the migration in your projects
- global search-replace of
Removals
- Removed the
nanoTimeparameter inPostWorldRenderCallbackandPostWorldRenderCallbackV2(deprecated since 1.17.0) - Removed the
ShaderEffectManager#manageProgrammethods (deprecated since 1.6.0) - Removed deprecated
GlMatricesmethods (deprecated since 1.1.0)
see full changelog here
Version 1.18.0:
Additions
- Added
WorldRendererReloadCallback, an event that gets triggered when e.g. video settings are updated or the player joins a world
Changes
- Shaders' init callbacks now also run during the above event
- This fixes resource leaks caused by setting a sampler uniform to a vanilla Framebuffer in those callbacks
- Added a warning in the logs for bad framerate when installed together with the Vivecraft mod
see full changelog here
Version 1.17.0:
Updated to MC 1.20.5
Additions
- Added
PostWorldRenderCallbackV3, with the projection and model-view matrices passed in
Changes
- The
nanoTimeparameter inPostWorldRenderCallbackandPostWorldRenderCallbackV2has been deprecated, and is subject to removal in a future version
see full changelog here
Version 1.14.0:
Updated to MC 1.20.1
Additions
- Added the
satin:formatframebuffer extension (big thanks to Will BL !)
Changes
- Moved publication to the ladysnake maven (
maven.ladysnake.org/releasesinstead ofladysnake.jfrog.io/mods) - Changed the maven group to
org.ladysnake
Refer to the readme for updated buildscript instructions.
see full changelog here


