Proposal: a stereo camera contract for offline / path-traced renderers (Leia SR tested) #2392
joehillthunder
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem. Film path tracers have no OpenXR mode and render offline; Karma, RenderMan, Arnold and Cycles are examples. They can still make stereo frames for a DisplayXR display, but their depth comfort is fixed when the frames are rendered, and nothing tells the renderer the display's geometry or budget. Hand-tuned stereo rigs either look flat or go past comfort, and the result depends on the window the frames end up in.
Code: private repo, commit
4f3c2dc(Apache-2.0 + NOTICE; internals inpython/dxr_stereo_rig/coupling.pyandnative/core/coupling.h). Access on request.Target class: dedicated 3D window
XR_DXR_win32_window_bindingand weaves alongside other 3D apps. Full panel is via F11 only.DXR_LEGACY_CAMERA_RIG.Proposal
dxr_stereo_rig/1./DXR_Rig/Cam_L|RwithhorizontalApertureOffset, plus the same rig as JSON.p(z) = K·(1 − g/z).g* = (f+b)/(b/near + f/far). K is filled to the budget, and the camera is never moved.displayxr-cli status --json:layout.width_m,nominal_viewer_m).DXR_HostedDepthRel) and reports the value in effect inDXR_HostedDepthRelNow.set_eye_cameras/progressive_pass/cancel.What the shared host library needs to provide
Evidence
Cycles is the stand-in renderer, and Leia SR is the tested display.
Gf.Camerafrusta, so other USD renderers read the convention the same way.Notes
python, so the per-exe atlas trigger collides between them. This adds to Proposal: per-instance atlas capture trigger (displayxr_atlas_trigger.<exe>.<pid>) — two copies of one app collide under windowed weaving #2351.VIEW SIZE MISMATCHevery frame when the display's view scale is below 1. It still weaves, and resampling to the recommended size clears the warning. It's worth a line in the docs for pre-rendered-pair apps.Pending: a seated check on the display.
🤖 Generated with Claude Code
All reactions