Add format customization for splitted tech passes codec (default to ZIP)
This commit is contained in:
parent
46d7eeb59c
commit
aa4293c7d7
@ -2,7 +2,7 @@ bl_info = {
|
|||||||
"name": "Render Toolbox",
|
"name": "Render Toolbox",
|
||||||
"description": "Setup outputs and perform cheks for rendering",
|
"description": "Setup outputs and perform cheks for rendering",
|
||||||
"author": "Samuel Bernou",
|
"author": "Samuel Bernou",
|
||||||
"version": (0, 7, 0),
|
"version": (0, 8, 0),
|
||||||
"blender": (4, 0, 0),
|
"blender": (4, 0, 0),
|
||||||
"location": "View3D",
|
"location": "View3D",
|
||||||
"warning": "",
|
"warning": "",
|
||||||
|
25
fn.py
25
fn.py
@ -208,7 +208,7 @@ def create_and_connect_file_output(node, outputs, file_out, out_name, base_path,
|
|||||||
|
|
||||||
|
|
||||||
def connect_to_file_output(node_list, file_out=None, base_path='', excludes=None, remap_names=None,
|
def connect_to_file_output(node_list, file_out=None, base_path='', excludes=None, remap_names=None,
|
||||||
file_format=None, split_tech_passes=False, template=None):
|
file_format=None, split_tech_passes=False, tech_file_format=None, template=None):
|
||||||
"""Connect selected nodes output to file output(s)
|
"""Connect selected nodes output to file output(s)
|
||||||
if a file output is selected, add intputs on it
|
if a file output is selected, add intputs on it
|
||||||
|
|
||||||
@ -248,18 +248,19 @@ def connect_to_file_output(node_list, file_out=None, base_path='', excludes=None
|
|||||||
excludes = excludes or {}
|
excludes = excludes or {}
|
||||||
remap_names = remap_names or {}
|
remap_names = remap_names or {}
|
||||||
|
|
||||||
|
if tech_file_format is None:
|
||||||
|
## Fallback to file format (then customize) is not provided
|
||||||
|
tech_file_format = file_format.copy() if file_format else None
|
||||||
|
if tech_file_format:
|
||||||
|
# Set to EXR if provided is not exr type e.g PNG
|
||||||
|
if tech_file_format.get('file_format') not in ('OPEN_EXR', 'OPEN_EXR_MULTILAYER'):
|
||||||
|
tech_file_format['file_format'] = 'OPEN_EXR'
|
||||||
|
|
||||||
tech_file_format = file_format.copy() if file_format else None
|
## Force 32 bit
|
||||||
|
tech_file_format['color_depth'] = '32'
|
||||||
if tech_file_format:
|
## Enforce a lossless format if provided is not
|
||||||
## TODO: Set to EXR if provioded is not ERX or EXR multilayer ?
|
if (codec := tech_file_format.get('exr_codec')) and codec not in ['ZIP','PIZ','RLE','ZIPS']:
|
||||||
# ->> if tech_file_format.get('file_format')) is not in ('OPEN_EXR', 'OPEN_EXR_MULTILAYER'): ...
|
tech_file_format['exr_codec'] = 'ZIP'
|
||||||
|
|
||||||
## Force 32 bit
|
|
||||||
tech_file_format['color_depth'] = '32'
|
|
||||||
## Enforce a lossless format if provided is not
|
|
||||||
if (codec := tech_file_format.get('exr_codec')) and codec not in ['ZIP','PIZ','RLE','ZIPS']:
|
|
||||||
tech_file_format['exr_codec'] = 'ZIP'
|
|
||||||
|
|
||||||
for node in node_list:
|
for node in node_list:
|
||||||
exclusions = excludes.get(node.name) or []
|
exclusions = excludes.get(node.name) or []
|
||||||
|
@ -226,7 +226,24 @@ class RT_OT_create_output_layers(bpy.types.Operator):
|
|||||||
('DWAB', 'DWAB (lossy)', ''),
|
('DWAB', 'DWAB (lossy)', ''),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
tech_exr_codec : EnumProperty(
|
||||||
|
name='Tech Passes Codec',
|
||||||
|
default='ZIP',
|
||||||
|
description='Codec settings for Techpasses OpenEXR (passes are set to 32bit)',
|
||||||
|
items=(
|
||||||
|
('PIZ', 'PIZ (lossless)', ''),
|
||||||
|
('ZIP', 'ZIP (lossless)', ''),
|
||||||
|
('RLE', 'RLE (lossless)', ''),
|
||||||
|
('ZIPS', 'ZIPS (lossless)', ''),
|
||||||
|
# ('PXR24', 'Pxr24 (lossy)', ''),
|
||||||
|
# ('B44', 'B44 (lossy)', ''),
|
||||||
|
# ('B44A', 'B44A (lossy)', ''),
|
||||||
|
# ('DWAA', 'DWAA (lossy)', ''),
|
||||||
|
# ('DWAB', 'DWAB (lossy)', ''),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
color_depth : EnumProperty(
|
color_depth : EnumProperty(
|
||||||
name='Color Depth',
|
name='Color Depth',
|
||||||
default='16',
|
default='16',
|
||||||
@ -460,13 +477,14 @@ Possible variables:
|
|||||||
row_multi.prop(self, 'template_multilayer_name')
|
row_multi.prop(self, 'template_multilayer_name')
|
||||||
row_multi.active = final_format == 'OPEN_EXR_MULTILAYER'
|
row_multi.active = final_format == 'OPEN_EXR_MULTILAYER'
|
||||||
|
|
||||||
## Todo: Add rt.info_note to explain templates
|
|
||||||
box.row().prop(self, 'name_type', expand=False)
|
box.row().prop(self, 'name_type', expand=False)
|
||||||
col = box.column()
|
col = box.column()
|
||||||
col.prop(self, 'file_format')
|
col.prop(self, 'file_format')
|
||||||
col.prop(self, 'exr_codec')
|
col.prop(self, 'exr_codec')
|
||||||
col.row().prop(self, 'color_depth', expand=True)
|
col.row().prop(self, 'color_depth', expand=True)
|
||||||
col.prop(self, 'split_tech_passes')
|
col.prop(self, 'split_tech_passes')
|
||||||
|
if self.split_tech_passes:
|
||||||
|
col.prop(self, 'tech_exr_codec', text='Tech Passes Codec')
|
||||||
|
|
||||||
search_row = layout.row()
|
search_row = layout.row()
|
||||||
op = search_row.operator("rt.colprop_search_and_replace", icon='BORDERMOVE')
|
op = search_row.operator("rt.colprop_search_and_replace", icon='BORDERMOVE')
|
||||||
@ -573,6 +591,13 @@ Possible variables:
|
|||||||
'exr_codec' : self.exr_codec,
|
'exr_codec' : self.exr_codec,
|
||||||
'color_depth' : self.color_depth,
|
'color_depth' : self.color_depth,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tech_file_format = {
|
||||||
|
## Force the use of OpenEXR for tech passes if normal passes uses PNG or the likes
|
||||||
|
'file_format' : file_ext if file_ext in ('OPEN_EXR_MULTILAYER', 'OPEN_EXR') else 'OPEN_EXR',
|
||||||
|
'exr_codec' : self.tech_exr_codec,
|
||||||
|
'color_depth' : '32',
|
||||||
|
}
|
||||||
|
|
||||||
scn = context.scene
|
scn = context.scene
|
||||||
nodes = scn.node_tree.nodes
|
nodes = scn.node_tree.nodes
|
||||||
@ -591,6 +616,7 @@ Possible variables:
|
|||||||
remap_names=remap_names,
|
remap_names=remap_names,
|
||||||
file_format=file_format,
|
file_format=file_format,
|
||||||
split_tech_passes=self.split_tech_passes,
|
split_tech_passes=self.split_tech_passes,
|
||||||
|
tech_file_format=tech_file_format,
|
||||||
template=self.final_base_path_template)
|
template=self.final_base_path_template)
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user