Описание
## OptiFine-format shader packs, on Minecraft's native Vulkan renderer
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.
It started as a question, whether packs written for OpenGL over more than a
decade could run untouched on the renderer that now ships with the game. It is
one person's side project, worked on every day since July, and an early one:
the backend it runs on is marked experimental by the game itself.
It is built the way a lot of software gets built now: AI tools do a real share
of the typing and the debugging, and a human decides, tests against real packs
and against Iris, reviews every line and carries the blame for every bug. What
was taken from Iris and from Kroppeb's stareval is credited file by file in
the project's NOTICE, under the same licence. If any of that matters to you,
now you know. If the mod is useful, there is a coffee link below, and the
[issues](https://github.com/avpbynf/Vitrail-Shaders/issues) are where I answer.
### Before you install: it is a beta
- **The Vulkan backend is experimental**, marked so by the game itself: the
setting you have to turn on reads "Prefer Vulkan (Experimental)".
- **The world goes through your pack**: terrain, water, shadows, sky, clouds,
weather, particles, mobs, block entities, the held hand, name plates and
signs. What still comes from the game, the engine names in its log when a
place first draws, and that list shrinks release by release.
- **Some packs still come out wrong in places**, and a wrong picture is worse
than a missing one. The [table of packs actually tried](https://github.com/avpbynf/Vitrail-Shaders/blob/main/docs/compatibility.md) starts from
what you see and names the cause.
- **If what you want today is a finished picture, use [Iris](https://modrinth.com/mod/iris) on the
OpenGL backend instead.** It does that job well, and it is the reference this
engine is checked against, frame against frame.
### Bring your own pack
Vitrail is the engine, not the pack, and it can ship none: the packs belong to
their authors and their licences do not allow redistribution. These are the
best known of the packs it draws.
- **[Bliss](https://modrinth.com/shader/bliss-shader)**
- **[BSL](https://modrinth.com/shader/bsl-shaders)**
- **[Complementary Reimagined](https://modrinth.com/shader/complementary-reimagined)**
- **[Complementary Unbound](https://modrinth.com/shader/complementary-unbound)**
- **[Euphoria Patches](https://modrinth.com/mod/euphoria-patches)**
- **[I Like Vanilla](https://modrinth.com/shader/i-like-vanilla)**
- **[Lux](https://modrinth.com/shader/lux-v1)**
- **[Mellow](https://modrinth.com/shader/mellow)**
- **[Photon](https://modrinth.com/shader/photon-shader)**
- **[Sildur's Vibrant](https://modrinth.com/shader/sildurs-vibrant-shaders)**
- **[Solas](https://modrinth.com/shader/solas-shader)**
- **[Spooklementary](https://modrinth.com/shader/spooklementary)**
- **[iterationT](https://space.bilibili.com/57104224)** (on Bilibili, not on Modrinth or CurseForge)
Every other pack in the [table of packs actually tried](https://github.com/avpbynf/Vitrail-Shaders/blob/main/docs/compatibility.md) draws as well,
and the table says how close each one comes to Iris. A pack absent from it is
one I have not loaded, not one that is unsupported.
### After you install
- **Switch the game to Vulkan and restart it.** Video Settings, "Prefer Vulkan
(Experimental)". The backend is picked when the game boots, so it takes effect
on the next launch.
- **If the frame rate comes up short, there is a slider for it.** Video
Settings, on Vitrail's own page, "Render Scale": the world is drawn at 25 to
100 percent of the window and brought back to full size before the interface,
so menus, chat and the F3 screen stay sharp whatever the scale.
- **Distant Horizons is compatible**, and your pack's own DH programs draw its
far terrain. On Fabric, install it like any other mod. On NeoForge its current
release still crashes on the Vulkan renderer (its own texture unwrapper, not
this mod), so install
**[this build](https://gitlab.com/avpbynf/distant-horizons/-/releases/vitrail-26.2-1)**
by hand instead.
- **Chloride is not needed**, and if you run it, five of its settings decide
what reaches your pack: Fast Chests and Fast Beds on the Performance page,
Max Entity Distance, Max Monster Distance and Max Block Entity Distance on
the Entities page. Vitrail names in the log at startup any it finds on.
Client only, one jar for Fabric and NeoForge. Iris can stay installed beside it,
on the Sodium version Iris asks for, which Vitrail runs on too: on Vulkan Vitrail
draws, on OpenGL Iris does, and switching the backend in the video settings
switches engines.
[The install guide](https://github.com/avpbynf/Vitrail-Shaders/blob/main/INSTALL.md)
has the rest.
### Links and credits
**If a pack or a mod does not work with Vitrail, please open an
[issue](https://github.com/avpbynf/Vitrail-Shaders/issues).** A pack that draws
wrong, a mod that clashes, a crash: every report helps, and if you want to take
part, pull requests are very welcome.
Source, what goes through a pack today, the changelog and the full
compatibility notes are all at
[Vitrail-Shaders](https://github.com/avpbynf/Vitrail-Shaders). It is also on
[CurseForge](https://www.curseforge.com/minecraft/mc-mods/vitrail-shaders).
LGPL-3.0-only. Parts of the pack loader and of the value catalogue are adapted
from [Iris](https://github.com/IrisShaders/Iris), which is LGPL-3.0 as well, and
the expression grammar is Kroppeb's stareval. What was taken and what was
changed on the way is recorded file by file in the project's NOTICE.