Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-02-12 17:22:21 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-02-12 17:22:21 +0300
commitdad32cbd17790cbd6d8fd30758a69315274fbb24 (patch)
treedf77bfd23bae33ae06f06135df1affbb2588ebcc /source/blender/render
parent7db00556fa9a14f8617c2ec1e35ae834689f0da7 (diff)
parent9febda912b04559277d465b9610334c04a73d2ce (diff)
Merge branch 'blender-v2.92-release'
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/RE_bake.h1
-rw-r--r--source/blender/render/intern/bake.c3
-rw-r--r--source/blender/render/intern/engine.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/render/RE_bake.h b/source/blender/render/RE_bake.h
index 3463362adb1..bb30b524b61 100644
--- a/source/blender/render/RE_bake.h
+++ b/source/blender/render/RE_bake.h
@@ -59,6 +59,7 @@ typedef struct BakeTargets {
typedef struct BakePixel {
int primitive_id, object_id;
+ int seed;
float uv[2];
float du_dx, du_dy;
float dv_dx, dv_dy;
diff --git a/source/blender/render/intern/bake.c b/source/blender/render/intern/bake.c
index caf81870fac..7af6d3e234f 100644
--- a/source/blender/render/intern/bake.c
+++ b/source/blender/render/intern/bake.c
@@ -135,6 +135,7 @@ static void store_bake_pixel(void *handle, int x, int y, float u, float v)
pixel->dv_dx = bd->dv_dx;
pixel->dv_dy = bd->dv_dy;
pixel->object_id = 0;
+ pixel->seed = i;
}
void RE_bake_mask_fill(const BakePixel pixel_array[], const size_t num_pixels, char *mask)
@@ -383,6 +384,7 @@ static bool cast_ray_highpoly(BVHTreeFromMesh *treeData,
pixel_high->primitive_id = primitive_id_high;
pixel_high->object_id = hit_mesh;
+ pixel_high->seed = pixel_id;
/* ray direction in high poly object space */
float dir_high[3];
@@ -434,6 +436,7 @@ static bool cast_ray_highpoly(BVHTreeFromMesh *treeData,
else {
pixel_array[pixel_id].primitive_id = -1;
pixel_array[pixel_id].object_id = -1;
+ pixel_array[pixel_id].seed = 0;
}
MEM_freeN(hits);
diff --git a/source/blender/render/intern/engine.c b/source/blender/render/intern/engine.c
index 151d994dddf..b199b1b0743 100644
--- a/source/blender/render/intern/engine.c
+++ b/source/blender/render/intern/engine.c
@@ -194,7 +194,7 @@ static RenderResult *render_result_from_bake(RenderEngine *engine, int x, int y,
primitive[1] = int_as_float(-1);
}
else {
- primitive[0] = int_as_float(bake_pixel->object_id);
+ primitive[0] = int_as_float(bake_pixel->seed);
primitive[1] = int_as_float(bake_pixel->primitive_id);
primitive[2] = bake_pixel->uv[0];
primitive[3] = bake_pixel->uv[1];