Fix redstone dust transparent pixels rendered as reflective surface - #24
Open
AzusaKe wants to merge 1 commit into
Open
Fix redstone dust transparent pixels rendered as reflective surface#24AzusaKe wants to merge 1 commit into
AzusaKe wants to merge 1 commit into
Conversation
Minecraft 26.2 classifies RedStoneWireBlock as TRANSLUCENT instead of CUTOUT, causing its quads to land in the translucent geometry bucket which has no any-hit shader for radiance rays. Transparent pixels are not discarded and render as opaque reflective surfaces. Override the chunk layer to CUTOUT for RedStoneWireBlock so its quads enter the cutout bucket where the standard alpha-test any-hit shader handles them. Genuine translucent blocks (glass, ice) are unaffected.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #20
Problem
Minecraft 26.2 classifies
RedStoneWireBlockasTRANSLUCENTinstead ofCUTOUT. This causes redstone dust quads to land in the translucent geometry bucket, which has no any-hit shader for radiance rays. Transparent pixels are not discarded by alpha cutout and render as opaque reflective surfaces.Root Cause
In
RtTerrainMesher, the chunk layer fromquad.chunkLayer()determines which geometry bucket a quad enters:SOLID→ opaque bucket (no any-hit)CUTOUT→ cutout bucket (any-hit with alpha cutoff)TRANSLUCENT→ translucent bucket (shadow-only any-hit, radiance rays skip alpha test)Redstone wire is an alpha-tested cutout block (transparent background, opaque wire) but Minecraft 26.2 reports its layer as
TRANSLUCENT. This puts it in the translucent bucket where the any-hit shader never runs for radiance rays, so transparent pixels pass through to the closest-hit shader and render as solid surfaces.Fix
Override the chunk layer to
CUTOUTforRedStoneWireBlockin the mesher, so its quads enter the cutout bucket where the standard alpha-test any-hit shader handles them. Genuine translucent blocks (glass, ice) are unaffected.