tfg.rendering.texture.texture_map.map_texture
Stay organized with collections
Save and categorize content based on your preferences.
Maps the texture texture_image using uv_map.
tfg.rendering.texture.texture_map.map_texture(
uv_map: tfg_type.TensorLike,
texture_image: tfg_type.TensorLike,
tiling: bool = False,
interpolation_method: Text = 'bilinear',
name: Text = 'map_texture'
) -> tf.Tensor
The convention we use is that the origin in the uv-space is at (0, 0), u
corresponds to the x-axis, v corresponds to the y-axis, and the color for each
pixel is associated with the center of the corresponding pixel. E.g. if we
have a texture [[1, 2], [3, 4]], then the uv-coordinates that correspond to
the values 1, 2, 3, and 4 are (0.25, 0.75), (0.75, 0.75), (0.25, 0.25),
(0.75, 0.25), respectively. You can see that the v-axis starts from the bottom
of the texture image as would be in cartesian coordinates and that by
multiplying the uv-coordinates with the length of the texture image, 2, you
can recover the pixel centers in this case, e.g. (0.25, 0.25) * 2 = (0.5, 0.5)
corresponds to the bottom-left pixel color that is 3.
When a uv-coordinate corresponds to a point on the texture image that does
not coincide with any of the pixel centers, bilinear interpolation is applied
to compute the color value.
If the aspect ratio of the texture is not 1, the texture is compressed to fit
into a square.
Args |
uv_map
|
A tensor of shape [A1, ..., An, H, W, 2] containing the uv
coordinates with range [0, 1], height H and width W.
|
texture_image
|
A tensor of shape [H', W', C] containing the texture to be
mapped with height H', width W', and number of channels C of the texture
image.
|
tiling
|
If enabled, the texture is tiled so that any uv value outside the
range [0, 1] will be mapped to the tiled texture. E.g. if uv-coordinate is
(0, 1.5), it is mapped to (0, 0.5). When tiling, the aspect ratio of the
texture image should be 1.
|
interpolation_method
|
A string specifying which interplolation method to
use. It can be 'bilinear' or 'nearest' for bilinear or nearest neighbor
interpolation, respectively.
|
name
|
A name for this op that defaults to "map_texture".
|
Returns |
A tensor of shape [A1, ..., An, H, W, C] containing the interpolated
values.
|
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.
[null,null,["Last updated 2022-10-28 UTC."],[],[],null,["# tfg.rendering.texture.texture_map.map_texture\n\n\u003cbr /\u003e\n\n|-------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/graphics/blob/master/tensorflow_graphics/rendering/texture/texture_map.py#L31-L143) |\n\nMaps the texture texture_image using uv_map. \n\n tfg.rendering.texture.texture_map.map_texture(\n uv_map: tfg_type.TensorLike,\n texture_image: tfg_type.TensorLike,\n tiling: bool = False,\n interpolation_method: Text = 'bilinear',\n name: Text = 'map_texture'\n ) -\u003e tf.Tensor\n\nThe convention we use is that the origin in the uv-space is at (0, 0), u\ncorresponds to the x-axis, v corresponds to the y-axis, and the color for each\npixel is associated with the center of the corresponding pixel. E.g. if we\nhave a texture \\[\\[1, 2\\], \\[3, 4\\]\\], then the uv-coordinates that correspond to\nthe values 1, 2, 3, and 4 are (0.25, 0.75), (0.75, 0.75), (0.25, 0.25),\n(0.75, 0.25), respectively. You can see that the v-axis starts from the bottom\nof the texture image as would be in cartesian coordinates and that by\nmultiplying the uv-coordinates with the length of the texture image, 2, you\ncan recover the pixel centers in this case, e.g. (0.25, 0.25) \\* 2 = (0.5, 0.5)\ncorresponds to the bottom-left pixel color that is 3.\n\nWhen a uv-coordinate corresponds to a point on the texture image that does\nnot coincide with any of the pixel centers, bilinear interpolation is applied\nto compute the color value.\n\nIf the aspect ratio of the texture is not 1, the texture is compressed to fit\ninto a square.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `uv_map` | A tensor of shape `[A1, ..., An, H, W, 2]` containing the uv coordinates with range \\[0, 1\\], height H and width W. |\n| `texture_image` | A tensor of shape `[H', W', C]` containing the texture to be mapped with height H', width W', and number of channels C of the texture image. |\n| `tiling` | If enabled, the texture is tiled so that any uv value outside the range \\[0, 1\\] will be mapped to the tiled texture. E.g. if uv-coordinate is (0, 1.5), it is mapped to (0, 0.5). When tiling, the aspect ratio of the texture image should be 1. |\n| `interpolation_method` | A string specifying which interplolation method to use. It can be 'bilinear' or 'nearest' for bilinear or nearest neighbor interpolation, respectively. |\n| `name` | A name for this op that defaults to \"map_texture\". |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A tensor of shape `[A1, ..., An, H, W, C]` containing the interpolated values. ||\n\n\u003cbr /\u003e"]]