Repository navigation
Cluster demo: Precision/Voltage concepts with screen-space reflections - #366
Merged
Merged
Conversation
…ace reflections Scene (apps/cluster-demo, built by blender/build_cluster.py and exported): - Classic/Precision: black-chrome mirror cups, spun dial faces, neon value ring, recessed centre screen with a mirror road floor, glass plaques for speed and temperature/clock, glossy chin reflecting the glows. - Cool/Voltage: neon chevron blade corridor with value-driven fill and depth falloff, glass gauge cards, mirror deck with an animated dot matrix. - New shader groups (node graph + matching GLSL): IC_Neon, IC_DialFace, IC_Glass, IC_Plaque, IC_DotGrid, IC_Road, IC_Mirror; shared studio table. Engine: - Two-pass screen-space reflections: reflective models draw their base in the main pass, the scene is captured, then their reflection is added. Glows over reflective surfaces survive and are reflected. - Blended materials no longer write depth unless the shader asks; depth state no longer leaks between draws. - Cubemap uniforms, scene capture helpers and tests (shader uniforms, GPU capture with a depth FBO, reflection opt-in). Tooling and app: - Exporter draws opaque siblings before blended ones and matches missing property types by whole name. - Cluster controller initialises from a coroutine and takes keys on the Viewport (Screen gets neither RenderScreen nor KeyDown in Lua). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Rebuilds
apps/cluster-demoto match two concept frames (01 Classic / Precision, 03 Cool / Voltage) and makes screen-space reflections work in the engine.Scene (
apps/cluster-demo/blender/build_cluster.py→tools/blender-export.py)IC_Neon,IC_DialFace,IC_Glass,IC_Plaque,IC_DotGrid,IC_Road,IC_Mirror(SSR + studio cubemap). The studio softboxes are one table instudio.py, used by both the cubemap bake and the Blender preview.Engine
plugins/SceneKit/RenderPass.c,source/renderer/r_main.c): reflective models draw their base in the main pass, the frame is captured, then they draw again adding only the reflected light (additive, no depth write). Glows drawn over reflective surfaces survive and show up in reflections. The shader tells the passes apart byu_sceneTextureSize(0 in the main pass).DepthWriteEnabled. Depth state no longer carries over between draws, which was hiding dial numerals.ScreenSpaceCapture,Model3D.ScreenSpaceReflectionEnabled), and tests:test_shader_uniforms.c,test_screen_space_capture.c(now links and renders into its own depth FBO, since the macOS offscreen surface has no depth),test_scene_reflections.lua.Tooling / app
package.luacheck: missing property types are matched by whole name (Fadewas treated as present becauseFadeInexisted).RenderScreennever reached Lua andScreenis not a Node (noKeyDown). The controller now initialises from anorca.asynccoroutine and handles keys asViewport_KeyDownwith focus on the Viewport.CLUSTER_DEMO_START=voltagestarts on Voltage for captures.Testing
make test-headlesspasses.make test-screen-space-capturepasses.build/bin/orca -test=apps/cluster-demo/Tests/navigation.luapasses.design/*-orca.jpg).Reviewer notes
design/*-orca.jpgwere taken before the final blade/falloff tweak (the display locked).design/*-blender.pngshow the current state.Meshes/,Materials/,Shaders/,Scenes/andAnimations.*are exporter output.apps/cluster-demo/HANDOVER.mdhas the full background.🤖 Generated with Claude Code