Перейти к содержимому
Mineforgian

RenderPearl

Clean, high performance shaders for modern hardware

1.1M загрузок431 подписчиковMITiris

Обновлён 7 июня 2026 г. · опубликован 8 апреля 2023 г.

  • Fast shadow map-based sunlight
  • Colored block light with BRDF reflections
  • Colored block light with BRDF reflections
  • Colored block light with BRDF reflections
  • Colored block- and sunlight
  • Colored block light with BRDF reflections

Modern, lightweight shaders for Iris

Banner

RenderPearl is an incredibly lightweight shader pack using the latest Iris features and optional extensions on various graphics drivers, aiming to deliver pleasant visuals with excellent performance on modern hardware.

If you want to report a bug or give feedback/suggestions, the best way to do so is by opening an issue on the GitHub issue tracker. I rely heavily on user feedback in bug fixing and design.

Trivia

This project started as a continuation of "Luracasmus Shaders" (which is why you might have seen it called "LS RenderPearl"), but modern versions share little to no code with the original project. The question remains as to whether the same shader pack remains throughout, when all parts are replaced.

The name "RenderPearl" is inspired by the Bedrock Edition RenderDragon engine.

Features

LabPBR 1.3 compliance & material data

"Yes" indicates support for per-texel data.

LabPBR 1.3 required component From resource pack Configurable nonstandard channels Included/procedural
Albedo Yes No No
Smoothness Yes, or as linear or perceptual roughness Yes Yes
f0/reflectance No Constant
Normal Yes No Yes
LabPBR 1.3 optional component From resource pack Included/procedural
Hardcoded metal No No
Porosity No No
Subsurface scattering No Constant, only on translucent geometry
Emmissiveness No Yes
Ambient occlusion Binary, per-block (from model) Yes
Height No No
  • Smooth, colored real-time shadows and volumetric light using distorted shadow mapping.
  • Colored block light with physically based reflections using a light list combined with vanilla lighting and average texture color.
  • Ray traced, per-hand hand light.
  • A wide range of highly optimized post-processing effects, including compute shader implementations of FidelityFX Contrast Adaptive Sharpening, SMAA 1x from SMAA-MC, automatic exposure and a variety of tone mapping operators.
  • Customizable waves and water opacity.
  • Built-in utility features such as light level visualization and a compass overlay.

Mod & Resource Pack Compatibility

Most built-in PBR information, including light colors, material normals and roughness, are almost entirely procedurally generated and should therefore work perfectly with most resource packs and mods.

Integration with Distant Horizons and Voxy is supported on the latest Minecraft version, but experimental and very basic. Complete support is planned for a future update.

Support for mods that modify the Iris shader pipeline, such as Chunks Fade In, is experimental and may have issues, such as the shader pack failing to compile.

Requirements

If you have a decently modern non-macOS device it probably supports everything you need, but you might have to update your Iris and graphics drivers.

  • Iris with support for features:
    • BLOCK_EMISSION_ATTRIBUTE
    • COMPUTE_SHADERS
    • CUSTOM_IMAGES
    • ENTITY_TRANSLUCENT
    • PER_BUFFER_BLENDING
    • SEPARATE_HARDWARE_SAMPLERS
    • SSBO
  • Graphics drivers with support for GLSL 4.60.8+.
  • Minecraft of a version that is listed as supported by the RenderPearl release. The latest supported version is usually the most stable.
Driver Support
OS Drivers Support
Linux Mesa RadeonSI Perfect
Linux Nvidia Very Good
Linux Mesa Zink/RADV Good
Linux Mesa Zink/Nvidia Unstable
Windows AMD Adrenalin Good
Windows Nvidia Game Ready Very Good

Only the latest stable versions are tested. All other drivers are untested. Please report any issues that occur.

Tuning & The Compatibility Menu

The default configuration and all values selectable with profiles are intended to work on all systems that meet the shader pack's Requirements, though you may be able to achieve higher performance and quality by changing some of these options. Beware that some values may cause the shader pack to not compile, in which case you simply have to reset the option. These are usually marked with a red ⚠.

Implementation-Limited Options

The usable values and effects of these options depend on your graphics drivers.

  • Light List Capacity is limited by the amount of Local Data Share memory usable per work group on your GPU. Depending on your GPU and graphics drivers, and the features enabled by the 16/8-Bit Types option, you may be able to set this significantly higher than the maximum value selectable with profiles (though there is no reason to do so if the light list isn't being filled completely, usually indicated by lights flickering, as it impacts performance negatively).

  • 16/8-Bit Types uses optional OpenGL/GLSL extension-provided half- and/or quarter-sized data types to reduce register, LDS and VRAM usage. Performance impact varies depending on hardware and drivers, as conversion between types has a cost, but operations with smaller types can be significantly faster.

  • Trinary Min/Max performs trinary minimum and maximum operations in singular function calls using the optional AMD_shader_trinary_minmax OpenGL/GLSL extension, which may allow generation of more optimal instruction sequences. It's recommended to use this whenever possible.

  • 32×16-Bit Multiplication performs multiplication between 32-bit integers and integers in the 16-bit-representable range using special functions provided by the optional INTEL_shader_integer_functions OpenGL/GLSL extension, that may be faster than regular 32-bit multiplication operators. It's recommended to use this whenever possible.

  • Immutable Constants marks all shader variables that can be immutable as constant, possibly enabling better optimizations. This feature is required by the GLSL specification, but still unsupported on some graphics drivers. It's recommended to use it whenever possible.

Design & Modding RenderPearl

RenderPearl's source code is intended to be modifiable and re-usable. It's written according to best practice to the best of my ability, but prioritizing performance over readability. If you have any questions about how it works, feel free to contact me on any platform.

Technical information can be found in the GitHub repository.


These are the only RenderPearl project pages made by me:

If you want to distribute RenderPearl, or just spread the word of it, I would greatly appreciate if you would link to at least one of them, Modrinth being the most important one.

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
2.8.0-beta.3Бета26.1, 26.1.1, 26.1.2, 26.2iris7 июня 2026 г..jar (655 КБ)
2.8.0-beta.2Бета1.21.11, 26.1, 26.1.1, 26.1.2iris14 апреля 2026 г..jar (638 КБ)
2.8.0-beta.1Бета1.21.11, 26.1, 26.1.1, 26.1.2iris18 февраля 2026 г..jar (636 КБ)
2.8.0-beta.0Бета1.21.10, 1.21.11iris7 февраля 2026 г..jar (620 КБ)
2.7.2Релиз1.21.10, 1.21.11, 26.1iris13 января 2026 г..jar (616 КБ)
2.7.1Релиз1.21.10, 1.21.11iris29 декабря 2025 г..jar (612 КБ)
2.7.0Релиз1.21.10, 1.21.11iris27 декабря 2025 г..jar (612 КБ)
2.6.1Релиз1.21.9, 1.21.10, 1.21.11iris24 октября 2025 г..jar (608 КБ)
2.6.0Релиз1.21.9, 1.21.10iris23 октября 2025 г..jar (608 КБ)
2.5.1Релиз1.21.9, 1.21.10iris5 октября 2025 г..jar (607 КБ)
2.5.0Релиз1.21.9iris4 октября 2025 г..jar (607 КБ)
2.4.0Релиз1.21.6, 1.21.7, 1.21.8, 1.21.9iris4 октября 2025 г..jar (607 КБ)
2.3.0Релиз1.21.6, 1.21.7, 1.21.8, 1.21.9iris30 августа 2025 г..jar (607 КБ)
2.3.0-beta.2Бета1.21.5, 1.21.6, 1.21.7, 1.21.8iris10 августа 2025 г..jar (609 КБ)
2.3.0-beta.1Бета1.21.5, 1.21.6, 1.21.7, 1.21.8iris2 августа 2025 г..jar (609 КБ)

Показаны последние 15 из 44 версий. Все версии — на Modrinth.

Ченджлог

2.8.0-beta.3Бета26.1.1, 26.1.2, 26.2 · 7 июня 2026 г.

New Features

  • Colorwheel (1.2.9+ only) integration is now available (closes #14).
  • The target brightness of Automatic Exposure is now configurable.
    • The default has been lowered from 0.5 to 0.3.

Improvements

  • The BRDF is now slightly faster when 16-bit float support is missing.

Fixed Issues

  • Vertex alpha overflows to almost zero due to rounding when using 16-bit floats, causing invisible geometry.

GitHub Release

2.8.0-beta.2Бета26.1, 26.1.1, 26.1.2 · 14 апреля 2026 г.

New Features

  • Direct sunlight can now be disabled in The Overworld by changing the Shadow Distance option to Off.

Improvements

  • Light list creation now uses frustum culling to avoid collecting lights that are too far outside the player's view, improving performance in most cases and reducing the risk of the list list becoming full.
  • Light list creation and de-duplication + sorting now happen during separate frames and require one less memory barrier, for hopefully higher and more stable performance.
  • f0/reflectance is now handled more realistically in BRDF reflections on water and some metal blocks. Preparations have also been made for using f0 information from LabPBR textures.
  • Some workarounds for incorrect ordering between translucent geometry rendering and the deferred lighting pass have been disabled in Minecraft 26.1+, where they are no longer required, improving performance.

Other Changes

  • Intensity of different light sources is now more physically based. Automatic exposure has been modified to work better with these new values, but some things may still look strange. Please report any significant issues.
  • Direct sunlight has been disabled in The End.

Fixed Issues

  • Voxy render distance is handled as 1/16 its actual size.
  • Opaque Voxy geometry is rendered incorrectly (reported in the shaderLABS Discord server by anas_6230).
  • (Iris 1.10.7 bug worked around) Opaque block entities are rendered incorrectly.

Possibly Fixed Issues

  • The block breaking overlay is rendered incorrectly (#24, #30, comment in #27).
  • (Driver bug worked around) The shader pack fails to compile on some AMD graphics drivers for Windows (#17, #31, reported in the shaderLABS Discord server by mine18, and on CurseForge by Jaxxy_).

GitHub Release

2.8.0-beta.1Бета26.1, 26.1.1, 26.1.2 · 18 февраля 2026 г.

New Features

  • Experimental compatibility with Minecraft 1.21-1.21.9 has been implemented. RenderPearl is still most stable on the latest supported Minecraft version, and may have bugs or missing features in older versions. Please report any issues that occur.
  • Experimental Distant Horizons and Voxy integration is now available (works towards #11). This is very basic and only tested with the latest releases. Distant Horizons support is more complete than support for Voxy, which currently has major visual issues.
  • RenderPearl now includes a description for the Iris/Oculus Shader Folder mod.

Fixed Issues

  • An optimization using subgroup operations is unnecessarily disabled when forward rendered light list lighting is unsupported.

GitHub Release

2.8.0-beta.0Бета1.21.10, 1.21.11 · 7 февраля 2026 г.

New Features

  • Alpha tint and chunk fade are now applied to translucent geometry.
  • The fragment shader for translucent lit geometry has been completely rewritten, and now implements ray traced hand light. Per-pixel light list-based block light is also available with graphics drivers that support subgroup operations and subgroupBroadcast with a non-constant index (most common drivers except AMD's for Windows).
    • The vertex shader implementation of light list-based block light has been removed.
  • The option to apply a directional multiplier to ambient occlusion has now been added and is enabled by default (works towards #8).
  • A sun path rotation of zero is now allowed (works towards #12).
  • The sizes of celestial bodies can now be configured (works towards #12).
  • End flashes now affect lighting in the end.
  • Shadow distortion is now configurable and tuned better in the different profiles.

Improvements

  • Opaque and translucent lit geometry now share the same rewritten vertex shader and vertex data format for much reduced code duplication.
  • Light list colors are now manually packed using atomics when 16-bit integers are disabled, halving memory usage.
  • A slightly faster version of the GGX specular D term is now used when 16-bit floats are disabled.
  • Lighting-related functions are now shared between shaders for forward and deferred rendering, reducing code duplication.
  • Emissiveness is now handled slightly better. LabPBR support is still not implemented but planned for a future release.
  • The shadow bias has been improved, reducing various artifacts such as light leaks.

Other Changes

  • The maximum effect of the Ambient Occlusion option has been increased.
  • The falloff of light list-based block light has been slightly modified.

Fixed Issues

  • Extensions may be enabled after actual code.
  • Translucent geometry is lit incorrectly when rendered before the deferred lighting pass (Closes #15, Closes #18, Closes #19).
    • This was caused by some changes in vanilla Minecraft breaking an Iris feature that RenderPearl relied on.
  • Blending and render targets are sometimes configured incorrectly.

GitHub Release

2.7.2Релиз1.21.10, 1.21.11, 26.1 · 13 января 2026 г.

Fixed Issues

  • The shader pack fails to compile in The Nether and The End (#16).

GitHub Release

2.7.1Релиз1.21.10, 1.21.11 · 29 декабря 2025 г.

Improvements

  • A driver bug workaround for the work group size of the global light list de-duplication pass has been disabled on all non-Intel graphics drivers. This could improve performance slightly in some situations.

Fixed Issues

  • The shader pack fails to compile on AMD graphics drivers on Windows (reported by quakingdoom).

GitHub Release

2.7.0Релиз1.21.10, 1.21.11 · 27 декабря 2025 г.

New Features

  • Hand light now has screen space ray traced shadows.
    • A new Hand Light shader pack options screen has been added to control this feature.

A held redstone torch shining on a fence gate

Improvements

  • Hand light is now handled separately for each hand.
  • Hand light sources are now positioned more closely to actual hand positions.
  • Significant improvements have been made that depend on the Subgroup Operations Compatibility option.
    • Lights are now de-duplicated using subgroup operations before being added to the global light list, significantly reducing the capacity required to avoid overflow and the time spent on global de-duplication.
    • Work group bounding box computations are now accelerated using subgroup operations.
    • Atomically pushing to buffers is now accelerated using subgroup operations.
    • SSBO and shared memory loads are now explicitly made subgroup uniform where possible, using subgroup operations.
  • Volumetric light and SMAA neighborhood blending are now significantly faster thanks to optimizations made to work group neighborhood handling.
  • Chunks are now culled in uniform control flow.
  • Light list creation is now slightly faster when 16-bit integer types are unsupported.
  • Sky rendering is now slightly faster, by skipping a work group barrier in tiles with no block lit geometry.
  • Gbuffer data is now ordered more optimally following the RDNA Performance Guide.

Other Changes

  • Amethyst Shards are now emissive.
  • Ambient occlusion is now more visible. More improvements to ambient occlusion are planned.
  • Hand light brightness now matches block light by default.
  • Work group sizes have been retuned and optimized for modern AMD Radeon hardware. This could result in worse performance on some other hardware. Please report any significant issues.
  • Subgroup operations are now assumed by default to be supported on all Radeon hardware.
  • Immutable constants are now assumed by default to be supported on all Radeon hardware on Linux.
  • A driver bug workaround for the work group size of the global light list de-duplication pass has been disabled on Mesa graphics drivers for Radeon. This could improve performance slightly in some situations.

Fixed Issues

  • Light list sorting fails when multiple lights are at the exact same distance from the player.
  • Unlit geometry is rendered with incorrect depth guarantees, causing undefined behavior.
  • Fallback functions collide with disabled built-in 16-bit functions on AMD graphics drivers on Windows (driver bug).

GitHub Release

2.6.1Релиз1.21.9, 1.21.10, 1.21.11 · 24 октября 2025 г.

Fixed Issues

  • Enchantment glint overwrites ambient occlusion to complete occlusion, causing very dark surfaces in indirect light.

GitHub Release

Полная история изменений — на Modrinth.

Комментарии

Загружаем…