BSDF Capture instrument



A BSDF being rendered with a BSDF capture instrument

Instrument This instrument computes the average tabulated BSDF of a region in the scene. It is the only instrument that generates the BSDF quantity

It is generally used with the BSDF output for displaying results in a nice hemisphere preview, and exporting an Ocean BSDF you can use in another scene in a .ocbin file.

You don’t need any light source, as the instrument will automatically disable any environment and light the analyzed surface. Any emitting surface will cause wrong results (Be careful there is currently no warning).


Do not use any emitting surface with this instrument! This will generate wrong results.

You cannot manually set the resolution of this instrument, it has several predefined grid densities accessible with the resolution parameter. If the material is anisotropic, the anisotropy parameter sets the captured anisotropic resolution and aniso_sym the optional anisotropy axes of symmetry.


The intent parameter controls how the interpolation between discretized light angles is handled:

  • Photometry mode ensures the best possible energy conservation. On the other hand, image rendering tends to be more blurry using this mode
  • Rendering mode ensures the best image accuracy, especially for sharp reflections. On the other hand, it does not ensure perfect energy conservation in quantitative studies.


The reflection and transmission parameters enable BRDF or BTDF capture, respectively. They can be enabled together for capturing a full BSDF.

When a material has different reflection properties on each side, this may be captured using the asymmetrical reflection mode. Otherwise, an average BRDF will be generated.

The same holds for transmission. Transmission is generally symmetric unless we are capturing a refractive BSDF.


Using this feature requires an Advanced Edition license

Children Nodes

This node may have a variable number of output children with custom names.

Sensor sensor List of channels defined by a sensitivity spectrum
Output user-defined First output preset
Output user-defined Second output preset
Output user-defined ...


name type description
wlmin real Low bound of simulation wavelength range
wlmax real High bound of simulation wavelength range
pos vec3 The center of the analyzed region. Placing it slightly above the surface might avoid some grazing angle problems.
normal vec3 Direction towards the front side of the analyzed surface
tangent vec3 The tangent vector, for orienting anisotropic BSDFs. Should be orthogonal to normal
spotradius real The radius of the analyzed region around pos
intent list Optimizes results for photometry or rendering
reflection list The BRDF capture mode disabled, symmetrical or asymmetrical
transmission list The BTDF capture mode disabled, symmetrical or asymmetrical
resolution list The BSDF resolution, may be tiny, small, medium, large, huge
anisotropy list The anisotropic resolution, may be none, soft, medium, sharp, extreme. Set it to none for anisotropic surfaces. Using a high value in conjunction with a high resolution will use a lot of memory and take a very long time to converge.
aniso_sym list The anisotropy symmetry axis. May be none, tangent, both

Ocean XML 5.6 example

<instrument type="bsdfcapture" name="brdf">
     <prm wlmin="3.8e-007"/>
     <prm wlmax="7.8e-007"/>
     <prm pos="0     0       0.0002"/>
     <prm normal="0  0       1"/>
     <prm tangent="0 1       0"/>
     <prm spotradius="0.1"/>
     <prm reflection="symmetrical"/>
     <prm transmission="disabled"/>
     <prm resolution="large"/>
     <prm anisotropy="none"/>
     <prm aniso_sym="both"/>
     <sensor type="ciexyz" name="sensor" y_only="false"/>
     <output type="bsdf" name="output" light="0      -0.707107       0.707107" range="1"/>