Skip to content

Commit

Permalink
Lightgroup components and extra outputs
Browse files Browse the repository at this point in the history
  • Loading branch information
ezequielmastrasso committed Nov 24, 2021
1 parent 7030471 commit a353352
Showing 1 changed file with 100 additions and 35 deletions.
135 changes: 100 additions & 35 deletions startup/gui/outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,63 +13,128 @@
# If Arnold isn't available for any reason, this will fail
# and we won't add any unnecessary output definitions.
import GafferArnold

for lightgroup in [
'lightgroup_a',
'lightgroup_a_denoise',
'lightgroup_b',
'lightgroup_b_denoise',
'lightgroup_c',
'lightgroup_c_denoise',
'lightgroup_d',
'lightgroup_d_denoise',
'lightgroup_e',
'lightgroup_e_denoise',
'lightgroup_f',
'lightgroup_f_denoise',
'lightgroup_g',
'lightgroup_g_denoise',
'lightgroup_h',
'lightgroup_h_denoise',
'lightgroup_i',
'lightgroup_i_denoise'
]:
label = lightgroup.replace( "_", " " ).title().replace( " ", "_" )

lightgroup_letter = lightgroup.replace("_denoise","").split("_")[1]
data="C.*[<L.'%s'>V]" %(lightgroup_letter)

interactive_plugs = {
interactive_plugs = {
"driverType" : "ClientDisplayDriver",
"displayHost" : "localhost",
"displayPort" : "${image:catalogue:port}",
"remoteDisplayType" : "GafferImage::GafferDisplayDriver",
"filter" : "box"
}
batch_plugs = {
}
batch_plugs = {
}

lightgroup_list = [
'lightgroup_a',
'lightgroup_b',
'lightgroup_c',
'lightgroup_d',
'lightgroup_e',
'lightgroup_f',
'lightgroup_g',
'lightgroup_h',
'lightgroup_i',
'lightgroup_j',
'lightgroup_k']
#'lightgroup_l',
#'lightgroup_m',
#'lightgroup_n',
#'lightgroup_o',
#'lightgroup_p',
#'lightgroup_q',
#'lightgroup_r'
#'lightgroup_s',
#'lightgroup_t',
#'lightgroup_v',
#'lightgroup_w',
#'lightgroup_x',
#'lightgroup_y',
#'lightgroup_z']"""

lightgroup_components = {
"specular_direct":"lpe C<RS><L.'lightgroup'>",
"specular_indirect":"lpe C<RS>[DSVOB].*<L.'lightgroup'>",
"diffuse_direct":"lpe C<RD><L.'lightgroup'>",
"diffuse_indirect":"lpe C<RD>[DSVOB].*<L.'lightgroup'>",
"sss":"lpe C<TD>.*<L.'lightgroup'>",
"volume":"lpe CV.*<L.'lightgroup'>"
}

if "denoise" in lightgroup:
interactive_plugs['filter'] = 'denoise_optix'
batch_plugs['filter'] = 'denoise_optix'
for lightgroup in lightgroup_list:
label = lightgroup.replace( "_", " " ).title().replace( " ", "_" )

lightgroup_letter = lightgroup.split("_")[1]

# Main Lightgroups OUTPUT
GafferScene.Outputs.registerOutput(
"Interactive/Arnold/" + label,
IECoreScene.Output(
lightgroup,
"ieDisplay",
"lpe " + data,
"lpe " + "C.*[<L.'%s'>V]" %(lightgroup_letter),
interactive_plugs
)
)

GafferScene.Outputs.registerOutput(
"Batch/Arnold/" + label,
IECoreScene.Output(
"${project:rootDirectory}/renders/${script:name}/%s/%s.####.exr" % ( lightgroup, lightgroup ),
"exr",
"lpe " + data,
"lpe " + "C.*[<L.'%s'>V]" %(lightgroup_letter),
batch_plugs
)
)
# Lightgroups Components Outputs
for component in lightgroup_components.keys():
component_label = label + "_" + component
component_name = lightgroup + "_" + component
data = lightgroup_components[component].replace("lightgroup", lightgroup_letter)
GafferScene.Outputs.registerOutput(
"Interactive/Arnold/" + component_label,
IECoreScene.Output(
component_name,
"ieDisplay",
data,
interactive_plugs
)
)
GafferScene.Outputs.registerOutput(
"Batch/Arnold/" + component_label,
IECoreScene.Output(
"${project:rootDirectory}/renders/${script:name}/%s/%s.####.exr" % ( component_name, component_name ),
"exr",
data,
batch_plugs
)
)

# Other custom outputs
custom_outputs = {
"denoise_albedo":"denoise_albedo",
"emission_indirect":"lpe C.O",
"Pref":"Pref vector",
"raycount":"raycount float",
"nlights":"color nlights",
"cputime":"cputime float"
}

for output in custom_outputs.keys():
label = output.replace( "_", " " ).title().replace( " ", "_" )

GafferScene.Outputs.registerOutput(
"Interactive/Arnold/" + label,
IECoreScene.Output(
output,
"ieDisplay",
custom_outputs[output],
interactive_plugs
)
)
GafferScene.Outputs.registerOutput(
"Batch/Arnold/" + label,
IECoreScene.Output(
"${project:rootDirectory}/renders/${script:name}/%s/%s.####.exr" % ( output, output ),
"exr",
custom_outputs[output],
batch_plugs
)
)

0 comments on commit a353352

Please sign in to comment.