What Is PBR in Minecraft? (LabPBR Explained)
PBR is what makes metal look like metal, water look wet, and stone look rough in Minecraft. Here is what it actually is, how the LabPBR standard packs that information, and why none of it shows up without a shader.
PBR (Physically Based Rendering) in Minecraft means a resource pack ships extra normal, height, and specular maps alongside each texture, so blocks reflect, scatter, and catch light realistically instead of looking flat. LabPBR is the community standard that defines how those maps are packed, and you need a shader (Iris or OptiFine on Java, or Bedrock RTX) to read them — vanilla Minecraft cannot.
PBR in plain English
Out of the box, a Minecraft block is a single flat image stretched across a cube. The game shades it with simple ambient lighting, so a gold block, a stone block, and a block of water are lit in basically the same way. There is no sense that one is shiny and one is rough, because the game has no information telling it so.
Physically Based Rendering fixes that by describing each surface the way light actually behaves on it in the real world. Instead of one image per block, a PBR resource pack ships a small set of images per block. The base colour stays the same, but the extra maps answer questions the renderer needs to ask: which way is this surface facing at every pixel? how bumpy is it? is it metal? how rough or polished is it?
Feed those answers to a renderer that knows the physics of light, and a polished diamond block throws sharp highlights, wet cobblestone gleams where a puddle sits, and rough sandstone stays matte. That is the whole idea: the pack stores material properties, and the shader turns them into believable lighting. It is the same approach used by modern game engines and film, scaled down to Minecraft's block grid. For the bigger picture of how packs, shaders, and lighting combine, see our realistic texture pack guide.
LabPBR specular workflow
A computer image has four channels — red, green, blue, and alpha. A texture only needs RGB for colour, which leaves spare channels in the extra maps to carry material data. The catch is that a shader has to know which channel means what. That agreement is called a specular workflow, and on Java the de-facto community standard is LabPBR.
LabPBR is a convention, not a mod or a file you install. It defines, for the specular map, that the red channel stores smoothness (how polished the surface is), the green channel stores reflectance or metalness, and the remaining channels carry effects like sub-surface scattering and emissiveness — so a lamp or lava can glow on its own. Because most modern Java shaders read this layout, a pack authored to LabPBR works across many of them without re-exporting.
This matters because LabPBR is not the only convention that ever existed. Older formats such as the "Old PBR" / SEUS-style layouts pack the same kinds of data into different channels. A pack built for one standard can look wrong under a shader expecting another — overly shiny, oddly metallic, or glowing where it should not. That is exactly why packs tell you which standard they use, and why a single pack sometimes ships separate map sets for Java and for Bedrock.
Why one standard helps everyone
Agreeing on LabPBR means pack authors export once and shader developers read one layout, instead of every combination needing custom work. It is the quiet reason the modern realism scene is as interoperable as it is. Optimum Realism's shader page lists the loaders and shaders our LabPBR maps are tested against.
Normal, height, and specular maps
A PBR pack ships up to three extra maps per texture. Each one answers a different question for the renderer:
- Normal map — encodes the direction each pixel faces. This fakes fine surface detail (mortar lines between bricks, the grain in wood) so light catches the bumps without adding any geometry. It is the single biggest reason a PBR surface stops looking like a flat sticker.
- Height map — a greyscale image where bright means "high" and dark means "low." Shaders use it for parallax occlusion mapping (POM), which makes cobblestone and brick look like they have real depth you can almost reach into, and for self-shadowing inside that depth.
- Specular map — the LabPBR-packed map described above, carrying smoothness, reflectance/metalness, and the glow channels. This is what tells the shader that gold is metal, ice is glossy, and dirt is matte.
Put together, the colour map says what colour a block is, the normal map says which way it faces, the height map says how deep its detail goes, and the specular map says what it is made of. A renderer with all four can light a block almost the way the real material would behave. If your textures look flat or weirdly shiny, it usually means one of these maps is missing or being read with the wrong workflow — our guide on flat or shiny textures walks through the fixes.
Why a shader is required
Here is the part that trips up most new players: vanilla Minecraft cannot use PBR maps at all. Its lighting model has no concept of normals, smoothness, or metalness, so even if a pack ships perfect specular and normal maps, the unmodified game simply ignores them and shows you the flat base textures. PBR data is inert without something to interpret it.
That "something" is a shader. On Java Edition you install a shader loader — Iris or OptiFine — and then a shader pack (such as Complementary, BSL, or SEUS) that supports LabPBR. The loader hands your textures and maps to the shader, and the shader runs the lighting maths every frame. No loader, no shader, no PBR. Our shader install guide covers the exact steps, and if things do not light up, shaders not working lists the usual causes.
This split — pack provides the materials, shader does the rendering — is why "PBR" and "shaders" are related but not the same thing. You can run a shader without a PBR pack (you just get nicer global lighting on flat textures), and you can install a PBR pack without a shader (nothing changes). You need both for the full effect.
PBR on Bedrock RTX
Bedrock Edition takes a different road to the same destination. Instead
of Java-style shader packs, Bedrock has built-in
RTX ray tracing on
supported devices. The PBR idea is identical — surfaces still need
normal, height, and material data — but Bedrock uses its own texture-set
format (a texture_set.json pointing at colour, normal/heightmap,
and a metalness-emissive-roughness map) rather than LabPBR specular maps.
The practical upshot: a pack's Java LabPBR maps and its Bedrock RTX maps are not interchangeable. They describe the same materials but in different file layouts for different renderers. A cross-platform pack therefore ships both. With RTX enabled, Bedrock then does true ray-traced reflections, shadows, and global illumination that read those maps directly.
Optimum Realism is built around exactly this: LabPBR-tested normal and specular maps for Java shaders, and a separate ray-tracing texture set for Bedrock RTX, so the same realistic materials work on both platforms. The free 64x edition already includes the full PBR data — higher resolutions are available through Patreon for players who want even sharper detail. You do not have to author any of this yourself; you just add the shader (or enable RTX) and the maps do their job.
FAQ
Does PBR work in vanilla Minecraft without a shader?
No. Vanilla Minecraft has no PBR lighting model, so it ignores normal, height, and specular maps. On Java you need a shader loader (Iris or OptiFine) with a shader that reads LabPBR; on Bedrock you need an RTX-capable build with deferred rendering enabled.
What is the difference between PBR and a shader?
PBR is the texture data: the normal, height, and specular maps a resource pack ships. A shader is the program that reads that data and computes the lighting. The pack provides the materials; the shader does the math that makes them react to light.
Is LabPBR the same as SEUS PBR or the old Old PBR format?
No. They are different specular map conventions that pack the same channels differently. LabPBR is the de-facto community standard most modern Java shaders support. A pack authored for one format can look wrong under a shader expecting another, which is why packs state which standard they use.
Does Optimum Realism include PBR maps?
Yes. Optimum Realism ships LabPBR specular and normal maps for Java shaders and a separate ray-tracing texture set for Bedrock RTX. The free 64x edition includes full PBR data; higher resolutions are available through Patreon.
Will PBR slow my game down?
The maps themselves add little cost; the frame-rate hit comes from the shader doing the lighting and from higher-resolution textures using more VRAM. A lighter shader, a moderate resolution, and a sensible render distance keep things smooth.
Get the realistic look
Optimum Realism is a photorealistic PBR pack with LabPBR maps for Java shaders and a ray-tracing set for Bedrock RTX. Free at 64x.
Download Optimum Realism New here? Read the install guide or browse all guides.