The basic idea of the context steering approach is that the resulting objective value is scaled based on the angle between the ResultDirection
and the receptor's Direction
and Sensitivity
. Assuming a Sensitivity
of 90°, the resulting objective value would be 1 if the receptor faces the target directly, and it would be 0 if it is orthogonal to the receptor's Direction
. ValueMapping
determines what happens for receptors whose directions are within this range, similar to the mapping types used for radius steering behaviours.
Given the default setup of a circular shaped sensor where every receptor has a Sensitivity
of 90°, the perception model can be compared to the human eye. The human eye has an area where it has the strongest focus, the fovea, and the opposite area with a very low perception potential, the periphery. This concept is emphasized in Figure 1 below. The receptors facing directly towards the target have the strongest magnitude (at least for the first four cases), the size of this area having the strongest magnitude is defined by the ValueMapping
. By changing the ValueMapping
, this area can be adapted to your needs. It is even possible to exchange the relation between fovea and periphery which can be seen in the last 3 cases of the figure below.
Figure 1: All seven different ValueMapping
types applied on a Seek behaviour. From left to right: constant, inverse linear, inverse quadratic, inverse square root, linear, quadratic and square root.
Figure 1 shows that using ValueMapping
is a very powerful tool to influence how your agents sample the world. So the depicted Seek behaviour can be transformed into a simple avoid behaviour by using a non-inverse ValueMapping
so that the strongest magnitude is always perpendicular to the target percept.