Works for both Cycles and multires bake. Triangles are baked to multiple UDIM images if they span across them, though such UV layouts are generally discouraged as there is no filtering across UDIM tiles. The bake margin currently only works within UDIM tiles. For the extend method this is logical, for the adjacent faces method it may be useful to support copying pixels from other UDIM tiles, though this seems somewhat complicated. Fixes T95190 Ref T72390
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright 2001-2002 NaN Holding BV. All rights reserved. */
|
|
#pragma once
|
|
|
|
/** \file
|
|
* \ingroup bke
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct DerivedMesh;
|
|
struct IMBuf;
|
|
struct ImBuf;
|
|
struct MLoopUV;
|
|
struct Mesh;
|
|
|
|
/**
|
|
* Generate a margin around the textures uv islands by copying pixels from the adjacent polygon.
|
|
*
|
|
* \param ibuf: the texture image.
|
|
* \param mask: pixels with a mask value of 1 are not written to.
|
|
* \param margin: the size of the margin in pixels.
|
|
* \param me: the mesh to use the polygons of.
|
|
* \param uv_layer: The UV layer to use.
|
|
*/
|
|
void RE_generate_texturemargin_adjacentfaces(struct ImBuf *ibuf,
|
|
char *mask,
|
|
const int margin,
|
|
struct Mesh const *me,
|
|
char const *uv_layer,
|
|
const float uv_offset[2]);
|
|
|
|
void RE_generate_texturemargin_adjacentfaces_dm(struct ImBuf *ibuf,
|
|
char *mask,
|
|
const int margin,
|
|
struct DerivedMesh *dm,
|
|
const float uv_offset[2]);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|