Shaderpacks have no impact on the CPU, aside from one effect: dynamic shadowmapping, which require the world to be rendered twice. Any relatively modern CPU will be able to handle these, though for less powerful CPUs like those on laptops, lowering render distance may be required for playable framerates.
All other effects in shaderpacks scale on the GPU. Due to the sheer variety of available shaderpacks there is no single system requirement. The Shaderpacks page lists a rough performance category for each pack, ranging from Potato (which should run even on integrated GPUs several generations old) to Extreme (which require a beefy high end GPU to even be playable at 1080p).
Shaderpacks themselves have little effect on RAM. However, they can take advantage of advanced resource pack features (called PBR materials) which can approximately triple your RAM usage. Beware of this if you wish to run high resolution resource packs - 32GB will be required for the highest end configurations, along with around 10GB of VRAM. However, in modern Minecraft versions you do not need to change your allocated RAM amount to accomodate this.
As for the operating system, most if not all packs are compatible with Windows. GNU/Linux and macOS compatibility are less universal due to low market share and arcane driver restrictions respectively. See the GPU column in the Shaderpacks page for specifics.
As a final note you should always make sure to use a fairly recent graphics driver version, since older versions may cause issues that are no longer taken into account by Shaderpack developers.
Choosing a ShadersMod
OptiFine is the main mod for Minecraft Java Edition that allows shader packs to work. There are a few other mods which aim to load shaders and shader packs. If you're curious what these other mods are, then read the following paragraphs. Otherwise, feel free to skip them and proceed to the next section.
ShadersMod was the first mod to load shader packs in Minecraft Java Edition. But it's also been abandoned for quite a long time now ever since OptiFine started including that functionality in 1.8, and later 1.7.10. As such, OptiFine now has a lot of new features that ShadersMod didn't have, and almost all modern shader packs will no longer work with ShadersMod.
Iris is a new mod for Fabric which is designed to be able to load OptiFine shader packs. Its primary benefit is improved performance over OptiFine, especially when combined with Lithium and Phosphor/Starlight. Iris is also open-source, which means that it will be easier to fix compatibility issues between Iris and other mods. However, Iris is still in development, and it does not yet support all the features that some OptiFine shader packs require.
Focal is a new mod which aims to completely throw out Minecraft's rendering pipeline and allow shader packs to replace it with their own. This increases the scope of what shader packs can do, and will also allow shader packs to use Vulkan. Right now, Focal is still in development, and the only shader pack which can use it is ContinuumRT. Once Focal is a bit more complete though, other shader developers will start to be able to make use of it too. More information about Focal and ContinuumRT can be found on the Continuum website.
Canvas is a Fabric mod whose main purpose is to give mod authors more control and options for rendering modded blocks. It can also be used for building shader packs, but the design is entirely different than OptiFine and does not yet support all the features needed for a full shader pack implementation. Unlike OptiFine shader packs, Canvas shader packs can be mixed together by adding multiple resource packs.
Minecraft has technically had shader support since 1.7, but it only used shaders for post-processing effects. Those effects can still be seen today by spectating certain mobs, like creepers and spiders. In 1.17 though, Minecraft expanded its shader support, and allowed resource packs to contain shaders. There are a few shader packs which use the vanilla pipeline, but they are not as advanced or powerful as the OptiFine pipeline. More information about vanilla shader packs can be found on our Discord server.
The official download page contains links for many versions of Minecraft. The most recent version is displayed first. All other versions can be found by clicking "Show all versions". This will show the recommended version of OptiFine for each Minecraft version. If you want to try the latest version instead of the recommended version, you can find that by clicking "+ Preview versions" for the version of Minecraft you're using. If you happen to need an older version of OptiFine, you can find them by clicking "+ More".
The OptiFine.jar file will work as a stand-alone installation wizard. Simply double click the OptiFine.jar file to run it, and then click "Install".
If the OptiFine.jar file does not do anything when you double click it, make sure you have Java installed. You can download Java from Adoptium.
If the OptiFine.jar file opens with something else unrelated to Java (like 7zip or WinRar), try running Jarfix first.
Important note: The OptiFine installation wizard will only work with the official Minecraft launcher provided by Mojang.
OptiFine has built-in compatibility with Forge. As such, you can just put your OptiFine.jar file in your mods folder just like any other forge mod. The official download page will also say which version of Forge is supported for the OptiFine version you downloaded. Using a different version of Forge might not work correctly.
When using Fabric, you will also need to install OptiFabric in addition to OptiFine. From there, simply put both OptiFabric.jar and OptiFine.jar into your mods folder, similarly to Forge.
Instructions on installing OptiFine with MultiMC can be found on MultiMC's wiki.
For a list of available Shaderpacks please check the Shaderpack list.
Once you've downloaded a pack, place the downloaded zip-file in .minecraft/shaderpacks. Some browsers automatically unzip the downloaded file, in that case move the unzipped folder into your shaderpacks folder and make sure that the folder structure looks like this:
- shaderpacks - [Shaderpack name] - shaders
Some shaderpacks require special installation, such as bundling multiple versions into one zip. If this is the case, there will typically be an indicator in the zip-file name. If the shaderpacks folder does not exist, run the game once or just manually create it. Then, load up the game and select it from options > video settings > shaders. Usually the Shaderpacks also have additional options that can be configured. These options can be found under "shader options" in the shader selection screen.