RenderPearl

RenderPearl

Shader

Clean, high performance shaders for modern hardware

AtmosphereBloomColored LightingHighLowMediumPBRPotatoScreenshotSemi-realisticShadowsVanilla-like

616.9k downloads
350 followers
Follow Save
Filter versions...
Filter channels...

v2.6.1

by Luracasmus on Oct 24, 2025
Download

Fixed Issues

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

GitHub Release

v2.6.0

by Luracasmus on Oct 23, 2025
Download

Improvements

  • Fog now acts significantly more similar to vanilla. This should improve compatibility with mods and data packs that modify its appearance and density.

Fixed Issues

  • Alpha checks are incorrectly skipped on spider eye-like geometry, causing copper golems to appear almost completely black (reported by elmonetina in the shaderLABS Discord server. Likely solves #5).
  • sRGB colors are treated as linear without conversion on some types of unlit geometry, causing incorrect colors.
  • Enchantment glint uses the wrong blend function and overwrites material data, causing enchanted items and armor to appear very bright.

GitHub Release

v2.5.1

by Luracasmus on Oct 5, 2025
Download

Fixed Issues

  • Light level is scaled incorrectly on non-terrain geometry.
  • Block light isn't applied to translucent geometry.
  • Indirect skylight falloff follows the wrong curve on translucent geometry.

GitHub Release

v2.5.0

by Luracasmus on Oct 4, 2025
Download

Improvements

  • Features enabled through a bug fixed in Iris for Minecraft 1.21.9+ are now used, for improved performance with 16/8-Bit Types.

GitHub Release

v2.4.0

by Luracasmus on Oct 4, 2025
Download

New Features

  • The end distance of cloud fog can now be configured

Other Changes

  • The default value of Line Width now matches vanilla

Fixed Issues

  • Clouds are invisible in recent Minecraft/Iris versions (Closes #7)
  • Trinary Min./Max. support is incorrectly assumed to exist on all Intel+Windows graphics drivers (reported by User6010511G)

GitHub Release

v2.3.0

by Luracasmus on Aug 30, 2025
Download

Improvements

  • Some shader pack option names and descriptions are now more accurate

Other Changes

  • The deferred lighting and sky rendering programs have been merged, and indirect dispatch is no longer used
    • This should improve performance in most scenes, but might slightly reduce performance when most of the scene is sky
  • The design of the compass is now slightly simpler and faster to render, with completely hard edges

Fixed Issues

  • Indirect dispatch of the deferred lighting program doesn't work properly on some graphics drivers (Closes #6)

GitHub Release

Improvements

  • Procedural roughness generation now uses a new algorithm
  • Procedural normal generation is now significantly faster and only works with whole texels
    • This should give a more vanilla-like appearance but also more depth

Other Changes

  • The sky and fog are now brighter
  • The brightness multiplier applied to emissive surfaces is now smaller

Fixed Issues

  • Procedural normals are incorrect at borders between mipmap levels

GitHub Release

Other Changes

  • The Specular Map Roughness option is now boolean instead of a slider. On is equivalent to 1.0 in the previous version

Fixed Issues

  • The shader pack fails to compile when 16-bit floating point shader variables are enabled (reported by dogsill)

Removed Features

  • The Specular Intensity option has been removed

GitHub Release

New Features

  • Basic ambient occlusion material data is now automatically generated
    • LabPBR 1.3 ambient occlusion map support is planned too
  • Indirect Sky Light and Fallback Block Light options have been added
  • A Subgroup Operations compatibility option has been added

Improvements

  • Block light falloff now follows the inverse square law more accurately by compensating for Manhattan distance falloff in the Vanilla lighting, down to some light level (defined by the new Falloff Margin option)
  • Indirect sky light brightness now follows direct sky light brightness through the daylight cycle
  • Ambient occlusion is now applied to indirect block and sky light
  • Extension support assumption is now more accurate, and has been enabled by default for all compatibility options
  • Negative Sun Path Rotation values are now allowed
  • Fragment shader outputs are now 16-bit when writing to 16-bit targets

Other Changes

  • The shader pack options menu has been completely redesigned
  • Chorus flower blocks are now emissive, just like chorus flower items
  • RenderPearl now prints a warning when used with Oculus
    • Oculus support is not tested and may be incomplete or broken

Fixed Issues

  • Undefined values are read at work group/tile corners in SMAA and Volumetric Light (Closes #3. Also reported by Timø on Discord)
  • Some translucent particles hide what is behind their fully transparent parts
    • Enabled alpha checks
  • Resource pack normal maps are interpreted incorrectly
  • 3D bounding boxes of deferred lighting tiles are computed with incorrect rounding

GitHub Release

v2.2.0

by Luracasmus on May 18, 2025
Download

Improvements

  • Many vertex parameters are now significantly smaller at the cost of packing and unpacking, likely improving performance in most circumstances
  • Vertex parameters that are unused in the Nether or when Flat Normals are active are now completely disabled, improving performance

Fixed Issues

  • Entity color isn't being applied
  • Emission on held items is always zero
  • The shader pack fails to compile when resource pack-provided normal or specular maps are enabled (likely related to a report by KrazyFF)

GitHub Release

Fixed Issues

  • The shader pack fails to compile on some non-NVIDIA or AMD/ATI graphics drivers (reported by Lolothepro30)
    • Completely avoid gl_MaxComputeWorkGroupSize.x in work group local size declaration on affected drivers

GitHub Release

RenderPearl's source code is now available on GitHub!

New Features

  • Tony McMapface is now implemented as the default tonemap operator in RenderPearl
    • ACES Fitted has also been implemented as an alternative operator
  • Swedish localization is now available the entire shader pack
  • The 16/8-Bit Buffers Compatibility option has been added
    • Shrinks buffers, assuming complete support for all data types added by 16/8-Bit Types. This can save about 25% of the VRAM used by the light index
    • This needs to be enabled manually, since Iris doesn't allow shader packs to detect device characteristics when defining buffer sizes

Improvements

  • RenderPearl now implements all standard Iris shader programs
    • This fixes almost all issues related to invisible or incorrectly shaded geometry, including rain and snow, beacon beams, debug chunk borders, block selection outlines, fishing lines and leads (reported by J_rizzlr)
    • Now that lines are visible, a new Utility option has been added to control their thickness, with the default value being slightly higher than in vanilla Minecraft
  • Cloud opacity now slightly varies over time and space
  • The CHUNKS_FADE_IN_NO_MOD_INJECT macro has been added to all programs to prevent Chunks Fade In from injecting and breaking shader code
    • Full compatibility may be implemented in the future
  • More informative messages are now printed in the Minecraft log when RenderPearl is used in configurations that may cause issues

Other Changes

  • Changed default FFX CAS Sharpness value: 0.5 -> 0.3

Fixed Issues

  • The shader pack (still) fails to compile on some Intel drivers (reported by DragonSlayerGdk, _Squirrels_, User5697183G and user_bqkkp348c9zol9o6)
    • An attempted fix for this issue was included in v2.2.0-beta.7, which applied a workaround on Intel graphics drivers (based on the MC_GL_VENDOR_INTEL macro)
    • This version applies a better version of the workaround on all Intel GPUs, not just ones with Intel graphics drivers (based on the MC_GL_RENDERER_INTEL macro)
  • Ambient light isn't applied to solid non-terrain geometry (reported by MClegend4251)
  • Indexed Block Lights move with view bobbing
  • Indexed Block Lights' emission values are encoded as half their real value, causing dark and incorrect lighting
  • OpenGL/GLSL implementations not supporting signed float16_t and float zero breaks encoding of emission and hand flag in sign bits, causing visual issues

Removed Features

  • Removed all previously available tonemap operators other than Uchimura, SBDT (SomewhatBoringDisplayTransform) and Saturate/Clamp

GitHub Release

Fixed Issues

  • (Attempted fix) The shadow map isn't rendered properly on some AMD drivers (reported by Detrovv)

Improvements

  • Switched from FidelityFX RCAS to CAS 1.2
    • This should improve the quality of sharpening
  • Significantly reduced code duplication

Removed Features

  • Removed the ARB Subgroup Ballot Compatibility option

Fixed Issues

  • (Attempted fix) The shader pack fails to compile on some AMD graphics drivers (reported by NovaLynxie and Detrovv)

New (and Old) Features

Update en_US.lang

  • Volumetric Light is back!
    • The new algorithm utilizes the low discrepancy of Interleaved Gradient Noise to account for wide depth ranges using very few samples by sharing and interpolating values between pixels in 9x9 neighborhoods
  • Hand Light is back!
    • and colored, and much more realistic! It's now also completely separate from the Indexed Block Light system
  • Texture normals can now be set to completely flat (requested by Warlord Wossman)
  • A Screenshot profile has been added
    • This configures some options to values normally not accessible that may severely impact performance. It's only recommended for actually taking screenshots
  • A new ARB Subgroup Ballot Compatibility option has been added
    • When enabled, this enables some operations that allow data to be processed accross entire subgroups instead of for every invocation, possibly improving performance

Improvements

  • Tuned shadow clipping planes to be as close as possible
    • This caps Sun Path Rotation at 25°
  • Improved RP Normal Maps support by reconstructing the z component instead of relying on it being provided by textures
  • Made BRDF and roughness-related calculations more physically accurate
  • Significantly improved order and scheduling of various operations
    • This reduces the amount of global memory barriers issued every frame, and might reduce memory traffic
  • Allowed 8-bit integers to fall back to 16-bit when unsupported, if possible
    • In previous versions, 8-bit integers would fall back to 32-bit immediately
  • Refined extension assumption logic based on extension support trends
    • Please let me know if the shader pack doesn't work or you're experiencing issues after this update

Other Changes

  • Waves are now disabled by default
  • Indexed Block Light is now permanently enabled, to reduce complexity
  • Water now has reduced roughness when auto-generated roughness values are used

Fixed Issues

  • sRGB-space and linear colors are sometimes used together without conversion, causing incorrect results
  • Waves on lava are broken
  • Waves appear to have very low precision
  • Indexed Block Light uses incorrect depth values for the hand and held items
  • The shader pack fails to compile on some Intel graphics drivers when Indexed Block Light is enabled (reported by sniffercraft34, lynlyn1814 and BLVCKxSVND)
    • A workaround is now applied when the MC_GL_VENDOR_INTEL macro is defined by Iris, which may very slightly reduce performance

Improvements

  • Optimized memory layout of the Light Index SSBO, saving at least 12 bytes
  • Removed unneccessary calculations on shadow geometry and enabled automatic level of detail
    • This slightly changes how shadows look, likely reducing noise in some situations while possibly sacrificing detail

Fixed Issues

  • 16/8-Bit Types cause compile failures on AMD drivers
    • Disabled 16-bit matrix support
  • The screen sometimes turns completely black when DCG is enabled
    • Added additional protections against NaNs and negative values

Other Changes

  • Disabled Entity Shadows in all profiles lower than High

Temporarily Disabled Features

  • Volumetric Light
  • Hand Light

Improvements

  • More small optimizations have been made to Light Index sampling making use of the new 16/8-Bit Types
  • (From SMAA-MC v1.1.1) Rounding is now ensured to be consistent across OpenGL implementations
    • This was missed while porting SMAA from HLSL to GLSL, since the HLSL round always rounds midpoints towards even integers while the GLSL round has implementation-dependant behavior. GLSL roundEven is now used instead in the SMAA implementation

Fixed Issues

  • Shaders fail to compile on AMD graphics drivers while using Gaussian shadow blur (reported by Mine18)

Temporarily Disabled Features

  • Volumetric Light
  • Hand Light

Requires Iris 1.8+

Improvements

  • Major lighting improvements have been made
    • Different types of light are now mixed in a more realistic mannerDemonstration of more realistic light mixing
    • Indexed block light now uses proper BRDF lighting calculations on solid geometry, and an inverse-square law-based falloff Demonstration of colored BRDF-based indexed block light Colored block light with inverse-square law-based falloff
    • The Level Of Detail system now uses hashed world-space position modulo LOD, instead of vertex ID modulo LOD level
      • This means light sources will be more evenly distributed, and also allows for a LOD of zero close to the player, meaning no lights (except lava) should ever be invisible close up Comparison between the old (left) and new (right) LOD systems
    • Global index deduplication now takes full advantage of maximum supported work group size
    • Local index culling now uses player-eye-space Manhattan distance and view-space Euclidean distance instead of Chebyshev distance, for even more aggressive culling
    • Index Distance is now a cube instead of a sphere
      • This fully utilizes all representable positions in light index storage
  • SMAA (Enhanced Subpixel Morphological Antialiasing) 1x is now fully implemented, based on SMAA-MC
    • This is always enabled by default, replacing the old FXAA implementation
  • Faster code paths making use of various optional GLSL extensions have been added
    • 16/8-Bit Types
    • 32×16-Bit Multiplication
    • Trinary Min/Max
    • These can be controlled in the Compatibility shader options menu
      • Please let me know if the shader pack fails to compile with the default values

New Features

  • New Dynamic Color Grading options have been added
    • Peak Sensitivity
    • Samples

Removed Features

  • Bloom has been removed
    • A better implementation might return in the future

Fixed Issues

  • RP Specular Maps cause compile failures
  • DCG doesn't detect color values above 1.0, and thus never lowers exposure

Other Changes

  • Fog is now a cylinder, increasing visibility and matching Vanilla
    • Clouds now also use a square fog to be visible further away
  • Light Level Visualization now disables Indexed Block Light

Temporarily Disabled Features

  • Volumetric Light
  • Hand Light

Screenshots taken on le_ultimate_rtx14, made by shortnamesalex (you need to be in the shaderLABS Discord server to follow the link)

Requires Iris 1.8+

Improvements

  • Light index culling has been improved further
    • Partially fixes lights disappearing behind the camera. This can't be fully avoided without sacrificing performance, due to CPU-side culling
    • Per-tile culling now uses a combination of player and view space bounding boxes for more aggressive culling, improving performance
  • The quality of clouds has been improved
  • Some calculations are now more accurate
  • Varyings are now fewer and don't get interpolated when not neccesary, improving performance slightly

Fixed Issues

  • Auto-generated normals cause compile failures on AMD drivers (reported by power, XRTerra, R3li and _ecliptix)
    • The fix for this actually isn't tested, since I don't have an AMD GPU. Please report any issues that remain
  • Sky color sRGB -> linear color conversion is slightly off
  • Block breaking animations are invisible
    • This is the same issue causing some other things to be invisible, which will be fixed in later updates
  • Bloom & Compass fail to compile

Requires Iris 1.8+

New Features

  • Implicit normals and normal map support 🎉

    • Implicit normals currently cause compile failures on some AMD GPUs! Please enable RP Normal Maps if the shaders fail to load

    Using Meteor Screenshot with the Meteor resource pack

    Using purely auto-generated normals and smoothness Screenshot with implicit normals and smoothness

Improvements

  • Further major improvements to index-based lighting

    • Lights are now de-duplicated based on position, concurrently with shadows, volumetric light and sky rendering
    • Lighting Level Of Detail is now based on range, significantly improving performance with almost no visible effect on quality
      • Added LOD Falloff and Lava LOD Bias options
    • The light index is no longer recreated every frame
      • The rate at which this happens is now controlled by the new Index Rate option
    • Tiles/work groups now only allocate memory for part of the global index, which works well because of highly effective culling
      • The ratio between global and local index size is controlled by the new LDS Ratio option

    Screenshot of light index-based block light in the nether

  • The shader pack options screen has been completely redesigned

    Screenshot of the shader pack options screen

  • Dynamic Color Grading has been rewritten entirely

    • The implementation is now multi-threaded and uses significantly more samples to gather accurate color data from the screen
  • Implicit smoothness calculations are now relative to average surface brightness

    • This should make smoothness more consistent between materials
  • The FXAA implementation has been improved

    • Fixed blending in the wrong color space
  • More uniforms are now combined

  • Precision of color and data buffers has been increased by using better packing

Fixed Issues

  • Block light is incorrect on translucent geometry
  • Indexed light sources sometimes flicker (reported by Farmer_Markus)
  • Lava & water fog color is incorrect
  • Shadow mapping is enabled in the nether
  • Opaque hand and handheld items render at the wrong depth
  • Volumetric Light is inaccurate and causes light leaks

Project members

Luracasmus

Owner

Details

Licensed MIT
Published 3 years ago
Updated 4 days ago