Skip to content

Render settings: ray tracing, upscaling, camera views and plugin status - #595

Merged
freezy merged 5 commits into
masterfrom
feat/render-settings
Oct 18, 2026
Merged

freezy merged 5 commits into
masterfrom
feat/render-settings

Conversation

@freezy

@freezy freezy commented Oct 18, 2026

Copy link
Copy Markdown
Owner
  • Graphics settings carry the experimental recursive ray tracing option and the DLSS / FSR 2 upscaler choice; the pipeline reports which upscalers run and the current render scale.
  • The orbit camera changes its field of view with Ctrl+scroll and can be put at a pose from outside (SetPose); CameraLens reads and sets the vertical field of view of plain and physical cameras.
  • Plugins can describe what they do in a game in a few plain lines (IPluginStatusSource); PluginHost.DescribeStatus collects them for the Player's pause menu.

Commits

  • 34fa194 rendering: Add the recursive ray tracing setting to the graphics settings.
  • d210505 graphics: add upscaler settings and render scale to VpeGraphics
  • 5f942c7 camera: field of view on Ctrl+wheel, SetPose for the orbit camera
  • fac826a plugins: status lines for the Player's pause menu

Part of the render settings work across repos (all on feat/render-settings): VisualPinball.Engine, VisualPinball.Unity.Hdrp, VisualPinball.Engine.Player, VisualPinball.Engine.Player.Hdrp, VisualPinball.Engine.PinUp, VisualPinball.Engine.B2sBackglass, VisualPinball.Engine.PinMAME, VisualPinball.Engine.DMD, VisualPinball.Unity.Project.Hdrp and vpe-terminator2.

Plain-data DLSS / FSR 2 choice and quality for the pipeline applier, plus hooks for the pipeline to report which upscalers run on this machine and the current render scale.
The orbit camera changes its field of view with Ctrl+scroll and can be put at a pose from outside, orbiting on from there. CameraLens reads and sets the vertical field of view a camera really shows, for physical cameras whose gate fit fits the sensor's width too, on the logical (turned) picture.
IPluginStatusSource lets a running plugin say in a few plain lines what it does in the game, like the colorization or the PUP pack it loaded. PluginHost.DescribeStatus collects them, with the plugins that should run but don't and why; a plugin that throws while describing itself is logged, not faulted.
@greptile-apps

greptile-apps Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; both previous findings are fixed and no new actionable issues were found.

Summary

Adds graphics settings, camera controls, and plugin status reports for the Player's pause menu.

  • Render settings now include ray tracing and upscaler choices.
  • Camera controls now set the view angle and orbit pose.
  • Plugins can now provide game-specific status for the pause menu.

No new actionable issues were found in the changes since the previous review.

Reviews (2) · Last reviewed commit: "plugins: Skip disposed plugins in the pa..." · Reviewed by Greptile

Comment thread VisualPinball.Plugins/Runtime/PluginHost.cs Outdated
Comment thread VisualPinball.Plugins/Runtime/PluginHost.cs Outdated
After an emergency stop the plugins are disposed but keep their Running state; DescribeStatus no longer calls them. Also puts IsRunning's documentation back on it.
@freezy
freezy merged commit 52527b3 into master Oct 18, 2026
21 checks passed
@freezy
freezy deleted the feat/render-settings branch October 18, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant