VisRTX 26.09
This release is a large overhaul of the RTX device, headlined by a reworked renderer
lineup, sampleable emissive materials (geometry lights), MDL/MaterialX material support,
and a broad set of volume/spatial-field extensions.
Important
Repository scope change. TSD has been removed from this repository and now lives
standalone at github.com/NVIDIA/Vela. VisRTX is now
purely a home for ANARI devices (currently rtx and gl).
⚠️ Breaking changes
- Single, date-based version scheme. VisRTX, the RTX device and the GL device now
share oneYY.MMversion driven by the top-level project (26.09), replacing the
previous per-component semantic versions (the RTX device was last0.13.0; VisGL
carried no version at all). There is no patch component: the RTX device'sversion
property now reports260900(major * 10000 + minor * 100), withversion.major=
26,version.minor=9andversion.patchalways0. Applications that gate on
the reported device version need to account for the jump. - Renderers renamed.
directLight→interactive,ambientOcclusion/ao→fast,
pathTracer/dpt→quality. Thedefaultsubtype remains and maps tointeractive. raycastrenderer retired. Its functionality is available via thedebugrenderer's
newsurfaceColor/baseColormodes.tonemaprenderer parameter renamed tofireflyFilter, and expanded into
fireflyFilterMode(tonemap,clamp,trim),fireflyFilterSigma,
fireflyFilterWarmupandfireflyFilterTrim.- Background no longer participates in light propagation. Background color/image are
composited in a dedicated pass; only HDRI lights contribute to the light transport. This
changes images for scenes that previously relied on background bleed. analyticalFieldrenamed tocustomField.- Minimum ANARI-SDK is now 0.16.0 (was 0.15.0), and
aspectfollows the ANARI 1.2
spec behavior. - Renderer parameter metadata split into per-renderer JSON files, fixing several
parameters that were missing from device queries.
✨ New features (RTX device)
Emissive materials and geometry lights
- MDL materials with emission are now registered as geometry lights and sampled with
next-event estimation + MIS, instead of only being visible on direct hits. Covers
constant, textured, and attribute-driven emission across triangle, sphere, cylinder and
cone geometry. - MDL materials publish an emission descriptor built by a device-free static analysis
pass, with an explicit registration policy (see ADRs 0005–0007). - Power-proportional light picking in the
qualityrenderer, plus a new
maxSampledLightsparameter oninteractive. - Environment-map (HDRI) MIS with the balance heuristic.
Materials
VISRTX_MATERIAL_MDLextension is now advertised.mdlmaterials accept
sourceTypeofmodule,mdleorcode(inline MDL source) with a unified
materialNameselector. Material inputs are matched by parameter name, and texture
inputs accept either a file path (with<input>.colorspace) or an ANARI sampler object.- New
VISRTX_MATERIAL_MATERIALXextension (materialxsubtype): MaterialX documents
are transcoded to MDL at commit time, with support fordocumentFile/documentInline
sources, textured inputs spliced as image nodes,standard_surface(including coat and
textured emission), and runtime resolution of the MaterialX distribution (ADR 0008).
RequiresVISRTX_ENABLE_MATERIALX_SUPPORT=ON(which requires MDL support). physicallyBasedgained glTF 2.0 KHR extension support, and an opt-in
physicallyBasedMdlmaterial type is available.
Geometry
khr_geometry_isosurfacesupport, including linear NanoVDB isosurfaces routed
through the per-voxel DDA with forward-difference normals.- New
VISRTX_GEOMETRY_SDFextension — SDF surface geometry with blending controls,
aimed at biological structure visualization. - Triangle geometry accepts
vec3andvec4vertex.tangent(with handedness), and
auto-generates tangents via angle-weighted accumulation when absent.
Spatial fields and volumes
- New extensions:
VISRTX_SPATIAL_FIELD_DATA_CENTERING(cellvsnode),
VISRTX_SPATIAL_FIELD_REGION_OF_INTEREST(object-spaceroiclip box),
VISRTX_SPATIAL_FIELD_STRUCTURED_RECTILINEAR, and
VISRTX_SPATIAL_FIELD_NANOVDB_RECTILINEAR. - Extensible custom/analytic spatial field samplers with texture accessors and lat/lon
bounds. - Ratio-tracking transmittance and uniform-sphere NEE for
qualityvolume shadows/
in-scatter; volume gradient/normal support; rewritten DDA traversal. - NanoVDB headers updated to 13.0.
Renderer and frame
- New
cutPlane(FLOAT32_VEC4) parameter on all renderers. - New
denoiseStart,denoiseMode,aoBlend,fixedAmbientLighting,
volumeSamplingRateShadowsparameters; the denoiser is fed dense per-pixel
albedo/normal/input estimates and supports tiling for large frames. debugrenderer gainedmaterialId,surfaceColor, tangent and attribute modes.refinementProgressframe property support.
🐛 Fixes and rendering-quality improvements (RTX device)
- Shadow-ray origins lifted onto the smooth surface (Hanika offset); grazing self-shadow
acne from analytic back-face hits fixed; polygon epsilon offsetting cleaned up. - MDL emission radiance was π× too bright — corrected.
- Fixed biased uniform-sphere and cosine-hemisphere samplers, pixel-adjacency artifacts in
AO/hemisphere sampling, and HDRI double-counting between NEE and the miss path. - PBR shading: diffuse lobe added to the
nextRaypath, clearcoat lobe sampled, NdotV
Fresnel diffuse weight, normal-map orientation fixed for glTF models, NaN-safe shading. - Robust, spec-compliant analytic primitive intersection with correct caps and front/back
crossing reporting; integer overflow fixed in macrocell index decomposition. - Correct handling of transmission → alpha in the final frame;
mattehonours opacity in
quality; ANARI channel-fill applied to image samplers. - Several lifetime/memory fixes:
SamplerRegistryuse-after-free,MaterialRegistryslot
leak, pipeline/program-group/MDL-module leaks on rebuild, deferred-commit teardown
ordering, NUL-terminated embedded resources, and internal-object parameter snapshotting
across buffered re-commits. - Picking no longer reads a stale ID buffer; face-varying triangle validation null-deref
fixed. - Fixed incorrect CUDA texture object updates in image samplers, MDL texture resource
null/uninitialized access, and MDL texture lookups reading the wrong union member. - Volume fixes: object scaling in ray marching, infinite accumulation with
unitDistance
of 0, majorant grid computation, side-by-side non-overlapping volumes, NanoVDB sampler
coordinate-space mapping.
🚀 Performance (RTX device)
- Camera sampling switched to Halton; RNG moved from cuRAND Philox to PCG-XSH-RR-32
(drops theCUDA::curanddependency). - Macrocell space-skipping in
rayMarchVolume, halved macrocell size, packed opacity
bounds, strict-bound TF lookups, and decomposition tracking in the Woodcock sampler. - Adaptive Russian roulette for
qualityNEE shadow rays, sub-epsilon shadow-trace
skipping, volume RR depth tuning, and AO trace skipped when the ambient term is invisible. - MDL texture data kept in its native format on the device with no redundant host or linear
device copies;textureResultstrimmed to 8; sampler table aliased. --use_fast_mathenabled for OptiX device kernels, double-precision arithmetic trimmed,
GPU-drivenImage2Dtexel reduction, batched conditional-CDF construction, per-sampler
volume dispatch via direct callables.- Volume parameter commits decoupled from BLAS rebuilds; BLAS/volume/light invalidation
timestamps decoupled.
🔧 Build (RTX device)
- New
VISRTX_MIN_ARCHknob declaring the minimum compute capability (default 50 on
CUDA 12, 75 on CUDA 13; MDL follows it, andVISRTX_ENABLE_NEURALraises it to 89).
Requires a GPU of compute capability 5.0+ (7.5+ on CUDA 13). - New
VISRTX_LIBRARY_NAMEto build a differently-named ANARI library so a dev build
can coexist with an official install. VISRTX_ENABLE_MATERIALX_SUPPORTis a dependent option onVISRTX_ENABLE_MDL_SUPPORT.- Externally specified
CMAKE_CUDA_ARCHITECTURESis honoured; NVML is optional; optional
device dependencies respect CMake flags; MDL modules are re-staged on edit rather than
only at configure time. - Various Visual Studio/Windows build fixes, glm updated to 1.0,
stb_imagetarget
conflicts with Barney/OWL resolved.
VisGL (GL device)
No functional changes this release — copyright headers were refreshed and contributor
guidance files were added. A prior fix restoring the frontend library link for Windows
builds is included. VisGL now carries the shared 26.09 version.
Documentation
- RTX device README documents the MDL material extension and all four new spatial-field
extensions. - New architecture decision records (ADRs 0001–0008) and per-directory
CONTEXT.md
glossaries covering shading via direct callables, pipeline-per-renderer, PTX embedding,
surface/volume TLAS separation, geometry lights, sampleable MDL emission, the emission
descriptor registration policy, and runtime MaterialX distribution resolution.