* Render: restore saved shots, progressive images and exports * Render: register existing live and coat command tests * Render: isolate lens saves and retain bounded previews Save only lens parameters on existing CPU/GPU jobs while keeping unrelated draft settings dirty. Retain pinned checkpoints through preview and status, and release host-only snapshots outside the status lock. Use the admitted PNG bound for registered-executor checkpoint slots. Preserve executor work credits, final publication and regrade ownership. Add regression coverage and align help, translations and capability documentation. * Render: preserve live feedback and address review regressions * Preserve saved cameras when applying Render library edits Keep the saved camera when lighting or maps are applied to an existing shot. Fit and centre the measured Render host using the painted picture. Carry forward the upstream CPU and GPU preset and ZoomTool contracts.
3.8 KiB
Saved surface aging
Stable saved targets
Saved job.options.aging[].target uses definition, feature, component and
occurrence_path, the same identity contract as saved surfaces and optical bindings.
The read-only render.scene reply exposes stable_target beside each captured body.
The editor saves that identity, not ordinal or an unqualified visible name.
Check and Start resolve it against the current scene; a hidden, removed or replaced
occurrence requires explicit rebinding. Another body's insertion/reordering does not
retarget a layer. The runtime-only CPU or GPU job receives its captured index/name pair.
The procedural field origin remains world-anchored; this does not add object-local
weathering motion or change physical geometry, material cards or mass.
Untargeted experimental layers retain their previous fields and meaning. An old
body_index/body_name target cannot be inferred safely across captures and is
explicitly refused with a rebinding message. Keep the original file and rebind in a
compatible development build; never strip the target or silently make it global.
format/pending/render-stable-aging-targets.rs records the new saved concept without
editing published numbers or migrations.
CPU evaluation contract
A CPU raytrace job can preserve the same optional options.aging stack and stable
saved targets. Empty or absent stacks retain the preceding saved JSON and CPU PNG
arithmetic. An inactive stack retains its bounded parameters without adding a
material continuation or consuming extra transport work. Check and Start refuse
missing/replaced/hidden targets explicitly. This is optical authorship: engineering
material cards, geometry, visibility, emission and mass are unchanged.
An active stack is evaluated once for each hit before the shared opaque closure. Direct lighting, opaque path response/PDF/sampling and first-hit denoising guides use that same result. The worker reuses one fallibly reserved, prepaid material slot for the guide prepass and then transport. Each layer is a charged resumable continuation; cancellation or cumulative-work exhaustion cannot advance that layer or commit an incomplete camera pass. No extra image plane or RNG stream is introduced. The raw EXR captures the aged transport before denoising/presentation.
Layer order, original pre-aging metallic class, exact body targeting, upward bias
from the original outward geometric normal, RGB/roughness/metallic changes and
clear-coat weight attenuation follow the existing ordered layer contract. Coat
roughness and IOR, shading/geometric normals, emission and topology are preserved.
World millimetres are evaluated in f64 after subtracting the explicit authored
origin; the camera never defines the CPU field. Noise repeats every 4096 cells,
while directional Scratch bands use their separate floor(0.8*q) identity.
Certified dielectric boundaries and passive stage geometry are not aged. An explicit certified-glass target is refused. CPU aging cannot replace independently authored anisotropic roughness axes; that combination retains its values and is refused explicitly. The legacy selected rough-reflection HDR path also refuses layers that would introduce a diffuse lobe it cannot carry; keeping metallic aging or explicitly selecting opaque path transport avoids silently discarding energy. Other existing transport/geometry/coat/HDR restrictions remain in force. This consumer does not add CPU texture-map support or broaden dielectric transport.
format/pending/cpu-aging.rs records the additional CPU saved concept. The staging
artifact is source preparation only: its newly added tests, target layouts, native
CPU jobs, UI controls and saved reopen journeys are UNCOMPILED/UNRUN until the
integration branch's serial qualification executes them. GPU Scratch camera-rebase
precision/phase work is tracked separately and is not a CPU-parity validation claim.