Repository navigation
fix(hq): a light-emitting block in a clear daytime frame reads as its texture, not a glowing point - #46
Merged
Conversation
… emitter lighting the floor A fixture yard of emitters beside sunlit blocks (`demo-world --daylight-emitters`): a lit and an unlit furnace, whose tops are one texture, a lantern, glowstone beside sandstone and a torch on smooth stone in the open. - At noon under the default sky the lit furnace's top is drawn within 3/255 per channel of the unlit one's; the same frame at emitter intensity 13 must miss that by more than four times the tolerance, so the comparison tells the two apart. - At midnight the default frame is the game look's emitter intensity's byte for byte, and the floor by the lit furnace is brighter than by the unlit one by more than 20/255. - The default sky's continuity across the day plateau's edge is measured with the emitters held at 13, and the default frame at tick 11270 must be the frame with emitters off. This is a loosening of what the day-edge assertion covers: with default emitters the step at the day plateau's edge is printed, no longer bounded. Red on this commit: the day plateau still takes intensity 13. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qiQFhKtTpTbYnn9NZBbSd
… emitters off Chunky's default scene, a daylight scene (sun altitude pi/3), has its emitters off (`Scene.DEFAULT_EMITTERS_ENABLED = false` at chunky-dev/chunky 156e2bb); Lumenwright's day look drew them at Chunky's intensity 13, so in a clear daytime frame every lantern's texels emitted 13 times their colour squared against a sun of irradiance 1.25^2.2 = 1.63 and showed as a bright point. The sun, sky, exposure and tone map of the day look already were Chunky's defaults (1.25, 1, 1, gamma); the emitters were the one preset that was not. `default_emitter_intensity`: 0 (`DAY_EMITTER_INTENSITY`) when the frame stands at a tick on the client's day plateau (`visual/sky_light_factor` at its day value; a vanilla sky, or a stated sky at a tick); elsewhere the mix it was, bit for bit. A stated sky at no tick (Chunky's look, as a rain or thunder frame is stated) keeps 13. A stated `--emitter-intensity` is used as given. Measured (CPU, 64 spp, 192x108, the daylight-emitters fixture, `--time 6000`): the lit furnace's top against the unlit one's, max channel gap of the 7x7 means, 70.14/255 at 3bc8923 (intensity 13), 2.57/255 here. Midnight unchanged: floor by the lit furnace (237.7, 229.6, 215.3) against (89.1, 85.4, 101.0) by the unlit one on both revisions. One tick across the day plateau's edge (11270 -> 11271) with default emitters moves the showcase frame by 4.043/255 (sky alone, emitters held at 13: 0.057; one tick inside Chunky's look 0.040). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qiQFhKtTpTbYnn9NZBbSd
…and the day preset `docs/research/daylight-emitters.md` records Chunky's defaults for a new scene, read at 156e2bb (emitters off, intensity 13 only while on, sampling NONE, sun 1.25 at altitude pi/3, sky 1, exposure 1, gamma 2.2), how the day look departed from them (emitters on at 13), the preset that settles it, what it gives up (an interior at noon is lit by the sky alone; the default steps at the day plateau's edges), and the comparison frames at small size in `docs/renders/`. Eighteen stated skies (six ticks x clear, rain, thunder) through Delvewright's engine frame path, Metal, Lumenwright 0.4.0 against this branch, SHA-256 of the RGBA bytes: 16 low-light skies byte-identical on the daylight-emitters yard (384x216, 256 spp) and on the town from the sea (640x360, 256 spp), 32 of 32 frames; the clear skies at ticks 1000 and 6000 differ on both; a second run of 0.4.0 reproduced all 36 frames. The benchmark's F-chunky command states `--emitter-intensity 13`, as its Chunky scene file turns emitters on. The changelog's unreleased section, the testing page, the research index, the Chunky parity row and the game-sky page say what changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qiQFhKtTpTbYnn9NZBbSd
The camp and Long Bridge day HQ frames are redrawn with the defaults this branch takes on the day plateau (emitters off), on Metal (Apple M2 Pro), 4096 spp, 8 bounces: 449 s and 554 s end to end. The commands, the time table, the README captions and the text say so; the dusk frames and every quick frame are unchanged. The save is the documented one: its day quick frame re-rendered at this revision is byte-identical to the committed one. The limitations page says that a room lit only by lanterns is dark at noon. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qiQFhKtTpTbYnn9NZBbSd
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.
What
In a clear daytime frame every light-emitting block was drawn as a bright point: the day look turned emitters on at intensity 13, about 8× a sunlit face of the same colour. Chunky's default scene, which the HQ path tracer is modelled on, has emitters off in daylight (
Scene.javaDEFAULT_EMITTERS_ENABLED = false); every other day-look default (sun 1.25, sky 1, exposure 1, gamma 2.2) already matched.The fix is a preset change only:
default_emitter_intensityreturns 0 on the client's day plateau (ticks 730–11270) and the previous mix, bit for bit, everywhere else. An explicit--emitter-intensityis used as given.Kept unchanged
Declared loosening
The day/night continuity test now holds the sky's continuity with emitters fixed at 13; with default emitters the step at the plateau edge is printed (4.043/255), no longer bounded.
Checks
Full suite 158 passed, 0 failed; fmt, clippy
-D warningsandcargo docclean. New tests: a daylight emitter beside its sunlit neighbour (largest channel gap 70.14/255 before, 2.57/255 after; tolerance 3/255) and a night emitter lighting the floor, unchanged.Research record:
docs/research/daylight-emitters.md. The Treehouse Camp and Long Bridge day frames are redrawn under the new preset.Fixes #45
🤖 Generated with Claude Code
https://claude.ai/code/session_019qiQFhKtTpTbYnn9NZBbSd