tfg.rendering.reflectance.phong.brdf

Evaluates the specular brdf of the Phong model.

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

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

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.
shininess A tensor of shape [A1, ..., An, 1], where the last dimension represents a non-negative shininess coefficient.
albedo A tensor of shape [A1, ..., An, 3], where the last dimension represents albedo with values in [0,1].
brdf_normalization A bool indicating whether normalization should be applied to enforce the energy conservation property of BRDFs. Note that brdf_normalization must be set to False in order to use the original Blinn specular model.
name A name for this op. Defaults to "phong_brdf".

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

ValueError if the shape of direction_incoming_light, direction_outgoing_light, surface_normal, shininess or albedo is not supported.
InvalidArgumentError if not all of shininess values are non-negative, or if at least one element of albedo is outside of [0,1].