tfg.rendering.reflectance.lambertian.brdf

Evaluates the brdf of a Lambertian surface.

tfg.rendering.reflectance.lambertian.brdf(
    direction_incoming_light,
    direction_outgoing_light,
    surface_normal,
    albedo,
    name=None
)

Defined in rendering/reflectance/lambertian.py.

Note:

In the following, A1 to An are optional batch dimensions, which must be broadcast compatible.

Note:

The gradient of this function is not smooth when the dot product of the normal with any light is 0.0.

Args:

  • direction_incoming_light: A tensor of shape [A1, ..., An, 3], where the last dimension represents a normalized incoming light vector.
  • direction_outgoing_light: A tensor of shape [A1, ..., An, 3], where the last dimension represents a normalized outgoing light vector.
  • surface_normal: A tensor of shape [A1, ..., An, 3], where the last dimension represents a normalized surface normal.
  • albedo: A tensor of shape [A1, ..., An, 3], where the last dimension represents albedo with values in [0,1].
  • name: A name for this op. Defaults to "lambertian_brdf".

Returns:

A tensor of shape [A1, ..., An, 3], where the last dimension represents the amount of reflected light in any outgoing direction.

Raises:

  • ValueError: if the shape of direction_incoming_light, direction_outgoing_light, surface_normal, shininess or albedo is not supported.
  • InvalidArgumentError: if at least one element of albedo is outside of [0,1].