Evaluates the brdf of a Lambertian surface.
tfg.rendering.reflectance.lambertian.brdf(
direction_incoming_light: type_alias.TensorLike,
direction_outgoing_light: type_alias.TensorLike,
surface_normal: type_alias.TensorLike,
albedo: type_alias.TensorLike,
name: str = 'lambertian_brdf'
) -> tf.Tensor
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].
|