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-11-18 18:07:47 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-11-18 19:13:16 +0300
commitf0be276514f2b7cae27c744ac80f999fbc69f12f (patch)
treed9ae4b6a4a0fdcde471893b8f3a518561bc24d1b /intern/cycles/scene/integrator.cpp
parented91e759d1f0debce58b10261799378e1639e6c0 (diff)
Fix T93082: Cycles baking not handling transparency correctly
For baking, replace transparent BSDF with holdout for baking. This ensure no objects behind are baked, and that the baked image has alpha.
Diffstat (limited to 'intern/cycles/scene/integrator.cpp')
-rw-r--r--intern/cycles/scene/integrator.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/intern/cycles/scene/integrator.cpp b/intern/cycles/scene/integrator.cpp
index 737db8b98d5..a97833a8d32 100644
--- a/intern/cycles/scene/integrator.cpp
+++ b/intern/cycles/scene/integrator.cpp
@@ -14,11 +14,13 @@
* limitations under the License.
*/
-#include "scene/integrator.h"
#include "device/device.h"
+
#include "scene/background.h"
+#include "scene/bake.h"
#include "scene/camera.h"
#include "scene/film.h"
+#include "scene/integrator.h"
#include "scene/jitter.h"
#include "scene/light.h"
#include "scene/object.h"
@@ -212,6 +214,11 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
if (!use_emission) {
kintegrator->filter_closures |= FILTER_CLOSURE_EMISSION;
}
+ if (scene->bake_manager->get_baking()) {
+ /* Baking does not need to trace through transparency, we only want to bake
+ * the object itself. */
+ kintegrator->filter_closures |= FILTER_CLOSURE_TRANSPARENT;
+ }
kintegrator->seed = seed;