[Bf-blender-cvs] [d04aa1fd44d] experimental-build: Squashed D3203: Baking system overhaul: Move baking settings from render settings into BakePasses
Lukas Stockner
noreply at git.blender.org
Sat Feb 23 04:15:10 CET 2019
Commit: d04aa1fd44db55422d84bc23f54cc4753ec2b06b
Author: Lukas Stockner
Date: Sat Feb 23 04:13:46 2019 +0100
Branches: experimental-build
https://developer.blender.org/rBd04aa1fd44db55422d84bc23f54cc4753ec2b06b
Squashed D3203: Baking system overhaul: Move baking settings from render settings into BakePasses
===================================================================
M intern/cycles/blender/addon/__init__.py
M intern/cycles/blender/addon/engine.py
M intern/cycles/blender/addon/properties.py
M intern/cycles/blender/addon/ui.py
M intern/cycles/blender/blender_python.cpp
M intern/cycles/blender/blender_session.cpp
M intern/cycles/blender/blender_session.h
M intern/cycles/render/scene.h
M release/scripts/startup/bl_ui/properties_object.py
M source/blender/blenkernel/BKE_object.h
M source/blender/blenkernel/intern/library_query.c
M source/blender/blenkernel/intern/object.c
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/versioning_270.c
M source/blender/blenloader/intern/writefile.c
M source/blender/editors/object/object_bake_api.c
M source/blender/editors/render/render_intern.h
M source/blender/editors/render/render_ops.c
M source/blender/editors/render/render_shading.c
M source/blender/editors/space_outliner/outliner_tree.c
M source/blender/makesdna/DNA_image_types.h
M source/blender/makesdna/DNA_object_types.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_object.c
M source/blender/makesrna/intern/rna_render.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/render/extern/include/RE_bake.h
M source/blender/render/extern/include/RE_engine.h
M source/blender/render/intern/source/bake_api.c
M source/blender/render/intern/source/external_engine.c
===================================================================
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py
index 93a1271b4b4..1873a373319 100644
--- a/intern/cycles/blender/addon/__init__.py
+++ b/intern/cycles/blender/addon/__init__.py
@@ -83,8 +83,8 @@ class CyclesRender(bpy.types.RenderEngine):
def render(self, depsgraph):
engine.render(self, depsgraph)
- def bake(self, depsgraph, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result):
- engine.bake(self, depsgraph, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result)
+ def bake(self, depsgraph, bakepass, obj, object_id, pixel_array, result):
+ engine.bake(self, depsgraph, bakepass, obj, object_id, pixel_array, result)
# viewport render
def view_update(self, context):
diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py
index b8bc74f9e35..56637cd1459 100644
--- a/intern/cycles/blender/addon/engine.py
+++ b/intern/cycles/blender/addon/engine.py
@@ -164,11 +164,11 @@ def render(engine, depsgraph):
_cycles.render(engine.session, depsgraph.as_pointer())
-def bake(engine, depsgraph, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result):
+def bake(engine, depsgraph, bakepass, obj, object_id, pixel_array, result):
import _cycles
session = getattr(engine, "session", None)
if session is not None:
- _cycles.bake(engine.session, depsgraph.as_pointer(), obj.as_pointer(), pass_type, pass_filter, object_id, pixel_array.as_pointer(), num_pixels, depth, result.as_pointer())
+ _cycles.bake(engine.session, depsgraph.as_pointer(), bakepass.as_pointer(), obj.as_pointer(), object_id, pixel_array.as_pointer(), result.as_pointer())
def reset(engine, data, depsgraph):
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 11f75b668a9..7e95478cad2 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -569,26 +569,6 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
default=False,
)
- bake_type: EnumProperty(
- name="Bake Type",
- default='COMBINED',
- description="Type of pass to bake",
- items=(
- ('COMBINED', "Combined", ""),
- ('AO', "Ambient Occlusion", ""),
- ('SHADOW', "Shadow", ""),
- ('NORMAL', "Normal", ""),
- ('UV', "UV", ""),
- ('ROUGHNESS', "Roughness", ""),
- ('EMIT', "Emit", ""),
- ('ENVIRONMENT', "Environment", ""),
- ('DIFFUSE', "Diffuse", ""),
- ('GLOSSY', "Glossy", ""),
- ('TRANSMISSION', "Transmission", ""),
- ('SUBSURFACE', "Subsurface", ""),
- ),
- )
-
use_camera_cull: BoolProperty(
name="Use Camera Cull",
description="Allow objects to be culled based on the camera frustum",
@@ -1407,6 +1387,94 @@ class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
del bpy.types.ViewLayer.cycles
+class CyclesBakePassSettings(bpy.types.PropertyGroup):
+
+ bake_type: EnumProperty(
+ name="Bake Type",
+ default='COMBINED',
+ description="Type of pass to bake",
+ items=(
+ ('COMBINED', "Combined", ""),
+ ('AO', "Ambient Occlusion", ""),
+ ('SHADOW', "Shadow", ""),
+ ('NORMAL', "Normal", ""),
+ ('UV', "UV", ""),
+ ('ROUGHNESS', "Roughness", ""),
+ ('EMIT', "Emit", ""),
+ ('ENVIRONMENT', "Environment", ""),
+ ('DIFFUSE', "Diffuse", ""),
+ ('GLOSSY', "Glossy", ""),
+ ('TRANSMISSION', "Transmission", ""),
+ ('SUBSURFACE', "Subsurface", ""),
+ ),
+ )
+
+ use_pass_ambient_occlusion: BoolProperty(
+ name="AO",
+ description="Add ambient occlusion contribution",
+ default=True,
+ )
+ use_pass_emit: BoolProperty(
+ name="Emit",
+ description="Add emission contribution",
+ default=True,
+ )
+ use_pass_direct: BoolProperty(
+ name="Direct",
+ description="Add direct lighting contribution",
+ default=True,
+ )
+ use_pass_indirect: BoolProperty(
+ name="Indirect",
+ description="Add indirect lighting contribution",
+ default=True,
+ )
+ use_pass_color: BoolProperty(
+ name="Color",
+ description="Color the pass",
+ default=True,
+ )
+ use_pass_diffuse: BoolProperty(
+ name="Diffuse",
+ description="Add diffuse contribution",
+ default=True,
+ )
+ use_pass_glossy: BoolProperty(
+ name="Glossy",
+ description="Add glossy contribution",
+ default=True,
+ )
+ use_pass_transmission: BoolProperty(
+ name="Transmission",
+ description="Add transmission contribution",
+ default=True,
+ )
+ use_pass_subsurface: BoolProperty(
+ name="Subsurface",
+ description="Add subsurface contribution",
+ default=True,
+ )
+
+ samples: IntProperty(
+ name="Samples",
+ description="Override number of render samples for this bake pass, 0 will use the scene setting",
+ default=0,
+ min=0,
+ )
+
+ @classmethod
+ def register(cls):
+ bpy.types.BakePass.cycles = PointerProperty(
+ name="Cycles Bake Pass Settings",
+ description="Cycles Bake Pass Settings",
+ type=cls,
+ )
+
+ @classmethod
+ def unregister(cls):
+ del bpy.types.BakePass.cycles
+
+
class CyclesDeviceSettings(bpy.types.PropertyGroup):
id: StringProperty(name="ID")
name: StringProperty(name="Name")
@@ -1542,6 +1610,7 @@ def register():
bpy.utils.register_class(CyclesDeviceSettings)
bpy.utils.register_class(CyclesPreferences)
bpy.utils.register_class(CyclesRenderLayerSettings)
+ bpy.utils.register_class(CyclesBakePassSettings)
def unregister():
@@ -1557,3 +1626,4 @@ def unregister():
bpy.utils.unregister_class(CyclesDeviceSettings)
bpy.utils.unregister_class(CyclesPreferences)
bpy.utils.unregister_class(CyclesRenderLayerSettings)
+ bpy.utils.unregister_class(CyclesBakePassSettings)
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 542f02f1a6d..d67866984db 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1738,155 +1738,61 @@ class CYCLES_MATERIAL_PT_settings_volume(CyclesButtonsPanel, Panel):
class CYCLES_RENDER_PT_bake(CyclesButtonsPanel, Panel):
- bl_label = "Bake"
- bl_context = "render"
- bl_options = {'DEFAULT_CLOSED'}
- COMPAT_ENGINES = {'CYCLES'}
-
- def draw(self, context):
- layout = self.layout
- layout.use_property_split = True
- layout.use_property_decorate = False # No animation.
-
- scene = context.scene
- cscene = scene.cycles
- cbk = scene.render.bake
- rd = scene.render
-
- if rd.use_bake_multires:
- layout.operator("object.bake_image", icon='RENDER_STILL')
- layout.prop(rd, "use_bake_multires")
- layout.prop(rd, "bake_type")
-
- else:
- layout.operator("object.bake", icon='RENDER_STILL').type = cscene.bake_type
- layout.prop(rd, "use_bake_multires")
- layout.prop(cscene, "bake_type")
-
-
-class CYCLES_RENDER_PT_bake_influence(CyclesButtonsPanel, Panel):
- bl_label = "Influence"
- bl_context = "render"
- bl_parent_id = "CYCLES_RENDER_PT_bake"
+ bl_label = "Cycles Baking"
+ bl_context = "object"
+ bl_parent_id = "OBJECT_PT_bake_passes"
COMPAT_ENGINES = {'CYCLES'}
@classmethod
def poll(cls, context):
scene = context.scene
- cscene = scene.cycles
rd = scene.render
- if rd.use_bake_multires == False and cscene.bake_type in {
- 'NORMAL', 'COMBINED', 'DIFFUSE', 'GLOSSY', 'TRANSMISSION', 'SUBSURFACE'}:
- return True
+ bp = context.object.bake_passes.active
+ return context.engine in cls.COMPAT_ENGINES \
+ and not rd.use_bake_multires and bp
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
- scene = context.scene
- cscene = scene.cycles
- cbk = scene.render.bake
- rd = scene.render
+ bp = context.object.bake_passes.active
+ cbp = bp.cycles
+
+ layout.prop(cbp, "bake_type")
+ layout.prop(cbp, "samples")
col = layout.column()
- if cscene.bake_type == 'NORMAL':
- col.prop(cbk, "normal_space", text="Space")
+ if cbp.bake_type == 'NORMAL':
+ col.prop(bp, "normal_space", text="Space")
sub = col.column(align=True)
- sub.prop(cbk, "normal_r", text="Swizzle R")
- sub.prop(cbk, "normal_g", text="G")
- sub.prop(cbk, "normal_b", text="B")
+ sub.prop(bp, "normal_r", text="Swizzle R")
+ sub.prop(bp, "normal_g", text="G")
+ sub.prop(bp, "normal_b", text="B")
- elif cscene.bake_type == 'COMBINED':
+ elif cbp.bake_type == 'COMBINED':
row = col.row(align=True)
row.use_property_split = False
- row.prop(cbk, "use_pass_direct", toggle=True)
- row.prop(cbk, "use_pass_indirect", toggle=True)
+ row.prop(cbp, "use_pass_direct", toggle=True)
+ row.prop(cbp, "use_pass_indirect", toggle=True)
flow = col.grid_flow(row_major=False, columns=0, even_columns=False, even_rows=False, align=True)
- flow.active = cbk.use_pass_direct or cbk.use_pass_indirect
- flow.prop(cbk, "use_pass_diffuse")
- flow.prop(cbk, "use_pass_glossy")
- flow.prop(cbk, "use_pass_transmission")
- flow.prop(cbk, "use_pass_subsurface")
- flow.prop(cbk, "use_pass_ambient_occlusion")
- flow.prop(cbk, "use_pass_emi
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list