Performs a face area weighted random sampling of a tri mesh.
tfg.geometry.representation.mesh.sampler.area_weighted_random_sample_triangle_mesh(
vertex_attributes: type_alias.TensorLike,
faces: type_alias.TensorLike,
num_samples: int,
vertex_positions: Optional[type_alias.TensorLike] = None,
seed: Optional[type_alias.TensorLike] = None,
stateless: bool = False,
name: str = 'area_weighted_random_sample_triangle_mesh'
) -> Tuple[type_alias.TensorLike, type_alias.TensorLike]
Note |
In the following, A1 to An are optional batch dimensions.
|
Args |
vertex_attributes
|
A float tensor of shape [A1, ..., An, V, D] , where V
is the number of vertices, and D is dimensionality of a feature defined on
each vertex. If vertex_positions is not provided, then first 3
dimensions of vertex_attributes denote the vertex positions.
|
faces
|
A int tensor of shape [A1, ..., An, F, 3] , where F is the number
of faces.
|
num_samples
|
An int scalar denoting number of samples to be drawn from
each mesh.
|
vertex_positions
|
An optional float tensor of shape [A1, ..., An, V, 3] ,
where V is the number of vertices. If None, then vertex_attributes[...,
:3] is used as vertex positions.
|
seed
|
Optional random seed.
|
stateless
|
Optional flag to use stateless random sampler. If stateless=True,
then seed must be provided as shape [2] int tensor. Stateless random
sampling is useful for testing to generate same sequence across calls.
|
name
|
Name for op. Defaults to "area_weighted_random_sample_triangle_mesh".
|
Returns |
sample_pts
|
A float tensor of shape [A1, ..., An, num_samples, D] ,
where D is dimensionality of each sampled point.
|
sample_face_indices
|
A int tensor of shape [A1, ..., An, num_samples] .
|