

The bonus is that the fewer effects are much easier on your machine than some of these shader packs. This is vanilla Minecraft but just slightly prettier. Contains example code from MANY people.Vanilla Plus is a pack that really pares the shader experience down to shadows and god rays. GLSL sandbox that works in your browser.Hands-on tutorial that tests your skills as you read.

They are also not specifically about Minecraft.

These 1 two 2 tutorials include OpenGL code too, but you do not need to learn OpenGL for shaders.Information on canvas shaders (also not OptiFine).Information 1 on vanilla 2 shaders 3 (not OptiFine).Template pack which includes most of the basic files, but none of them actually do anything.Explanation and example code for shadows.Overview of how Minecraft renders things, buffers, and some example effects (with code, pictures, and explanations).Overview of OptiFine's pipeline, available programs and stages, varyings, and buffers.Alternate version of OptiFine's doc folder which looks nicer than the version on GitHub.You will learn different skills from both of these practices, so it is recommended to try both of them at least once, but start with whichever one you're more comfortable with.ģrd-party tutorials and useful resources for shader development

Once you have all that down, there are 2 common ways to start putting your skills into practice: edit someone else's pack, or make your own from scratch. This documentation can also be found inside the OptiFine.jar file you downloaded. In particular, look at shaders.txt and shaders.properties. OptiFine's rendering pipeline has a bit of documentation the doc folder. You can use any #version that your GPU/drivers support. Minecraft 1.17 will use #version 150, but you are not restricted to just these specific #versions. Anything that says #version 120 will be best. There are quite a few tutorials for this on the internet, but Minecraft in particular uses an old OpenGL version, so it might be useful to try to find an equally old GLSL tutorial. 3blue1brown on YouTube has a decent series on this here. Linear algebra is useful for shader development because vector and matrix operations are very common in shaders (and 3D graphics in general). There are 3 general sets of background knowledge for shader development: linear algebra, GLSL, and OptiFine's rendering pipeline. This page will link to resources that will help you get started with programming your own shaders using the various pipelines currently in use in Minecraft, with a focus on the OptiFine pipeline.
