Allows accessing the Mesh interface through a new MeshPtr type. This will allow users to access the Mesh interface through a new MeshPtr. Before, it was only accessible on the individual Mesh instances (no vectorized calls).
meshes = mi.MeshPtr(si.shape)
# Not strictly needed, the non-mesh pointers are automatically zeroed-out
active &= si.shape.is_mesh()
n = meshes.face_normal(si.prim_index, active=active)
Description
Allows accessing the
Mesh
interface through a newMeshPtr
type. This will allow users to access theMesh
interface through a newMeshPtr
. Before, it was only accessible on the individualMesh
instances (no vectorized calls).Requires a DrJit-side change to allow
CallSupport<Mesh>
: https://github.com/mitsuba-renderer/drjit/pull/287Testing
Added a unit test that checks the results of the vcall on
MeshPtr
against calls on the individual mesh instances.Checklist
cuda_*
andllvm_*
variants. If you can't test this, please leave below