Releases: rnd-team-dev/plotoptix
Camera shaders
There was quite some work on camera shaders and related code, so the list of new features is:
- fisheye camera, custom projection camera
- thin lens and fisheye camera variants supporting chromatic aberration (transverse and longitudinal)
- zero-copy access to device buffers wrapped in ndarrays: 8/32bps image, hit and object info, albedo, normals
- configurable denoiser inputs: rgb-only, rgb+albedo, rgb+albedo+normals
Update to OptiX 7.1
Update to OptiX 7.1 SDK and CUDA 11 (note: CUDA toolkit is not required in your system to run PlotOptiX).
NVIDIA driver >= 450 is required to run this release.
- Enabled normal buffer in AI denoiser.
- New geometries for curves: BSplineQuad and BSplineCubic approximating data points, and SegmentChain for a piecewise-linear plot.
Tune memory
Lower memory usage on both host and gpu.
Tested with pythonnet 2.5.1 and Mono 6 - linux installation made easier.
HDR output
This release adds support for ray tracing output (file or ndarray) at higher color depths: 16bps and hdr. There is also support for writing and reading hdr images. Another feature that just appeared is a panoramic camera mode for making 360 degree environment maps.
And fixes are:
- correct light emission in volumes
- fix restoring scene global variables from json
- more verbose messaging on initialization problems
- fix camera switching when ray generation program changes.
Shaders
Many news in material shaders, plus lots of updates, fixes, improvements.
Major news:
- diffuse/reflective/plastic material transparency handled with alpha channel of textures
- scatterng and light emission in volumes: support enabled in background modes AmbientAndVolume, TextureFixed, and TextureEnvironment;
subsurface color added to material parameters - load multiple meshes from .obj with materials specified in a dictionary, and an option to select parent mesh (then transormations of parent are applied to children meshes as well)
- setup parallelogram light using center/target 3D points and scalar lengths of u/v sides
- method to select objects for manual manipulation in gui (if e.g. cannot click object invisible in the view)
- keep_on_host argument of load_displacement() and load_normal_tilt() removed (value always set to false now; it was a bug in linux).
Raw mesh
- mesh geometry defined explicitly with vertices, faces, normals, and uv mapping
- selection of devices used by plotoptix
OptiX 7 - fixes
Several fixes and minor improvements to the recent OptiX 7 release.
-
set/release gimbal lock in camera rotations
-
geometry scaling by vector and/or w.r.t. provided point
-
sub-launch loop breaking on UI events (e.g. camera or object rotations)
-
fixed nan's in mesh normal calculatons
-
improved bvh memory allocations, can handle more primitives in data sets
-
fixed texture values prescaling when gamma is 1.0
OptiX 7
PlotOptiX has moved to OptiX 7 framework in this version. This is a major change, basically a rewrite of entire
ray-tracting engine, followed by several breaking changes in the Python API. Denoiser binaries included in GPU
driver and improved compilation of shaders code are among advantages of the new framework. The long lasting issues
with using PlotOptiX on some hardware configurations, related to the shader compilation should be resolved now.
OptiX 7 shifts significant parts of functionality to the application side. Multi-GPU support and most of the
ray-tracting host state is now maintained by PlotOptiX code. Be warned that this code is fresh! If you spot
problems, go ahead and submit issue to the tracker on GitHub.