Add Customizable Analytical Spatial Fields Support#212
Open
favreau wants to merge 11 commits intoNVIDIA:next_releasefrom
Open
Add Customizable Analytical Spatial Fields Support#212favreau wants to merge 11 commits intoNVIDIA:next_releasefrom
favreau wants to merge 11 commits intoNVIDIA:next_releasefrom
Conversation
Resolves target name conflicts between VisRTX's stb_image (STATIC library) and Barney/OWL's stb_image (INTERFACE library) when building projects that depend on both. Changes: - Add guard to skip stb_image subdirectory if target already exists - Create visrtx_stb_image as alternative target when stb_image exists - Update tsd_tinygltf to handle both stb_image variants - Add proper include directories for OWL's stb/ subdirectory layout This allows VolumetricPlanets and other projects to build successfully when including both Barney and VisRTX/TSD in the same CMake project.
Extends TSD UpdateDelegate architecture to support animation time change notifications, enabling applications to respond when scene.setAnimationTime() is called. Changes: - Add signalAnimationTimeChanged(float time) to BaseUpdateDelegate interface - Implement signal propagation in MultiUpdateDelegate - Call signal from Scene::setAnimationTime() to notify all delegates - Add no-op implementation in RenderIndex - Update CameraPoses offline rendering to set animation time This enables applications to register custom delegates that respond to animation time changes, useful for updating time-dependent spatial fields during both interactive playback and offline rendering. Architecture benefits: - Clean observer pattern: TSD core decoupled from application code - Extensible: Multiple animation time observers can be registered - Works across all rendering modes: interactive, offline, camera paths
- Add textureObject() and imageSize() accessors to Image2D and Image3D for analytical field texture sampling - Add lat/lon bounds (minLat, maxLat, minLon, maxLon) to CloudFieldData for geographic region filtering
- Add VISRTX_ANALYTICAL_FIELD_DATA_HEADER for external field data definitions - Add VISRTX_ANALYTICAL_SAMPLERS_HEADER for external sampler implementations - Add VISRTX_ANALYTICAL_SAMPLE_DISPATCH macro for dispatch logic - Fix 8-byte alignment for fieldData array to support cudaTextureObject_t - Remove AnalyticalFieldData.h (moved to consuming project) - Add AnalyticalData to VolumeSamplingState union for sampler access This allows external projects (like VolumetricPlanets) to provide custom analytical field implementations without modifying VisRTX core.
Remove synchronous rendering and animation time changes to keep CameraPoses aligned with base branch.
The previous fix attempted to handle different stb_image variants but introduced a CI failure. Simplify to just use the stb_image target and its INTERFACE_INCLUDE_DIRECTORIES property directly. This ensures stb_image.h is found regardless of which stb_image implementation is being used (TSD's own or from an external source).
The stb_image conflict fixes should be in devices/rtx/external only, not in TSD's tsd_tinygltf. TSD builds its own stb_image and the link dependency is sufficient to propagate include directories. This fixes the CI failure where stb_image.h couldn't be found.
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.
This PR introduces support for analytical (procedural) spatial fields in VisRTX, enabling GPU-computed volumetric fields that generate values on-the-fly rather than storing pre-computed data.
Architecture:
Device-Side changes (VisRTX):