Hemispherical distant radiancemeter sensor (hdistant)#
Parameter |
Type |
Description |
Flags |
---|---|---|---|
to_world |
transform |
Sensor-to-world transformation matrix. |
— |
target |
point or nested shape plugin |
Optional. Define the ray target sampling strategy. If this parameter is unset, ray target points are sampled uniformly on the cross section of the scene’s bounding sphere. If a point is passed, rays will target it. If a shape plugin is passed, ray target points will be sampled from its surface. |
— |
ray_offset |
float |
Optional. Define the ray origin offsetting policy. If this parameter is unset, ray origins are positioned at a far distance from the target. If a value is set, rays are offset by the corresponding distance. |
— |
This sensor plugin implements a distant directional sensor which records
radiation leaving the scene. It records the spectral radiance leaving the scene
in directions covering a hemisphere defined by its to_world
parameter and
mapped to film coordinates. To some extent, it can be seen as the adjoint to
the envmap
emitter.
The to_world
transform is best set using a
look_at()
. The default orientation covers a
hemisphere defined by the [0, 0, 1] direction, and the up
film direction is
set to [0, 1, 0].
The following XML snippet creates a scene with a roughconductor
surface illuminated by three directional
emitter, each emitting in
a single RGB channel. A hdistant
plugin with default orientation is
defined.
Example scene illumination setup.#
<scene version="2.1.0">
<sensor type="hdistant" id="hdistant">
<transform name="to_world">
<lookat origin="0, 0, 0" target="0, 0, 1" up="0, 1, 0"/>
</transform>
<sampler type="independent">
<integer name="sample_count" value="3200"/>
</sampler>
<film type="hdrfilm">
<integer name="width" value="32"/>
<integer name="height" value="32"/>
<string name="pixel_format" value="rgb"/>
<string name="component_format" value="float32"/>
<rfilter type="box"/>
</film>
</sensor>
<integrator type="path"/>
<emitter type="directional">
<vector name="direction" x="1" y="0" z="-1"/>
<rgb name="irradiance" value="1, 0, 0"/>
</emitter>
<emitter type="directional">
<vector name="direction" x="1" y="1" z="-1"/>
<rgb name="irradiance" value="0, 1, 0"/>
</emitter>
<emitter type="directional">
<vector name="direction" x="0" y="1" z="-1"/>
<rgb name="irradiance" value="0, 0, 1 "/>
</emitter>
<shape type="rectangle">
<bsdf type="roughconductor"/>
</shape>
</scene>
The following figures show the recorded exitant radiance with the default film
orientation (left, up = [0,1,0]
) and with a rotated film (right,
up = [1,1,0]
). Colored dots on the plots materialize emitter directions.
The orange arrow represents the up
direction on the film.
Note that on the plots, the origin of pixel coordinates is taken at the bottom
left.
Default film orientation.#
Exitant radiance with default film orientation.#
Rotated film.#
Exitant radiance with a rotated film.#
By default, ray target points are sampled from the cross section of the scene’s
bounding sphere. The target
parameter can be set to restrict ray target
sampling to a specific subregion of the scene. The recorded radiance is averaged
over the targeted geometry.
Ray origins are positioned outside of the scene’s geometry, such that it is as if the sensor would be located at an infinite distance from the scene.
By default, ray target points are sampled from the cross section of the scene’s
bounding sphere. The target
parameter should be set to restrict ray target
sampling to a specific subregion of the scene using a flat surface. The recorded
radiance is averaged over the targeted geometry.
Warning
While setting
target
using any shape plugin is possible, only specific configurations will produce meaningful results. This is due to ray sampling method: whentarget
is a shape, a point is sampled at its surface, then shifted along the-direction
vector by the diameter of the scene’s bounding sphere, effectively positioning the ray origin outside of the geometry. The ray’s weight is set to \(\frac{1}{A \, p}\), where \(A\) is the shape’s surface area and \(p\) is the shape’s position sampling PDF value. This weight definition is irrelevant when the sampled origin may corresponds to multiple points on the shape, i.e. when the sampled ray can intersect the target shape multiple times. From this follows that only flat surfaces should be used to set thetarget
parameter. Typically, one will rather use arectangle
ordisk
shape.If this sensor is used with a targeting strategy leading to rays not hitting the scene’s geometry (e.g. default targeting strategy), it will pick up ambient emitter radiance samples (or zero values if no ambient emitter is defined). Therefore, it is almost always preferable to use a nondefault targeting strategy.