Skip to content

[❔ other question] How to split "aov" rendering while remaining differentiable? #559

@Agent-INF

Description

@Agent-INF

Summary

How to split differentiable render results of an "aov" integrator?

Description

I have a scene with an aov integrator defined as follows:

    <integrator type="aov">
        <string name="aovs" value="depth.y:depth"/>
        <integrator type="path">
          <integer name="max_depth" value="$max_depth"/>
        </integrator>
    </integrator>

then I render the scene following the tutorial https://mitsuba2.readthedocs.io/en/latest/src/inverse_rendering/diff_render.html:

 image = render(scene, optimizer=opt, unbiased=True, spp=1)

I want to optimize the depth and RGB channel separately in a gradient-based manner, so I tried:

 render_list = image.split()

but it gives me the following error:

AttributeError: 'enoki.cuda_autodiff.Float32' object has no attribute 'split'

So what I want to ask is, what is the suitable way to split the aov rendering results while keeping them differentiable?
Thank you in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions