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:
authorPhoenix Katsch <phoenixkatsch>2022-10-03 20:26:02 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-10-03 22:59:31 +0300
commitb475506cfbd35fe2d356ce43a6a3e1f93bd6602b (patch)
tree030ef0c4eafbb9443ae5c6ed9b8d105dd5a82974 /intern/cycles/blender
parentaf51e4b41c9e591bd0640623d5314508f8e6a8ea (diff)
Cycles: add option to bake specular from active camera viewpoint
Previously it would bake viewed from above the surface. The new option can be useful when the baked result is meant to be viewed from a fixed viewpoint or with limited camera motion. Some effort is made to give a continuous reflection on parts of the surface invisible to the camera, but this is necessarily only a rough approximation. Differential Revision: https://developer.blender.org/D15921
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r--intern/cycles/blender/addon/ui.py6
-rw-r--r--intern/cycles/blender/camera.cpp6
2 files changed, 12 insertions, 0 deletions
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 7036e58f6fb..f763fe0eb0b 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1880,6 +1880,12 @@ class CYCLES_RENDER_PT_bake(CyclesButtonsPanel, Panel):
layout.prop(rd, "use_bake_multires")
layout.prop(cscene, "bake_type")
+ if not rd.use_bake_multires and cscene.bake_type not in {
+ "AO", "POSITION", "NORMAL", "UV", "ROUGHNESS", "ENVIRONMENT"}:
+ row = layout.row()
+ row.prop(cbk, "view_from")
+ row.active = scene.camera is not None
+
class CYCLES_RENDER_PT_bake_influence(CyclesButtonsPanel, Panel):
bl_label = "Influence"
diff --git a/intern/cycles/blender/camera.cpp b/intern/cycles/blender/camera.cpp
index 6926c833096..d7def9fdb7c 100644
--- a/intern/cycles/blender/camera.cpp
+++ b/intern/cycles/blender/camera.cpp
@@ -2,6 +2,7 @@
* Copyright 2011-2022 Blender Foundation */
#include "scene/camera.h"
+#include "scene/bake.h"
#include "scene/scene.h"
#include "blender/sync.h"
@@ -592,6 +593,11 @@ void BlenderSync::sync_camera(BL::RenderSettings &b_render,
blender_camera_from_object(&bcam, b_engine, b_ob);
b_engine.camera_model_matrix(b_ob, bcam.use_spherical_stereo, b_ob_matrix);
bcam.matrix = get_transform(b_ob_matrix);
+ scene->bake_manager->set_use_camera(b_render.bake().view_from() ==
+ BL::BakeSettings::view_from_ACTIVE_CAMERA);
+ }
+ else {
+ scene->bake_manager->set_use_camera(false);
}
/* sync */