github NVIDIA/VisRTX v26.09

4 hours ago

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 one YY.MM version driven by the top-level project (26.09), replacing the
    previous per-component semantic versions (the RTX device was last 0.13.0; VisGL
    carried no version at all). There is no patch component: the RTX device's version
    property now reports 260900 (major * 10000 + minor * 100), with version.major =
    26, version.minor = 9 and version.patch always 0. Applications that gate on
    the reported device version need to account for the jump.
  • Renderers renamed. directLightinteractive, ambientOcclusion/aofast,
    pathTracer/dptquality. The default subtype remains and maps to interactive.
  • raycast renderer retired. Its functionality is available via the debug renderer's
    new surfaceColor/baseColor modes.
  • tonemap renderer parameter renamed to fireflyFilter, and expanded into
    fireflyFilterMode (tonemap, clamp, trim), fireflyFilterSigma,
    fireflyFilterWarmup and fireflyFilterTrim.
  • 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.
  • analyticalField renamed to customField.
  • Minimum ANARI-SDK is now 0.16.0 (was 0.15.0), and aspect follows 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 quality renderer, plus a new
    maxSampledLights parameter on interactive.
  • Environment-map (HDRI) MIS with the balance heuristic.

Materials

  • VISRTX_MATERIAL_MDL extension is now advertised. mdl materials accept
    sourceType of module, mdle or code (inline MDL source) with a unified
    materialName selector. 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_MATERIALX extension (materialx subtype): MaterialX documents
    are transcoded to MDL at commit time, with support for documentFile/documentInline
    sources, textured inputs spliced as image nodes, standard_surface (including coat and
    textured emission), and runtime resolution of the MaterialX distribution (ADR 0008).
    Requires VISRTX_ENABLE_MATERIALX_SUPPORT=ON (which requires MDL support).
  • physicallyBased gained glTF 2.0 KHR extension support, and an opt-in
    physicallyBasedMdl material type is available.

Geometry

  • khr_geometry_isosurface support, including linear NanoVDB isosurfaces routed
    through the per-voxel DDA with forward-difference normals.
  • New VISRTX_GEOMETRY_SDF extension — SDF surface geometry with blending controls,
    aimed at biological structure visualization.
  • Triangle geometry accepts vec3 and vec4 vertex.tangent (with handedness), and
    auto-generates tangents via angle-weighted accumulation when absent.

Spatial fields and volumes

  • New extensions: VISRTX_SPATIAL_FIELD_DATA_CENTERING (cell vs node),
    VISRTX_SPATIAL_FIELD_REGION_OF_INTEREST (object-space roi clip 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 quality volume 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,
    volumeSamplingRateShadows parameters; the denoiser is fed dense per-pixel
    albedo/normal/input estimates and supports tiling for large frames.
  • debug renderer gained materialId, surfaceColor, tangent and attribute modes.
  • refinementProgress frame 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 nextRay path, 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; matte honours opacity in
    quality; ANARI channel-fill applied to image samplers.
  • Several lifetime/memory fixes: SamplerRegistry use-after-free, MaterialRegistry slot
    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 the CUDA::curand dependency).
  • 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 quality NEE 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; textureResults trimmed to 8; sampler table aliased.
  • --use_fast_math enabled for OptiX device kernels, double-precision arithmetic trimmed,
    GPU-driven Image2D texel 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_ARCH knob declaring the minimum compute capability (default 50 on
    CUDA 12, 75 on CUDA 13; MDL follows it, and VISRTX_ENABLE_NEURAL raises it to 89).
    Requires a GPU of compute capability 5.0+ (7.5+ on CUDA 13).
  • New VISRTX_LIBRARY_NAME to build a differently-named ANARI library so a dev build
    can coexist with an official install.
  • VISRTX_ENABLE_MATERIALX_SUPPORT is a dependent option on VISRTX_ENABLE_MDL_SUPPORT.
  • Externally specified CMAKE_CUDA_ARCHITECTURES is 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_image target
    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.

Don't miss a new VisRTX release

NewReleases is sending notifications on new releases.