diff options
Diffstat (limited to 'source/blender/render/RE_bake.h')
-rw-r--r-- | source/blender/render/RE_bake.h | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/source/blender/render/RE_bake.h b/source/blender/render/RE_bake.h index 47a15199701..d3025bf4198 100644 --- a/source/blender/render/RE_bake.h +++ b/source/blender/render/RE_bake.h @@ -25,6 +25,7 @@ struct Depsgraph; struct ImBuf; +struct MLoopUV; struct Mesh; struct Render; @@ -81,59 +82,68 @@ bool RE_bake_has_engine(const struct Render *re); bool RE_bake_engine(struct Render *re, struct Depsgraph *depsgraph, struct Object *object, - const int object_id, + int object_id, const BakePixel pixel_array[], const BakeTargets *targets, - const eScenePassType pass_type, - const int pass_filter, + eScenePassType pass_type, + int pass_filter, float result[]); /* bake.c */ -int RE_pass_depth(const eScenePassType pass_type); +int RE_pass_depth(eScenePassType pass_type); bool RE_bake_pixels_populate_from_objects(struct Mesh *me_low, BakePixel pixel_array_from[], BakePixel pixel_array_to[], BakeHighPolyData highpoly[], - const int tot_highpoly, - const size_t num_pixels, - const bool is_custom_cage, - const float cage_extrusion, - const float max_ray_distance, + int tot_highpoly, + size_t num_pixels, + bool is_custom_cage, + float cage_extrusion, + float max_ray_distance, float mat_low[4][4], float mat_cage[4][4], struct Mesh *me_cage); void RE_bake_pixels_populate(struct Mesh *me, struct BakePixel *pixel_array, - const size_t num_pixels, + size_t num_pixels, const struct BakeTargets *targets, const char *uv_layer); -void RE_bake_mask_fill(const BakePixel pixel_array[], const size_t num_pixels, char *mask); +void RE_bake_mask_fill(const BakePixel pixel_array[], size_t num_pixels, char *mask); -void RE_bake_margin(struct ImBuf *ibuf, char *mask, const int margin); +void RE_bake_margin(struct ImBuf *ibuf, + char *mask, + int margin, + char margin_type, + struct Mesh const *me, + char const *uv_layer); void RE_bake_normal_world_to_object(const BakePixel pixel_array[], - const size_t num_pixels, - const int depth, + size_t num_pixels, + int depth, float result[], struct Object *ob, const eBakeNormalSwizzle normal_swizzle[3]); +/** + * This function converts an object space normal map + * to a tangent space normal map for a given low poly mesh. + */ void RE_bake_normal_world_to_tangent(const BakePixel pixel_array[], - const size_t num_pixels, - const int depth, + size_t num_pixels, + int depth, float result[], struct Mesh *me, const eBakeNormalSwizzle normal_swizzle[3], float mat[4][4]); void RE_bake_normal_world_to_world(const BakePixel pixel_array[], - const size_t num_pixels, - const int depth, + size_t num_pixels, + int depth, float result[], const eBakeNormalSwizzle normal_swizzle[3]); -void RE_bake_ibuf_clear(struct Image *image, const bool is_tangent); +void RE_bake_ibuf_clear(struct Image *image, bool is_tangent); #ifdef __cplusplus } |