[Bf-blender-cvs] [d102f07] experimental-build: Yet another custom-bake test build - I wish we could build straight from branches ; )
Dalai Felinto
noreply at git.blender.org
Mon Dec 21 18:39:38 CET 2015
Commit: d102f07119775f8f3f96d51a4ad7889592390f17
Author: Dalai Felinto
Date: Mon Dec 21 15:37:15 2015 -0200
Branches: experimental-build
https://developer.blender.org/rBd102f07119775f8f3f96d51a4ad7889592390f17
Yet another custom-bake test build - I wish we could build straight from branches ;)
===================================================================
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/addon/version_update.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/kernel/kernel_bake.h
M intern/cycles/kernel/kernel_types.h
M intern/cycles/render/bake.cpp
M intern/cycles/render/bake.h
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/versioning_270.c
M source/blender/editors/object/object_bake_api.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/RNA_enum_types.h
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/external_engine.c
===================================================================
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py
index 0783c1c..e883413 100644
--- a/intern/cycles/blender/addon/__init__.py
+++ b/intern/cycles/blender/addon/__init__.py
@@ -67,8 +67,8 @@ class CyclesRender(bpy.types.RenderEngine):
def render(self, scene):
engine.render(self)
- def bake(self, scene, obj, pass_type, object_id, pixel_array, num_pixels, depth, result):
- engine.bake(self, obj, pass_type, object_id, pixel_array, num_pixels, depth, result)
+ def bake(self, scene, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result):
+ engine.bake(self, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, 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 030f0db..833bf04 100644
--- a/intern/cycles/blender/addon/engine.py
+++ b/intern/cycles/blender/addon/engine.py
@@ -105,11 +105,11 @@ def render(engine):
_cycles.render(engine.session)
-def bake(engine, obj, pass_type, object_id, pixel_array, num_pixels, depth, result):
+def bake(engine, obj, pass_type, pass_filter, object_id, pixel_array, num_pixels, depth, result):
import _cycles
session = getattr(engine, "session", None)
if session is not None:
- _cycles.bake(engine.session, obj.as_pointer(), pass_type, object_id, pixel_array.as_pointer(), num_pixels, depth, result.as_pointer())
+ _cycles.bake(engine.session, obj.as_pointer(), pass_type, pass_filter, object_id, pixel_array.as_pointer(), num_pixels, depth, result.as_pointer())
def reset(engine, data, scene):
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index cbd1a8b..6e8c046 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -483,7 +483,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
cls.bake_type = EnumProperty(
name="Bake Type",
default='COMBINED',
- description="Type of pass to bake",
+ description="Deprecated, use bake_pass_type instead",
items=(
('COMBINED', "Combined", ""),
('AO', "Ambient Occlusion", ""),
@@ -507,6 +507,25 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
),
)
+ cls.bake_pass_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", ""),
+ ('EMIT', "Emit", ""),
+ ('ENVIRONMENT', "Environment", ""),
+ ('DIFFUSE', "Diffuse", ""),
+ ('GLOSSY', "Glossy", ""),
+ ('TRANSMISSION', "Transmission", ""),
+ ('SUBSURFACE', "Subsurface", ""),
+ ),
+ )
+
cls.use_camera_cull = BoolProperty(
name="Use Camera Cull",
description="Allow objects to be culled based on the camera frustum",
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index e2aa266..145e5d8 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1403,10 +1403,10 @@ class CyclesRender_PT_bake(CyclesButtonsPanel, Panel):
cscene = scene.cycles
cbk = scene.render.bake
- layout.operator("object.bake", icon='RENDER_STILL').type = cscene.bake_type
+ layout.operator("object.bake", icon='RENDER_STILL').type = cscene.bake_pass_type
col = layout.column()
- col.prop(cscene, "bake_type")
+ col.prop(cscene, "bake_pass_type")
col.separator()
split = layout.split()
@@ -1426,18 +1426,50 @@ class CyclesRender_PT_bake(CyclesButtonsPanel, Panel):
else:
sub.prop(cbk, "cage_extrusion", text="Ray Distance")
- if cscene.bake_type == 'NORMAL':
+ if cscene.bake_pass_type == 'NORMAL':
layout.separator()
- box = layout.box()
- box.label(text="Normal Settings:")
- box.prop(cbk, "normal_space", text="Space")
+ col = layout.column()
+ col.label(text="Normal Settings:")
+ col.prop(cbk, "normal_space", text="Space")
- row = box.row(align=True)
+ row = col.row(align=True)
row.label(text="Swizzle:")
row.prop(cbk, "normal_r", text="")
row.prop(cbk, "normal_g", text="")
row.prop(cbk, "normal_b", text="")
+ elif cscene.bake_pass_type == 'COMBINED':
+ col = layout.column()
+ col.label(text="Combined Settings:")
+
+ row = col.row()
+ row.prop(cbk, "use_pass_ambient_occlusion")
+ row.prop(cbk, "use_pass_emit")
+
+ row = col.row(align=True)
+ row.prop(cbk, "use_pass_direct", toggle=True)
+ row.prop(cbk, "use_pass_indirect", toggle=True)
+
+ split = col.split()
+ split.active = cbk.use_pass_direct or cbk.use_pass_indirect
+
+ col = split.column()
+ col.prop(cbk, "use_pass_diffuse")
+ col.prop(cbk, "use_pass_glossy")
+
+ col = split.column()
+ col.prop(cbk, "use_pass_transmission")
+ col.prop(cbk, "use_pass_subsurface")
+
+ elif cscene.bake_pass_type in {'DIFFUSE', 'GLOSSY', 'TRANSMISSION', 'SUBSURFACE'}:
+ layout.separator()
+ col = layout.column()
+ col.label(text="{0} Settings:".format(cscene.bake_pass_type.title()))
+
+ row = col.row(align=True)
+ row.prop(cbk, "use_pass_direct", toggle=True)
+ row.prop(cbk, "use_pass_indirect", toggle=True)
+ row.prop(cbk, "use_pass_color", toggle=True)
class CyclesParticle_PT_CurveSettings(CyclesButtonsPanel, Panel):
bl_label = "Cycles Hair Settings"
diff --git a/intern/cycles/blender/addon/version_update.py b/intern/cycles/blender/addon/version_update.py
index 2fbb01b..b766300 100644
--- a/intern/cycles/blender/addon/version_update.py
+++ b/intern/cycles/blender/addon/version_update.py
@@ -140,3 +140,26 @@ def do_versions(self):
# Euler order was ZYX in previous versions.
if bpy.data.version <= (2, 73, 4):
foreach_cycles_node(mapping_node_order_flip)
+
+ # Baking types changed
+ if bpy.data.version <= (2, 76, 4):
+ for scene in bpy.data.scenes:
+ cscene = scene.cycles
+ bake_type = cscene.bake_type
+
+ if not '_' in bake_type:
+ cscene.bake_pass_type = bake_type
+ continue
+
+ cscene.bake_pass_type, end = bake_type.split('_')
+ if end == 'DIRECT':
+ scene.render.bake.use_pass_indirect = False
+ scene.render.bake.use_pass_color = False
+
+ elif end == 'INDIRECT':
+ scene.render.bake.use_pass_direct = False
+ scene.render.bake.use_pass_color = False
+
+ elif end == 'COLOR':
+ scene.render.bake.use_pass_direct = False
+ scene.render.bake.use_pass_indirect = False
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 6581d0b..25d44bd 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -190,9 +190,9 @@ static PyObject *bake_func(PyObject * /*self*/, PyObject *args)
PyObject *pysession, *pyobject;
PyObject *pypixel_array, *pyresult;
const char *pass_type;
- int num_pixels, depth, object_id;
+ int num_pixels, depth, object_id, pass_filter;
- if(!PyArg_ParseTuple(args, "OOsiOiiO", &pysession, &pyobject, &pass_type, &object_id, &pypixel_array, &num_pixels, &depth, &pyresult))
+ if(!PyArg_ParseTuple(args, "OOsiiOiiO", &pysession, &pyobject, &pass_type, &pass_filter, &object_id, &pypixel_array, &num_pixels, &depth, &pyresult))
return NULL;
BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession);
@@ -209,7 +209,7 @@ static PyObject *bake_func(PyObject * /*self*/, PyObject *args)
python_thread_state_save(&session->python_thread_state);
- session->bake(b_object, pass_type, object_id, b_bake_pixel, (size_t)num_pixels, depth, (float *)b_result);
+ session->bake(b_object, pass_type, pass_filter, object_id, b_bake_pixel, (size_t)num_pixels, depth, (float *)b_result);
python_thread_state_restore(&session->python_thread_state);
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 088748c..7fb83fb 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -316,22 +316,14 @@ static ShaderEvalType get_shader_type(const string& pass_type)
return SHADER_EVAL_COMBINED;
else if(strcmp(shader_type, "SHADOW")==0)
return SHADER_EVAL_SHADOW;
- else if(strcmp(shader_type, "DIFFUSE_DIRECT")==0)
- return SHADER_EVAL_DIFFUSE_DIRECT;
- else if(strcmp(shader_type, "GLOSSY_DIRECT")==0)
- return SHADER_EVAL_GLOSSY_DIRECT;
- else if(strcmp(shader_type, "TRANSMISSION_DIRECT")==0)
- return SHADER_EVAL_TRANSMISSION_DIRECT;
- else if(strcmp(shader_type, "SUBSURFACE_DIRECT")==0)
- return SHADER_EVAL_SUBSURFACE_DIRECT;
- else if(strcmp(shader_type, "DIFFUSE_INDIRECT")==0)
- return SHADER_EVAL_DIFFUSE_INDIRECT;
- else if(strcmp(shader_type, "GLOSSY_INDIRECT")==0)
- return SHADER_EVAL_GLOSSY_INDIRECT;
- else if(strcmp(shader_type, "TRANSMISSION_INDIRECT")==0)
- return SHADER_EVAL_TRANSMISSION_INDIRECT;
- else if(strcmp(shader_type, "SUBSURFACE_INDIRECT")==0)
- return SHADER_EVAL_SUBSURFACE_INDIRECT;
+ else if(strcmp(shader_type, "DIFFUSE")==0)
+ return SHADER_EVAL_DIFFUSE;
+ else if(strcmp(shader_type, "GLOSSY")==0)
+ return SHADER_EVAL_GLOSSY;
+ else if(strcmp(shader_type, "TRANSMISSION")==0)
+ return SHADER_EVAL_TRANSMISSION;
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list