Render: Rename render passes for clarity
In very old OpenEXR version there was a limit on the channel names, which meant the pass names needed to be short like "DiffDir". Change them to be longer like "Diffuse Direct". * This breaks forward compatibility. Old Blender version will lose links when reading compositing node setups with such passes, but #146571 will fix it for 4.5 LTS. * Add-ons, scripts and compositing setups in other applications that rely on these names will also break. * The find_by_type function for render passes has also been removed, as this was already deprecated and replaced by find_by_name. * We assume spaces in the name are ok, since we have passes with them already and have not seen reports about compatibility issues. Pull Request: https://projects.blender.org/blender/blender/pulls/142731
This commit is contained in:
@@ -186,34 +186,34 @@ def list_render_passes(scene, srl):
|
||||
# autopep8: off
|
||||
|
||||
# Data passes.
|
||||
if srl.use_pass_z: yield ("Depth", "Z", 'VALUE')
|
||||
if srl.use_pass_mist: yield ("Mist", "Z", 'VALUE')
|
||||
if srl.use_pass_position: yield ("Position", "XYZ", 'VECTOR')
|
||||
if srl.use_pass_normal: yield ("Normal", "XYZ", 'VECTOR')
|
||||
if srl.use_pass_vector: yield ("Vector", "XYZW", 'VECTOR')
|
||||
if srl.use_pass_uv: yield ("UV", "UVA", 'VECTOR')
|
||||
if srl.use_pass_object_index: yield ("IndexOB", "X", 'VALUE')
|
||||
if srl.use_pass_material_index: yield ("IndexMA", "X", 'VALUE')
|
||||
if crl.use_pass_volume_majorant: yield ("Volume Majorant", "Z", 'VALUE')
|
||||
if srl.use_pass_z: yield ("Depth", "Z", 'VALUE')
|
||||
if srl.use_pass_mist: yield ("Mist", "Z", 'VALUE')
|
||||
if srl.use_pass_position: yield ("Position", "XYZ", 'VECTOR')
|
||||
if srl.use_pass_normal: yield ("Normal", "XYZ", 'VECTOR')
|
||||
if srl.use_pass_vector: yield ("Vector", "XYZW", 'VECTOR')
|
||||
if srl.use_pass_uv: yield ("UV", "UVA", 'VECTOR')
|
||||
if srl.use_pass_object_index: yield ("Object Index", "X", 'VALUE')
|
||||
if srl.use_pass_material_index: yield ("Material Index", "X", 'VALUE')
|
||||
|
||||
# Light passes.
|
||||
if srl.use_pass_diffuse_direct: yield ("DiffDir", "RGB", 'COLOR')
|
||||
if srl.use_pass_diffuse_indirect: yield ("DiffInd", "RGB", 'COLOR')
|
||||
if srl.use_pass_diffuse_color: yield ("DiffCol", "RGB", 'COLOR')
|
||||
if srl.use_pass_glossy_direct: yield ("GlossDir", "RGB", 'COLOR')
|
||||
if srl.use_pass_glossy_indirect: yield ("GlossInd", "RGB", 'COLOR')
|
||||
if srl.use_pass_glossy_color: yield ("GlossCol", "RGB", 'COLOR')
|
||||
if srl.use_pass_transmission_direct: yield ("TransDir", "RGB", 'COLOR')
|
||||
if srl.use_pass_transmission_indirect: yield ("TransInd", "RGB", 'COLOR')
|
||||
if srl.use_pass_transmission_color: yield ("TransCol", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_direct: yield ("VolumeDir", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_indirect: yield ("VolumeInd", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_scatter: yield ("Volume Scatter", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_transmit: yield ("Volume Transmit", "RGB", 'COLOR')
|
||||
if srl.use_pass_emit: yield ("Emit", "RGB", 'COLOR')
|
||||
if srl.use_pass_environment: yield ("Env", "RGB", 'COLOR')
|
||||
if srl.use_pass_ambient_occlusion: yield ("AO", "RGB", 'COLOR')
|
||||
if crl.use_pass_shadow_catcher: yield ("Shadow Catcher", "RGB", 'COLOR')
|
||||
if srl.use_pass_diffuse_direct: yield ("Diffuse Direct", "RGB", 'COLOR')
|
||||
if srl.use_pass_diffuse_indirect: yield ("Diffuse Indirect", "RGB", 'COLOR')
|
||||
if srl.use_pass_diffuse_color: yield ("Diffuse Color", "RGB", 'COLOR')
|
||||
if srl.use_pass_glossy_direct: yield ("Glossy Direct", "RGB", 'COLOR')
|
||||
if srl.use_pass_glossy_indirect: yield ("Glossy Indirect", "RGB", 'COLOR')
|
||||
if srl.use_pass_glossy_color: yield ("Glossy Color", "RGB", 'COLOR')
|
||||
if srl.use_pass_transmission_direct: yield ("Transmission Direct", "RGB", 'COLOR')
|
||||
if srl.use_pass_transmission_indirect: yield ("Transmission Indirect", "RGB", 'COLOR')
|
||||
if srl.use_pass_transmission_color: yield ("Transmission Color", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_direct: yield ("Volume Direct", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_indirect: yield ("Volume Indirect", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_scatter: yield ("Volume Scatter", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_transmit: yield ("Volume Transmit", "RGB", 'COLOR')
|
||||
if crl.use_pass_volume_majorant: yield ("Volume Majorant", "Z", 'VALUE')
|
||||
if srl.use_pass_emit: yield ("Emission", "RGB", 'COLOR')
|
||||
if srl.use_pass_environment: yield ("Environment", "RGB", 'COLOR')
|
||||
if srl.use_pass_ambient_occlusion: yield ("Ambient Occlusion", "RGB", 'COLOR')
|
||||
if crl.use_pass_shadow_catcher: yield ("Shadow Catcher", "RGB", 'COLOR')
|
||||
# autopep8: on
|
||||
|
||||
# Debug passes.
|
||||
|
||||
@@ -928,7 +928,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
|
||||
('NORMAL', "Normal", "", 3),
|
||||
('UV', "UV", "", 4),
|
||||
('ROUGHNESS', "Roughness", "", 5),
|
||||
('EMIT', "Emit", "", 6),
|
||||
('EMIT', "Emission", "", 6),
|
||||
('ENVIRONMENT', "Environment", "", 7),
|
||||
('DIFFUSE', "Diffuse", "", 8),
|
||||
('GLOSSY', "Glossy", "", 9),
|
||||
|
||||
@@ -671,31 +671,31 @@ static bool get_known_pass_type(BL::RenderPass &b_pass, PassType &type, PassMode
|
||||
MAP_PASS("Mist", PASS_MIST, false);
|
||||
MAP_PASS("Position", PASS_POSITION, false);
|
||||
MAP_PASS("Normal", PASS_NORMAL, false);
|
||||
MAP_PASS("IndexOB", PASS_OBJECT_ID, false);
|
||||
MAP_PASS("Object Index", PASS_OBJECT_ID, false);
|
||||
MAP_PASS("UV", PASS_UV, false);
|
||||
MAP_PASS("Vector", PASS_MOTION, false);
|
||||
MAP_PASS("IndexMA", PASS_MATERIAL_ID, false);
|
||||
MAP_PASS("Material Index", PASS_MATERIAL_ID, false);
|
||||
|
||||
MAP_PASS("DiffDir", PASS_DIFFUSE_DIRECT, false);
|
||||
MAP_PASS("GlossDir", PASS_GLOSSY_DIRECT, false);
|
||||
MAP_PASS("TransDir", PASS_TRANSMISSION_DIRECT, false);
|
||||
MAP_PASS("VolumeDir", PASS_VOLUME_DIRECT, false);
|
||||
MAP_PASS("Diffuse Direct", PASS_DIFFUSE_DIRECT, false);
|
||||
MAP_PASS("Glossy Direct", PASS_GLOSSY_DIRECT, false);
|
||||
MAP_PASS("Transmission Direct", PASS_TRANSMISSION_DIRECT, false);
|
||||
MAP_PASS("Volume Direct", PASS_VOLUME_DIRECT, false);
|
||||
|
||||
MAP_PASS("DiffInd", PASS_DIFFUSE_INDIRECT, false);
|
||||
MAP_PASS("GlossInd", PASS_GLOSSY_INDIRECT, false);
|
||||
MAP_PASS("TransInd", PASS_TRANSMISSION_INDIRECT, false);
|
||||
MAP_PASS("VolumeInd", PASS_VOLUME_INDIRECT, false);
|
||||
MAP_PASS("Diffuse Indirect", PASS_DIFFUSE_INDIRECT, false);
|
||||
MAP_PASS("Glossy Indirect", PASS_GLOSSY_INDIRECT, false);
|
||||
MAP_PASS("Transmission Indirect", PASS_TRANSMISSION_INDIRECT, false);
|
||||
MAP_PASS("Volume Indirect", PASS_VOLUME_INDIRECT, false);
|
||||
MAP_PASS("Volume Scatter", PASS_VOLUME_SCATTER, false);
|
||||
MAP_PASS("Volume Transmit", PASS_VOLUME_TRANSMIT, false);
|
||||
MAP_PASS("Volume Majorant", PASS_VOLUME_MAJORANT, false);
|
||||
|
||||
MAP_PASS("DiffCol", PASS_DIFFUSE_COLOR, false);
|
||||
MAP_PASS("GlossCol", PASS_GLOSSY_COLOR, false);
|
||||
MAP_PASS("TransCol", PASS_TRANSMISSION_COLOR, false);
|
||||
MAP_PASS("Diffuse Color", PASS_DIFFUSE_COLOR, false);
|
||||
MAP_PASS("Glossy Color", PASS_GLOSSY_COLOR, false);
|
||||
MAP_PASS("Transmission Color", PASS_TRANSMISSION_COLOR, false);
|
||||
|
||||
MAP_PASS("Emit", PASS_EMISSION, false);
|
||||
MAP_PASS("Env", PASS_BACKGROUND, false);
|
||||
MAP_PASS("AO", PASS_AO, false);
|
||||
MAP_PASS("Emission", PASS_EMISSION, false);
|
||||
MAP_PASS("Environment", PASS_BACKGROUND, false);
|
||||
MAP_PASS("Ambient Occlusion", PASS_AO, false);
|
||||
|
||||
MAP_PASS("BakePrimitive", PASS_BAKE_PRIMITIVE, false);
|
||||
MAP_PASS("BakeSeed", PASS_BAKE_SEED, false);
|
||||
|
||||
@@ -14,28 +14,28 @@ from collections import namedtuple
|
||||
# rl_outputs entry = (render_pass, rl_output_name, exr_output_name, in_eevee, in_cycles)
|
||||
RL_entry = namedtuple('RL_Entry', ['render_pass', 'output_name', 'exr_output_name', 'in_eevee', 'in_cycles'])
|
||||
rl_outputs = (
|
||||
RL_entry('use_pass_ambient_occlusion', 'AO', 'AO', True, True),
|
||||
RL_entry('use_pass_ambient_occlusion', 'Ambient Occlusion', 'Ambient Occlusion', True, True),
|
||||
RL_entry('use_pass_combined', 'Image', 'Combined', True, True),
|
||||
RL_entry('use_pass_diffuse_color', 'Diffuse Color', 'DiffCol', False, True),
|
||||
RL_entry('use_pass_diffuse_direct', 'Diffuse Direct', 'DiffDir', False, True),
|
||||
RL_entry('use_pass_diffuse_indirect', 'Diffuse Indirect', 'DiffInd', False, True),
|
||||
RL_entry('use_pass_emit', 'Emit', 'Emit', False, True),
|
||||
RL_entry('use_pass_environment', 'Environment', 'Env', False, False),
|
||||
RL_entry('use_pass_glossy_color', 'Glossy Color', 'GlossCol', False, True),
|
||||
RL_entry('use_pass_glossy_direct', 'Glossy Direct', 'GlossDir', False, True),
|
||||
RL_entry('use_pass_glossy_indirect', 'Glossy Indirect', 'GlossInd', False, True),
|
||||
RL_entry('use_pass_diffuse_color', 'Diffuse Color', 'Diffuse Color', False, True),
|
||||
RL_entry('use_pass_diffuse_direct', 'Diffuse Direct', 'Diffuse Direct', False, True),
|
||||
RL_entry('use_pass_diffuse_indirect', 'Diffuse Indirect', 'Diffuse Indirect', False, True),
|
||||
RL_entry('use_pass_emit', 'Emission', 'Emission', False, True),
|
||||
RL_entry('use_pass_environment', 'Environment', 'Environment', False, False),
|
||||
RL_entry('use_pass_glossy_color', 'Glossy Color', 'Glossy Color', False, True),
|
||||
RL_entry('use_pass_glossy_direct', 'Glossy Direct', 'Glossy Direct', False, True),
|
||||
RL_entry('use_pass_glossy_indirect', 'Glossy Indirect', 'Glossy Indirect', False, True),
|
||||
RL_entry('use_pass_indirect', 'Indirect', 'Indirect', False, False),
|
||||
RL_entry('use_pass_material_index', 'IndexMA', 'IndexMA', False, True),
|
||||
RL_entry('use_pass_material_index', 'Material Index', 'Material Index', False, True),
|
||||
RL_entry('use_pass_mist', 'Mist', 'Mist', True, True),
|
||||
RL_entry('use_pass_normal', 'Normal', 'Normal', True, True),
|
||||
RL_entry('use_pass_object_index', 'IndexOB', 'IndexOB', False, True),
|
||||
RL_entry('use_pass_object_index', 'Object Index', 'Object Index', False, True),
|
||||
RL_entry('use_pass_shadow', 'Shadow', 'Shadow', False, True),
|
||||
RL_entry('use_pass_subsurface_color', 'Subsurface Color', 'SubsurfaceCol', True, True),
|
||||
RL_entry('use_pass_subsurface_direct', 'Subsurface Direct', 'SubsurfaceDir', True, True),
|
||||
RL_entry('use_pass_subsurface_indirect', 'Subsurface Indirect', 'SubsurfaceInd', False, True),
|
||||
RL_entry('use_pass_transmission_color', 'Transmission Color', 'TransCol', False, True),
|
||||
RL_entry('use_pass_transmission_direct', 'Transmission Direct', 'TransDir', False, True),
|
||||
RL_entry('use_pass_transmission_indirect', 'Transmission Indirect', 'TransInd', False, True),
|
||||
RL_entry('use_pass_subsurface_color', 'Subsurface Color', 'Subsurface Color', True, True),
|
||||
RL_entry('use_pass_subsurface_direct', 'Subsurface Direct', 'Subsurface Direct', True, True),
|
||||
RL_entry('use_pass_subsurface_indirect', 'Subsurface Indirect', 'Subsurface Indirect', False, True),
|
||||
RL_entry('use_pass_transmission_color', 'Transmission Color', 'Transmission Color', False, True),
|
||||
RL_entry('use_pass_transmission_direct', 'Transmission Direct', 'Transmission Direct', False, True),
|
||||
RL_entry('use_pass_transmission_indirect', 'Transmission Indirect', 'Transmission Indirect', False, True),
|
||||
RL_entry('use_pass_uv', 'UV', 'UV', True, True),
|
||||
RL_entry('use_pass_vector', 'Speed', 'Vector', False, True),
|
||||
RL_entry('use_pass_z', 'Z', 'Depth', True, True),
|
||||
|
||||
@@ -142,13 +142,19 @@ TEST(view_layer, aov_conflict)
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "Normal", "use_pass_normal");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "Mist", "use_pass_mist");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "Shadow", "use_pass_shadow");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "AO", "use_pass_ambient_occlusion");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "Emit", "use_pass_emit");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "Env", "use_pass_environment");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "DiffDir", "use_pass_diffuse_direct");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "DiffCol", "use_pass_diffuse_color");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "GlossDir", "use_pass_glossy_direct");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "GlossCol", "use_pass_glossy_color");
|
||||
test_render_pass_conflict(
|
||||
&scene, engine, view_layer, aov, "Ambient Occlusion", "use_pass_ambient_occlusion");
|
||||
test_render_pass_conflict(&scene, engine, view_layer, aov, "Emission", "use_pass_emit");
|
||||
test_render_pass_conflict(
|
||||
&scene, engine, view_layer, aov, "Environment", "use_pass_environment");
|
||||
test_render_pass_conflict(
|
||||
&scene, engine, view_layer, aov, "Diffuse Direct", "use_pass_diffuse_direct");
|
||||
test_render_pass_conflict(
|
||||
&scene, engine, view_layer, aov, "Diffuse Color", "use_pass_diffuse_color");
|
||||
test_render_pass_conflict(
|
||||
&scene, engine, view_layer, aov, "Glossy Direct", "use_pass_glossy_direct");
|
||||
test_render_pass_conflict(
|
||||
&scene, engine, view_layer, aov, "Glossy Color", "use_pass_glossy_color");
|
||||
|
||||
/* Tear down */
|
||||
RE_engine_free(engine);
|
||||
|
||||
@@ -613,14 +613,14 @@ static bool bake_pass_filter_check(eScenePassType pass_type,
|
||||
|
||||
BKE_report(reports,
|
||||
RPT_ERROR,
|
||||
"Combined bake pass requires Emit, or a light pass with "
|
||||
"Combined bake pass requires Emission, or a light pass with "
|
||||
"Direct or Indirect contributions enabled");
|
||||
|
||||
return false;
|
||||
}
|
||||
BKE_report(reports,
|
||||
RPT_ERROR,
|
||||
"Combined bake pass requires Emit, or a light pass with "
|
||||
"Combined bake pass requires Emission, or a light pass with "
|
||||
"Direct or Indirect contributions enabled");
|
||||
return false;
|
||||
case SCE_PASS_DIFFUSE_COLOR:
|
||||
|
||||
@@ -330,39 +330,38 @@ typedef enum eScenePassType {
|
||||
#define RE_PASSNAME_POSITION "Position"
|
||||
#define RE_PASSNAME_NORMAL "Normal"
|
||||
#define RE_PASSNAME_UV "UV"
|
||||
#define RE_PASSNAME_EMIT "Emit"
|
||||
#define RE_PASSNAME_EMIT "Emission"
|
||||
#define RE_PASSNAME_SHADOW "Shadow"
|
||||
|
||||
#define RE_PASSNAME_AO "AO"
|
||||
#define RE_PASSNAME_ENVIRONMENT "Env"
|
||||
#define RE_PASSNAME_INDEXOB "IndexOB"
|
||||
#define RE_PASSNAME_INDEXMA "IndexMA"
|
||||
#define RE_PASSNAME_AO "Ambient Occlusion"
|
||||
#define RE_PASSNAME_ENVIRONMENT "Environment"
|
||||
#define RE_PASSNAME_INDEXOB "Object Index"
|
||||
#define RE_PASSNAME_INDEXMA "Material Index"
|
||||
#define RE_PASSNAME_MIST "Mist"
|
||||
|
||||
#define RE_PASSNAME_DIFFUSE_DIRECT "DiffDir"
|
||||
#define RE_PASSNAME_DIFFUSE_INDIRECT "DiffInd"
|
||||
#define RE_PASSNAME_DIFFUSE_COLOR "DiffCol"
|
||||
#define RE_PASSNAME_GLOSSY_DIRECT "GlossDir"
|
||||
#define RE_PASSNAME_GLOSSY_INDIRECT "GlossInd"
|
||||
#define RE_PASSNAME_GLOSSY_COLOR "GlossCol"
|
||||
#define RE_PASSNAME_TRANSM_DIRECT "TransDir"
|
||||
#define RE_PASSNAME_TRANSM_INDIRECT "TransInd"
|
||||
#define RE_PASSNAME_TRANSM_COLOR "TransCol"
|
||||
#define RE_PASSNAME_DIFFUSE_DIRECT "Diffuse Direct"
|
||||
#define RE_PASSNAME_DIFFUSE_INDIRECT "Diffuse Indirect"
|
||||
#define RE_PASSNAME_DIFFUSE_COLOR "Diffuse Color"
|
||||
#define RE_PASSNAME_GLOSSY_DIRECT "Glossy Direct"
|
||||
#define RE_PASSNAME_GLOSSY_INDIRECT "Glossy Indirect"
|
||||
#define RE_PASSNAME_GLOSSY_COLOR "Glossy Color"
|
||||
#define RE_PASSNAME_TRANSM_DIRECT "Transmission Direct"
|
||||
#define RE_PASSNAME_TRANSM_INDIRECT "Transmission Indirect"
|
||||
#define RE_PASSNAME_TRANSM_COLOR "Transmission Color"
|
||||
|
||||
#define RE_PASSNAME_SUBSURFACE_DIRECT "SubsurfaceDir"
|
||||
#define RE_PASSNAME_SUBSURFACE_INDIRECT "SubsurfaceInd"
|
||||
#define RE_PASSNAME_SUBSURFACE_COLOR "SubsurfaceCol"
|
||||
#define RE_PASSNAME_SUBSURFACE_DIRECT "Subsurface Direct"
|
||||
#define RE_PASSNAME_SUBSURFACE_INDIRECT "Subsurface Indirect"
|
||||
#define RE_PASSNAME_SUBSURFACE_COLOR "Subsurface Color"
|
||||
|
||||
#define RE_PASSNAME_FREESTYLE "Freestyle"
|
||||
#define RE_PASSNAME_BLOOM "BloomCol"
|
||||
#define RE_PASSNAME_VOLUME_LIGHT "VolumeDir"
|
||||
#define RE_PASSNAME_TRANSPARENT "Transp"
|
||||
#define RE_PASSNAME_VOLUME_LIGHT "Volume Direct"
|
||||
#define RE_PASSNAME_TRANSPARENT "Transparent"
|
||||
|
||||
#define RE_PASSNAME_CRYPTOMATTE_OBJECT "CryptoObject"
|
||||
#define RE_PASSNAME_CRYPTOMATTE_ASSET "CryptoAsset"
|
||||
#define RE_PASSNAME_CRYPTOMATTE_MATERIAL "CryptoMaterial"
|
||||
|
||||
#define RE_PASSNAME_GREASE_PENCIL "GreasePencil"
|
||||
#define RE_PASSNAME_GREASE_PENCIL "Grease Pencil"
|
||||
|
||||
/** \} */
|
||||
|
||||
|
||||
@@ -148,8 +148,6 @@ DEF_ENUM(rna_enum_rigidbody_constraint_type_items)
|
||||
|
||||
DEF_ENUM(rna_enum_object_axis_items)
|
||||
|
||||
DEF_ENUM(rna_enum_render_pass_type_items)
|
||||
|
||||
DEF_ENUM(rna_enum_bake_pass_type_items)
|
||||
DEF_ENUM(rna_enum_bake_pass_filter_type_items)
|
||||
|
||||
|
||||
@@ -24,36 +24,6 @@
|
||||
|
||||
#include "RE_engine.h"
|
||||
|
||||
/* Deprecated, only provided for API compatibility. */
|
||||
const EnumPropertyItem rna_enum_render_pass_type_items[] = {
|
||||
{SCE_PASS_COMBINED, "COMBINED", 0, "Combined", ""},
|
||||
{SCE_PASS_DEPTH, "Z", 0, "Z", ""},
|
||||
{SCE_PASS_SHADOW, "SHADOW", 0, "Shadow", ""},
|
||||
{SCE_PASS_AO, "AO", 0, "Ambient Occlusion", ""},
|
||||
{SCE_PASS_POSITION, "POSITION", 0, "Position", ""},
|
||||
{SCE_PASS_NORMAL, "NORMAL", 0, "Normal", ""},
|
||||
{SCE_PASS_VECTOR, "VECTOR", 0, "Vector", ""},
|
||||
{SCE_PASS_INDEXOB, "OBJECT_INDEX", 0, "Object Index", ""},
|
||||
{SCE_PASS_UV, "UV", 0, "UV", ""},
|
||||
{SCE_PASS_MIST, "MIST", 0, "Mist", ""},
|
||||
{SCE_PASS_EMIT, "EMIT", 0, "Emit", ""},
|
||||
{SCE_PASS_ENVIRONMENT, "ENVIRONMENT", 0, "Environment", ""},
|
||||
{SCE_PASS_INDEXMA, "MATERIAL_INDEX", 0, "Material Index", ""},
|
||||
{SCE_PASS_DIFFUSE_DIRECT, "DIFFUSE_DIRECT", 0, "Diffuse Direct", ""},
|
||||
{SCE_PASS_DIFFUSE_INDIRECT, "DIFFUSE_INDIRECT", 0, "Diffuse Indirect", ""},
|
||||
{SCE_PASS_DIFFUSE_COLOR, "DIFFUSE_COLOR", 0, "Diffuse Color", ""},
|
||||
{SCE_PASS_GLOSSY_DIRECT, "GLOSSY_DIRECT", 0, "Glossy Direct", ""},
|
||||
{SCE_PASS_GLOSSY_INDIRECT, "GLOSSY_INDIRECT", 0, "Glossy Indirect", ""},
|
||||
{SCE_PASS_GLOSSY_COLOR, "GLOSSY_COLOR", 0, "Glossy Color", ""},
|
||||
{SCE_PASS_TRANSM_DIRECT, "TRANSMISSION_DIRECT", 0, "Transmission Direct", ""},
|
||||
{SCE_PASS_TRANSM_INDIRECT, "TRANSMISSION_INDIRECT", 0, "Transmission Indirect", ""},
|
||||
{SCE_PASS_TRANSM_COLOR, "TRANSMISSION_COLOR", 0, "Transmission Color", ""},
|
||||
{SCE_PASS_SUBSURFACE_DIRECT, "SUBSURFACE_DIRECT", 0, "Subsurface Direct", ""},
|
||||
{SCE_PASS_SUBSURFACE_INDIRECT, "SUBSURFACE_INDIRECT", 0, "Subsurface Indirect", ""},
|
||||
{SCE_PASS_SUBSURFACE_COLOR, "SUBSURFACE_COLOR", 0, "Subsurface Color", ""},
|
||||
{0, nullptr, 0, nullptr, nullptr},
|
||||
};
|
||||
|
||||
const EnumPropertyItem rna_enum_bake_pass_type_items[] = {
|
||||
{SCE_PASS_COMBINED, "COMBINED", 0, "Combined", ""},
|
||||
{SCE_PASS_AO, "AO", 0, "Ambient Occlusion", ""},
|
||||
@@ -62,7 +32,7 @@ const EnumPropertyItem rna_enum_bake_pass_type_items[] = {
|
||||
{SCE_PASS_NORMAL, "NORMAL", 0, "Normal", ""},
|
||||
{SCE_PASS_UV, "UV", 0, "UV", ""},
|
||||
{int(SCE_PASS_ROUGHNESS), "ROUGHNESS", 0, "ROUGHNESS", ""},
|
||||
{SCE_PASS_EMIT, "EMIT", 0, "Emit", ""},
|
||||
{SCE_PASS_EMIT, "EMIT", 0, "Emission", ""},
|
||||
{SCE_PASS_ENVIRONMENT, "ENVIRONMENT", 0, "Environment", ""},
|
||||
{SCE_PASS_DIFFUSE_COLOR, "DIFFUSE", 0, "Diffuse", ""},
|
||||
{SCE_PASS_GLOSSY_COLOR, "GLOSSY", 0, "Glossy", ""},
|
||||
@@ -532,11 +502,6 @@ void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values)
|
||||
memcpy(buffer, values, size_in_bytes);
|
||||
}
|
||||
|
||||
static RenderPass *rna_RenderPass_find_by_type(RenderLayer *rl, int passtype, const char *view)
|
||||
{
|
||||
return RE_pass_find_by_type(rl, passtype, view);
|
||||
}
|
||||
|
||||
static RenderPass *rna_RenderPass_find_by_name(RenderLayer *rl, const char *name, const char *view)
|
||||
{
|
||||
return RE_pass_find_by_name(rl, name, view);
|
||||
@@ -1130,17 +1095,6 @@ static void rna_def_render_passes(BlenderRNA *brna, PropertyRNA *cprop)
|
||||
RNA_def_struct_sdna(srna, "RenderLayer");
|
||||
RNA_def_struct_ui_text(srna, "Render Passes", "Collection of render passes");
|
||||
|
||||
func = RNA_def_function(srna, "find_by_type", "rna_RenderPass_find_by_type");
|
||||
RNA_def_function_ui_description(func, "Get the render pass for a given type and view");
|
||||
parm = RNA_def_enum(
|
||||
func, "pass_type", rna_enum_render_pass_type_items, SCE_PASS_COMBINED, "Pass", "");
|
||||
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
|
||||
parm = RNA_def_string(
|
||||
func, "view", nullptr, 0, "View", "Render view to get pass from"); /* nullptr ok here */
|
||||
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
|
||||
parm = RNA_def_pointer(func, "render_pass", "RenderPass", "", "The matching render pass");
|
||||
RNA_def_function_return(func, parm);
|
||||
|
||||
func = RNA_def_function(srna, "find_by_name", "rna_RenderPass_find_by_name");
|
||||
RNA_def_function_ui_description(func, "Get the render pass for a given name and view");
|
||||
parm = RNA_def_string(func, "name", RE_PASSNAME_COMBINED, 0, "Pass", "");
|
||||
|
||||
@@ -5189,7 +5189,7 @@ void rna_def_view_layer_common(BlenderRNA *brna, StructRNA *srna, const bool sce
|
||||
|
||||
prop = RNA_def_property(srna, "use_pass_emit", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "passflag", SCE_PASS_EMIT);
|
||||
RNA_def_property_ui_text(prop, "Emit", "Deliver emission pass");
|
||||
RNA_def_property_ui_text(prop, "Emission", "Deliver emission pass");
|
||||
if (scene) {
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_ViewLayer_pass_update");
|
||||
}
|
||||
@@ -6027,7 +6027,7 @@ static void rna_def_bake_data(BlenderRNA *brna)
|
||||
/* custom passes flags */
|
||||
prop = RNA_def_property(srna, "use_pass_emit", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "pass_filter", R_BAKE_PASS_FILTER_EMIT);
|
||||
RNA_def_property_ui_text(prop, "Emit", "Add emission contribution");
|
||||
RNA_def_property_ui_text(prop, "Emission", "Add emission contribution");
|
||||
|
||||
prop = RNA_def_property(srna, "use_pass_direct", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "pass_filter", R_BAKE_PASS_FILTER_DIRECT);
|
||||
|
||||
@@ -86,6 +86,66 @@ static blender::bke::bNodeSocketTemplate cmp_node_rlayers_out[] = {
|
||||
};
|
||||
#define NUM_LEGACY_SOCKETS (ARRAY_SIZE(cmp_node_rlayers_out) - 1)
|
||||
|
||||
static const char *cmp_node_legacy_pass_name(const char *name)
|
||||
{
|
||||
if (STREQ(name, "Diffuse Direct")) {
|
||||
return "DiffDir";
|
||||
}
|
||||
if (STREQ(name, "Diffuse Indirect")) {
|
||||
return "DiffInd";
|
||||
}
|
||||
if (STREQ(name, "Diffuse Color")) {
|
||||
return "DiffCol";
|
||||
}
|
||||
if (STREQ(name, "Glossy Direct")) {
|
||||
return "GlossDir";
|
||||
}
|
||||
if (STREQ(name, "Glossy Indirect")) {
|
||||
return "GlossInd";
|
||||
}
|
||||
if (STREQ(name, "Glossy Color")) {
|
||||
return "GlossCol";
|
||||
}
|
||||
if (STREQ(name, "Transmission Direct")) {
|
||||
return "TransDir";
|
||||
}
|
||||
if (STREQ(name, "Transmission Indirect")) {
|
||||
return "TransInd";
|
||||
}
|
||||
if (STREQ(name, "Transmission Color")) {
|
||||
return "TransCol";
|
||||
}
|
||||
if (STREQ(name, "Volume Direct")) {
|
||||
return "VolumeDir";
|
||||
}
|
||||
if (STREQ(name, "Volume Indirect")) {
|
||||
return "VolumeInd";
|
||||
}
|
||||
if (STREQ(name, "Volume Color")) {
|
||||
return "VolumeCol";
|
||||
}
|
||||
if (STREQ(name, "Ambient Occlusion")) {
|
||||
return "AO";
|
||||
}
|
||||
if (STREQ(name, "Environment")) {
|
||||
return "Env";
|
||||
}
|
||||
if (STREQ(name, "Material Index")) {
|
||||
return "IndexMA";
|
||||
}
|
||||
if (STREQ(name, "Object Index")) {
|
||||
return "IndexOB";
|
||||
}
|
||||
if (STREQ(name, "Grease Pencil")) {
|
||||
return "GreasePencil";
|
||||
}
|
||||
if (STREQ(name, "Emission")) {
|
||||
return "Emit";
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static void cmp_node_image_add_pass_output(bNodeTree *ntree,
|
||||
bNode *node,
|
||||
const char *name,
|
||||
@@ -99,6 +159,19 @@ static void cmp_node_image_add_pass_output(bNodeTree *ntree,
|
||||
bNodeSocket *sock = (bNodeSocket *)BLI_findstring(
|
||||
&node->outputs, name, offsetof(bNodeSocket, name));
|
||||
|
||||
/* Rename legacy socket names to new ones. */
|
||||
if (sock == nullptr) {
|
||||
const char *legacy_name = cmp_node_legacy_pass_name(name);
|
||||
if (legacy_name) {
|
||||
sock = (bNodeSocket *)BLI_findstring(
|
||||
&node->outputs, legacy_name, offsetof(bNodeSocket, name));
|
||||
if (sock) {
|
||||
STRNCPY(sock->name, name);
|
||||
STRNCPY(sock->identifier, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Replace if types don't match. */
|
||||
if (sock && sock->type != type) {
|
||||
blender::bke::node_remove_socket(*ntree, *node, *sock);
|
||||
|
||||
@@ -468,12 +468,6 @@ bool RE_passes_have_name(struct RenderLayer *rl);
|
||||
struct RenderPass *RE_pass_find_by_name(struct RenderLayer *rl,
|
||||
const char *name,
|
||||
const char *viewname);
|
||||
/**
|
||||
* Only provided for API compatibility, don't use this in new code!
|
||||
*/
|
||||
struct RenderPass *RE_pass_find_by_type(struct RenderLayer *rl,
|
||||
int passtype,
|
||||
const char *viewname);
|
||||
|
||||
/**
|
||||
* Set the buffer data of the render pass.
|
||||
|
||||
@@ -2916,44 +2916,6 @@ RenderPass *RE_pass_find_by_name(RenderLayer *rl, const char *name, const char *
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
RenderPass *RE_pass_find_by_type(RenderLayer *rl, int passtype, const char *viewname)
|
||||
{
|
||||
#define CHECK_PASS(NAME) \
|
||||
if (passtype == SCE_PASS_##NAME) { \
|
||||
return RE_pass_find_by_name(rl, RE_PASSNAME_##NAME, viewname); \
|
||||
} \
|
||||
((void)0)
|
||||
|
||||
CHECK_PASS(COMBINED);
|
||||
CHECK_PASS(DEPTH);
|
||||
CHECK_PASS(VECTOR);
|
||||
CHECK_PASS(NORMAL);
|
||||
CHECK_PASS(UV);
|
||||
CHECK_PASS(EMIT);
|
||||
CHECK_PASS(SHADOW);
|
||||
CHECK_PASS(AO);
|
||||
CHECK_PASS(ENVIRONMENT);
|
||||
CHECK_PASS(INDEXOB);
|
||||
CHECK_PASS(INDEXMA);
|
||||
CHECK_PASS(MIST);
|
||||
CHECK_PASS(DIFFUSE_DIRECT);
|
||||
CHECK_PASS(DIFFUSE_INDIRECT);
|
||||
CHECK_PASS(DIFFUSE_COLOR);
|
||||
CHECK_PASS(GLOSSY_DIRECT);
|
||||
CHECK_PASS(GLOSSY_INDIRECT);
|
||||
CHECK_PASS(GLOSSY_COLOR);
|
||||
CHECK_PASS(TRANSM_DIRECT);
|
||||
CHECK_PASS(TRANSM_INDIRECT);
|
||||
CHECK_PASS(TRANSM_COLOR);
|
||||
CHECK_PASS(SUBSURFACE_DIRECT);
|
||||
CHECK_PASS(SUBSURFACE_INDIRECT);
|
||||
CHECK_PASS(SUBSURFACE_COLOR);
|
||||
|
||||
#undef CHECK_PASS
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
RenderPass *RE_create_gp_pass(RenderResult *rr, const char *layername, const char *viewname)
|
||||
{
|
||||
RenderLayer *rl = RE_GetRenderLayer(rr, layername);
|
||||
|
||||
Reference in New Issue
Block a user