Skip to content

Vitrail Shaders

OptiFine-format shader packs, on Minecraft's native Vulkan renderer.

Vitrail on CurseForge Minecraft 26.2 Fabric and NeoForge Support Vitrail on Ko-fi


Sunken ruins in deep water, light shafts through the murk and drowned standing in it, rendered by Complementary Shaders on the Vulkan backend

Complementary Shaders, running unmodified on the Vulkan backend.

More screenshots

A chorus forest across the end stone, endermen standing among it, rendered by Complementary Shaders on the Vulkan backend

Complementary Shaders.

A cherry grove over a valley with waterfalls, rendered by BSL Shaders on the Vulkan backend

BSL Shaders.

Looking up at the sun from under the sea, shafts of light spreading from the surface, rendered by Bliss Shaders on the Vulkan backend

Bliss Shaders.

Minecraft 26.2 ships a native Vulkan renderer alongside the OpenGL one. Every shader pack that exists was written for OpenGL, and none of them run on it.

Vitrail runs them anyway, unmodified. It reads an OptiFine-format pack out of shaderpacks/, translates its GLSL once when the pack loads, and hands it to the compiler the game already embeds. Nothing translates while a frame is drawn.

One person's side project, and an early one: the backend it runs on is marked experimental by the game itself.

Quick start

  • One jar, both loaders. On CurseForge and on every release here.
  • Put it in mods/ next to Sodium. Client only.
  • Switch the game to Vulkan, in Options then Video Settings, and restart it.
  • Packs go in shaderpacks/ as they always have, and are picked from Vitrail's own settings screen.

INSTALL.md has the versions this needs, the Chloride settings that decide what reaches your pack, and what a game that came up on the wrong backend looks like.

What goes through your pack

Terrain, water, shadows, sky, clouds, weather, particles, mobs, block entities, the held hand, and the far terrain of Distant Horizons given a build of that mod that draws on this backend, which Other mods names. The settings screen reads the pack's own menu layout, and a resource pack's normal and specular maps are served beside the blocks they belong to.

The rest still comes from the game, and that set moves from one release to the next: the engine logs which families do when a place first draws, and pack compatibility starts from what you are seeing and names the cause. If what you want today is a finished picture, use Iris on the OpenGL backend instead, which is the reference this engine is checked against.

Read more

If you want to Read
Know why the format is OptiFine's, and how this sits next to Iris, Sulkan and Aperture Why this exists
Work out why your pack looks wrong, starting from what you see Pack compatibility
See what changed from one version to the next CHANGELOG.md
Install it, and know what it refuses to run beside INSTALL.md
Understand how any of this works The documentation

Support

Buy Me a Coffee at ko-fi.com

Contributing

Open an issue before writing anything substantial. I order the work by risk, and code that lands ahead of what can be verified is hard to accept however good it is.

CONTRIBUTING.md opens on the short version, what refuses a first push, and carries the rest.

Licence

LGPL-3.0-only, in LICENSE, with GPL-3.0.txt beside it because version 3 of the Lesser GPL is written as permissions on top of the ordinary GPL rather than as a standalone document.

Parts of the pack loader and of the value catalogue are adapted from Iris, which is LGPL-3.0 as well. What was taken and what was changed on the way is recorded in NOTICE.

About

OptiFine-format shader packs, on Minecraft's native Vulkan renderer

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

37 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages