You’ve probably heard about shaders in Minecraft, the mods or addons that make the game look more realistic or cinematic. You might’ve also heard various claims, such as Java Edition having better shaders, or even that the term “shaders” itself refers to a specific visual style. Are these claims true? What actually are shaders, and how do they relate to Minecraft?

What are shaders?

The History behind shaders

To fully understand what shaders are, it’s important to get a little background information on the history of computer graphics overall. This section will be slightly more technical, so if you don’t entirely care about this you can skip it.

In the past, GPUs were a lot less flexible than they are today. They had a set list of features and a fixed rendering pipeline (known as a fixed function pipeline) to draw graphics, and the game developers had the ability to turn various features on or off, utilise them in different ways, and provide their own textures and data. While developers were resourceful and created impressive visuals for the time with these limitations, it became apparent that more control was needed.

This led to the development of an alternative rendering model for GPUs, where rather than the GPU providing various graphics features for the developer to utilise, they instead allowed running specially designed programs that replaced various stages of the render pipeline. These programs are collectively referred to as shaders. Rather than a GPU having to provide a selection of different ways it can “blend” two textures together, now the developer can write their own blending program that does it exactly the way they want. This improved game compatibility across GPUs and significantly expanded what was possible from a graphical perspective.

How does this apply to Minecraft?

Early on in Minecraft Java Editions development, the game was written using OpenGL’s fixed function pipeline. The graphics were simple, and if you only need basic functionality then it can sometimes be easier to not use shaders. Shaders, when written well, will generally perform significantly better than a fixed function pipeline. So over time both Java Edition and Bedrock Edition have moved towards using shaders for rendering.

So, what do shaders actually do?

So, to put it simply, shaders themselves can do nearly anything. They’re a program that runs on the GPU to tell it how to process graphics. There are multiple different types of shaders, and they each run at different stages of the rendering pipeline. A shader does not imply any fancy visual effects, or any specific look, shaders are just how graphics in games are written now. Some shaders might do absolutely nothing but pass data through as-is, some might do a task as simple as flipping a texture, and others might add complicated visual effects.

What are the shaders you can download for Minecraft?

Bringing this back to the context of Minecraft itself, shader packs that you can install for Java Edition or Bedrock Edition, are basically a set of visual effect shaders that different people have made for the game to tweak the graphics. It’s sort of like writing a mod, but the program you’re writing runs purely in the game’s renderer rather than modifying any game code or logic.

There have been various trends in visual design in games, such as the odd affection for ridiculous levels of bloom in the early 2010s, so it’s not uncommon for many different shader authors to try creating similar effects. This can in isolation lead to people mistaking the current visual trend as what all shaders look like, but shaders can be any type of visual style. If you wanted, you could write a shader that tinted everything in the game orange.

For example, I found a shader pack on Modrinth designed to be as ugly as possible. This doesn’t fit any specific design trend. In fact, it looks like every design trend turned up to eleven and blended together. You can look through Modrinth’s “Cursed” category to see many more examples of unconventional usage of shaders.

So, what about Java Edition vs Bedrock Edition?

Coming back to this claim, this one is technically a bit more complicated to objectively answer. While in theory shaders can create any visual style, these are still programs that take inputs and create outputs. As each platform uses a different codebase, these don’t behave identically in terms of how they actually run shaders. This means that certain effects might be harder to achieve on certain platforms, or outright impossible if the required information isn’t available or a shader program isn’t run at the right spot. The other aspect that can vary per platform is performance, with certain visual effects faster to run on certain platforms than others.

In Java Edition, most shaders are run via Iris or OptiFine, rather than using the inbuilt shader support. This is because the inbuilt shader support is significantly less versatile than the ones provided by these mods. On the Bedrock end, the game has significantly better inbuilt shader support but lacks the ability to install a mod to improve it further.

In Bedrock Edition however, these are actively being worked on in a preview release, hidden behind a configuration option. While it’s customisations mostly extend to configuring the game’s existing shader pipeline, it’s still a fairly powerful system allowing highly varied visuals. The less conventional the visual appearance you're going for, the less likely it is that Bedrock will support it, compared to Java Edition. This will of course likely change and improve as the feature is worked on, as it’s still in active development.

Overall, this means that out of the box, Bedrock will have a much wider range of shaders available when the preview is enabled, but while using mods it’s possible for more to be done on Java Edition. In saying that however, this only really matters when using shaders that don’t fit within the existing shader support of the game. A vast majority of possible effects anyone would realistically want will be possible in both Bedrock Edition, and Java Edition with a mod such as Iris. So, the answer to “which is better” is going to really depend on what specific visual style you’re looking for, but in most cases will be “either.” Both are very capable but will have small differences when it comes to specific implementation details that might impact how well very specific effects can be implemented.

Conclusion

Shaders as a topic are often misunderstood throughout the Minecraft ecosystem. They’re a core tenet of modern graphics programming and make up the basis of almost everything you visually see in modern games. They have no one specific style, and neither Bedrock nor Java Edition necessarily have better looking shaders than the other.

About the Author
Maddy Miller

Hi, I'm Maddy Miller, a Senior Software Engineer at Clipchamp at Microsoft. In my spare time I love writing articles, and I also develop the Minecraft mods WorldEdit, WorldGuard, and CraftBook. My opinions are my own and do not represent those of my employer in any capacity. Find out more.