v3.6.0
This release comes with a major overhaul of some of the internal components of Mitsuba 3. Namely, the Python bindings are now created using nanobind and the just-in-time compiler Dr.Jit was updated to version 1.0.0.
These upgrades lead to the following:
- Performance boost: 1.2x to 2x speedups depending on the JIT backend and scene size
- Improved stubs: auto-completion and type-checking has been greatly improved
- More variants on PyPI: thirteen variants are available in the pre-built wheels
Some breaking changes were made in this process. Please refer to the porting guide to get a comprehensive overview of these changes.
This release also includes a series of bug fixes, quality of life improvements and new features. Here's a non-exhaustive list:
- Support for Embree's robust intersection flag
96e0af2
- Callback system for variant changes #1367
MeshPtr
for vectorizedMesh
method calls `#1319- Aliases for the
ArrayX
types of Dr.Jit2e86e5e
- Fix attribute evaluation for
twosided
BSDFs5508ee6
..7528d9f
- A new guide for using Mitsuba 3 in WSL 2
batch
sensors expose their innerSensor
objects when traversed withmi.traverse()
#1297- Python stubs improvements #1260 #1238
- Updated wheel build process with new variants #1355