View source on GitHub |
Maps the texture texture_image using uv_map with mip-mapping.
tfg.rendering.texture.mipmap.map_texture(
uv_map: tfg_type.TensorLike,
texture_image: Optional[tfg_type.TensorLike] = None,
mipmap_images: Optional[Sequence[tfg_type.TensorLike]] = None,
num_mipmap_levels: Optional[int] = 5,
tiling: bool = False,
name: Text = 'mipmap_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.
If the aspect ratio of the texture is not 1, the texture is compressed to fit into a square.
Note that all shapes are assumed to be static.
Returns | |
---|---|
A tensor of shape [A1, ..., An, H, W, C] containing the interpolated
values.
|
Raises | |
---|---|
ValueError
|
If texture_image is too small for the mipmap images to be constructed. |