tfg.rendering.reflectance.phong.brdf
Stay organized with collections
Save and categorize content based on your preferences.
Evaluates the specular brdf of the Phong model.
tfg.rendering.reflectance.phong.brdf(
direction_incoming_light: type_alias.TensorLike,
direction_outgoing_light: type_alias.TensorLike,
surface_normal: type_alias.TensorLike,
shininess: type_alias.TensorLike,
albedo: type_alias.TensorLike,
brdf_normalization: bool = True,
name: str = 'phong_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.
|
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".
|
Returns |
A tensor of shape [A1, ..., An, 3] , where the last dimension represents
the amount of light reflected in the outgoing light direction.
|
Raises |
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].
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-10-28 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
{"lastModified": "Last updated 2022-10-28 UTC."}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2022-10-28 UTC."],[],[]]