Releases: rnd-team-dev/plotoptix
OptiX 9
-
Bokeh swirl and asymmetrical vignette in cameras with depth of field simulation, allowing for rendering vintage lens effects.
-
Roving capsules intersection mode added to curve geoms: BSplineQuadRocaps, BSplineCubicRocaps, CatmullRomRocaps, BezierRocaps,
significantly improving performance on a longer strand segments, see 2_beziers.py sample code. Minor improvemts on other curve
geom due to simplified vertex access code. -
HEVC codec support.
-
View orientation changes in GUI, per user request. F5-F8 will flip/rotate the view.
-
Moved to OptiX 9.0.
-
Moved to NVENC SDK 13.0. Note, preset names are changed accordingly to P1 - P7. Note: FFmpeg 8.0 shared libs are recommended.
-
Updated
GpuArchitectureenum: added Ada Lovelace and Blackwell architectures. -
Removed LDR denoiser based on OptiX driver (discontinued). Denoiser enum now points to DenoiserHDR. OIDN denoiser still supports LDR mode.
Dynamic sampling
- Reworked heuristics for the noise-balanced ray sampling.
NoiseBalancedwork distribution mode is now alias toAbsNoiseBalancedsince it turns more often practical in terms of visual result
and stable compute time.
IOIDN 2.3.1
- Intel denoiser libs updated to 2.3.1. Accumulation frames, before the final one, are denoised using the fast model, the final frame is denoised using the high quality / slower model.
- Several minor fixes and improvements.
OptiX 8.1 and ffmpeg 7
- Moved to OptiX 8.1.
- Encoder code upgraded to use FFmpeg 7.0; FFmpeg libs excluded from the Windows release (too large to keep them within the package).
OIDN denoiser, volume plots
- Included Intel Open Image Denoiser: HDR/LDR, supporting RGB/Albedo/Normal inputs.
- Switched to optional counting of transmission path segments (previously they were counted always and included in
the segment range limits). - Const-size geometry primitives (same radii, or u/v/w vectors for all data points) with much lower memory
consumption, beneficial e.g. for volume plots. - Volume coloring material for semi-transparent volume visualization (experimental).
Noise based work distribution modes
Work distribution has moved to a camera property. It is now possible to setup cameras with different modes and switch easyli.
Work distribution is now based on relative or absolute noise values.
See this example.
Noise-balanced sampling
Noise-balanced sampling is quite a nice feature. It took some more time to encode it, so the release is out not waiting for more features.
Sample code is in this notebook.
OptiX 7.7
NVIDIA driver r530 or above required
Code was moved to the new OptiX SDK and progresively new features should be covered. Also GPU-GPU transfers are evolving, now including CuPy arrays. In this release we have:
- CuPy support for texture and geometry data updates
- new curve geometries: Ribbon, Beziers
- no dedicated PyTorch/CuPy/... methods, all types handled with single corresponding method (it is a breaking change, that require minor code updates)
and more news is coming, check Patreon ;)
Updates of data on GPU.
This release introduces fast and simplified ways to copy data straight to device:
-
set texture data from pytorch tensors
-
texture filter modes enabled, default is trilinear, optionally nearest
-
set geometry data directly from numpy array or pytorch tensor (no host copy is made on the way)
-
synchronization method to update host copy with data from gpu:
NpOptiX.sync_raw_data() -
convenience method to get a copy of geometry data (more simple than PinnedBuffer, though returns a copy): NpOptiX.get_data()
OpenCV-like camera setup
- OpenCV-like intrinsic matrix in camera setup, but note: distortion coefficients not supported still
- configurable denoiser start frame
- ovrlaping refractive volumes handling