Mitsuba plugin family Field for texture/neural storage & encoding - #1885
Mitsuba plugin family Field for texture/neural storage & encoding#1885ziyi-zhang wants to merge 37 commits into
Field for texture/neural storage & encoding#1885Conversation
|
Small note, what is the plan for the naming conflict with the existing mitsuba3/include/mitsuba/core/field.h Lines 39 to 41 in 4bf6f10 |
From Wenzel: EDIT: This has been changed to |
|
To me If we want something very short, we could also go for |
Port moved bitmap code to the current Dr.Jit/storage implementation, retain parser/property/backend compatibility fixes, and adapt Python Field registration to the Python-owned variant lifecycle. Convert the Field additions to the new documentation conventions, make docstring identifier allocation collision-free, regenerate docstrings, and add focused regressions.
Description
Introduces Mitsuba's render-layer
Fieldplugin family: a common storage, Dr.Jit encoding, and neural-query abstraction for texture/volume-backed data, learned fields, radiance caches and neural BSDFs while preserving existing texture and volume public APIs.Key design decisions:
One plugin category, no wrappers. All data-source plugins report
ObjectType::Field;<texture>and<volume>only validate the requested use and return the same object. Thispreserves identity, traversal keys, and AD connectivity.
Intentional Python API change.
mi.Texture,mi.Volume, andregister_texture()are replaced by
mi.Field,mi.FieldPtr, andregister_field(). XML remains compatible;C++ aliases remain as migration aids.
Conservative volume support. Generic Fields may satisfy the surface role. Volume use
requires
VolumeFieldbecause renderers depend on trusted bounds, transforms, majorants,and channel metadata.
Generic and optimized evaluation coexist. Dynamic evaluation supports arbitrary
outputs and optional borrowed argument channels; fixed-size methods remain available for
hot renderer paths. Existing texture/volume consumers require
args_dim == 0.Explicit neural limits. Neural
Spectrumoutput is rejected in spectral variantsbecause the decoder is not wavelength-conditioned.
neuralbsdfremains diffuse soeval,sample, andpdfstay consistent.