Skip to content

Add signal layer transform updated#240

Merged
jeffamstutz merged 4 commits intoNVIDIA:next_releasefrom
tarcila:add-signal-layer-transform-updated
Mar 4, 2026
Merged

Add signal layer transform updated#240
jeffamstutz merged 4 commits intoNVIDIA:next_releasefrom
tarcila:add-signal-layer-transform-updated

Conversation

@tarcila
Copy link
Collaborator

@tarcila tarcila commented Mar 4, 2026

This PR introduces a split of signalLayerUpdated into:

  • signalLayerStructureUpdated (for scenegraph topological changes)
  • signalLayerTransformUpdated (for transform node updates)

This helps splitting the RenderIndex behavior and split the work into two phases:

  • ANARI Objects construction, including Instances
  • Instances transform update only, for smoother animations

Also exposes the Ensight importer to Lua

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR splits the signalLayerUpdated/signalLayerChange signal into two distinct signals: signalLayerStructureChanged (for scenegraph topological changes) and signalLayerTransformChanged (for transform-only updates). This enables an optimized rendering path for smooth animations, where only ANARI instance transforms are updated without rebuilding the full scene. It also introduces a new TransformsToAnariVisitor to handle the transform-only update path, and exposes the EnSight importer to Lua scripting.

Changes:

  • Splits signalLayerUpdated/signalLayerChange into signalLayerStructureChanged and signalLayerTransformChanged throughout all subsystems (rendering index, UI, network, serialization, scripting)
  • Adds new TransformsToAnariVisitor for lightweight per-frame transform updates, and refactors RenderToAnariObjectsVisitor to not set transforms (delegated to the new visitor)
  • Exposes import_ENSIGHT and Animation::setAsTransformSteps to Lua scripting

Reviewed changes

Copilot reviewed 25 out of 26 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
UpdateDelegate.hpp / .cpp Splits signalLayerUpdated into two virtual methods in the base delegate interface
Scene.hpp / .cpp Adds signalLayerStructureChanged and signalLayerTransformChanged methods, updates internal callers
RenderIndex.hpp / .cpp Provides default no-op implementations for the two new virtual signals
RenderIndexAllLayers.hpp / .cpp Implements the two new signals; adds syncLayerTransforms using the new visitor
TransformsToAnariVisitor.hpp New visitor that only updates ANARI instance transforms (for the lightweight path)
RenderToAnariObjectsVisitor.hpp Removes transform-setting logic (now handled by TransformsToAnariVisitor)
Animation.cpp Uses signalLayerTransformChanged for animated transform updates
NetworkUpdateDelegate.hpp / .cpp Implements both new signals (both still transfer the full layer over network)
CoreBindings.cpp Updates Lua binding; adds setAsTransformSteps to the Animation Lua API
IOBindings.cpp Exposes import_ENSIGHT to Lua
UI files (ObjectEditor, LayerTree, BaseViewport, IsosurfaceEditor, ImportFileDialog) Updates call sites to appropriate signal
Other files (World.cpp, TransferLayer.cpp, serialization, import_GLTF, InstancingControls) Updates call sites to signalLayerStructureChanged

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Note that this is a mostly conservative change and the TransformChanged
will be equivalent a structural change. Improvements are to come later.

Also align most of the signals to be `Changed` postfixed
@tarcila tarcila force-pushed the add-signal-layer-transform-updated branch from 19a4766 to 9619f76 Compare March 4, 2026 18:12
@tarcila tarcila requested a review from jeffamstutz March 4, 2026 18:22
@tarcila tarcila force-pushed the add-signal-layer-transform-updated branch from 9619f76 to 59f19a7 Compare March 4, 2026 18:34
@jeffamstutz
Copy link
Collaborator

LGTM, thanks!

@jeffamstutz jeffamstutz merged commit fdbb0fd into NVIDIA:next_release Mar 4, 2026
13 checks passed
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.

3 participants