123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- set cut_paste_input [stack 0]
- version 7.0 v10
- push $cut_paste_input
- Group {
- name HDR_PREPPER
- label "\[value lightname]"
- selected true
- xpos -196
- ypos -304
- addUserKnob {20 light_ctrls l "Light Controls"}
- addUserKnob {26 hdrPrepTag l INVISIBLE +INVISIBLE T "scoping sucks."}
- addUserKnob {2 root_path l "Output Folder" t "Choose the root path of where to output the exr's."}
- root_path /var/tmp
- addUserKnob {22 setAllFolders l "Set all to this folder" t "Set all other HDRPreppers' output folders in this script to the path from this node." -STARTLINE T "n = nuke.thisNode()\nout = n\['root_path'].value()\nallGroupNodes = nuke.allNodes('Group', group = nuke.root())\n\nfor i in allGroupNodes:\n if i.knob('hdrPrepTag'):\n i\['root_path'].setValue(out) \n"}
- addUserKnob {1 lightname l "Light Name" t "Specify a unique name for this light."}
- lightname light1
- addUserKnob {22 setNameForSel l "Set selected to this name" t "All other HDR_PREPPERs that you select in the nodegraph will have the same light name like this one (numbered consecutively)." -STARTLINE T "n = nuke.thisNode()\nwith nuke.root():\n sel = nuke.selectedNodes()\n\n#increase nummer list by number of HDR Preppers\n num=\[]\n for i in sel:\n if i.knob('hdrPrepTag'):\n num.append(i)\n\n num=len(num)\n\n name = n\['lightname'].getValue()\n base=name\[:-1]\n last=name\[-1]\n\n allGroupNodes = nuke.allNodes('Group', group = nuke.root())\n \n if sel == \[]:\n raise ValueError, 'No Nodes selected. Make sure to select other HDR_PREPPER Nodes.'\n else:\n pass\n\n#Set count to end number if there is one \n if last.isdigit() == True:\n count = int(last)\n else:\n count = 1\n\n#Set count one number higher than original name if its not included in the selection\n if not n in sel:\n count = count + 1\n\n#Set last number to \"1\" on this node if it doesnt have a number at the end\n\n if last.isdigit() == False:\n n\['lightname'].setValue(name + str(1)) \n else:\n pass\n\n while (count < num+1): \n for i in allGroupNodes:\n if i in sel:\n if i.knob('hdrPrepTag'):\n if last.isdigit() == False:\n newname=name + str(count)\n else:\n newname=base + str(count) \n i\['lightname'].setValue(newname) \n count = count + 1\n"}
- addUserKnob {41 Render -STARTLINE T Write1.Render}
- addUserKnob {20 EnvHDRGrp l "Env HDR Output" n 1}
- EnvHDRGrp 0
- addUserKnob {1 hdrname l "HDR Name" t "Specify a name for the environment HDR."}
- hdrname env
- addUserKnob {6 KeepInputFormat l "Keep Input Format" t "If checked the output will have the same format like the incoming format." +STARTLINE}
- addUserKnob {4 setFormat l "| Format" -STARTLINE M {256x128 512x256 1024x512 2048x1024 4096x2048 8192x4096 custom "" "" ""}}
- setFormat 1024x512
- addUserKnob {6 envConvolve l "EnvConvolve (c) Michael Garrett" t "Convolve the output. You must have the EnvConvolve gizmo installed, otherwhise it won't work." +STARTLINE}
- addUserKnob {7 exponent l "| exp" t "Set the environment convolution exponent. 1 represents a diffuse surface. Higher values exponentially increase specularity/glossiness." -STARTLINE R 1 100}
- exponent 40
- addUserKnob {22 createOut l "Create Env Output" T "sel = nuke.thisNode()\nformat = sel\['setFormat'].getValue()\n\nwith nuke.root():\n #create Reformat\n if sel\['KeepInputFormat'].value() == False:\n ref=nuke.nodes.Reformat()\n ref.setInput(0,sel)\n if format == 0:\n try:\n Latlong256\n except:\n Latlong256=nuke.addFormat('256 128 1')\n ref\['format'].setValue(Latlong256)\n \n if format == 1:\n try:\n Latlong512\n except:\n Latlong512=nuke.addFormat('512 256 1')\n ref\['format'].setValue(Latlong512)\n \n if format == 2:\n try:\n Latlong1k\n except:\n Latlong1k=nuke.addFormat('1024 512 1')\n ref\['format'].setValue(Latlong1k)\n \n if format == 3:\n try:\n Latlong2k\n except:\n Latlong2k=nuke.addFormat('2048 1024 1')\n ref\['format'].setValue(Latlong2k)\n \n if format == 4:\n try:\n Latlong4k\n except:\n Latlong4k=nuke.addFormat('4096 2048 1')\n ref\['format'].setValue(Latlong4k)\n \n if format == 5:\n try:\n Latlong8k\n except:\n Latlong8k=nuke.addFormat('8192 4096 1')\n ref\['format'].setValue(Latlong8k)\n\n if format == 6:\n customRes = nuke.getInput('Custom Resolution:', '128x64')\n if not 'x' in customRes:\n raise ValueError, 'Make sure to use a proper format (Width x Height). For example 1024x512'\n\n else:\n reslist = customRes.split('x')\n cRes = str(reslist\[0] + ' ' + reslist\[1] + ' 1')\n LatlongCustom=nuke.addFormat(cRes)\n ref\['format'].setValue(LatlongCustom)\n\n #create EnvConvolve\n if sel\['envConvolve'].value() == True: \n conv=nuke.nodes.EnvConvolve()\n if sel\['KeepInputFormat'].value() == False:\n conv.setInput(0,ref)\n else:\n conv.setInput(0,sel)\n exp=sel\['exponent'].getValue()\n conv\['phexp'].setValue(exp)\n conv\['label'].setValue('exp: \[value phexp]') \n \n\n #create Write Node\n wr=nuke.nodes.Write()\n if sel\['KeepInputFormat'].value() == False:\n if sel\['envConvolve'].value() == False:\n wr.setInput(0,ref)\n else:\n wr.setInput(0,conv)\n else:\n if sel\['envConvolve'].value() == False:\n wr.setInput(0,sel)\n else:\n wr.setInput(0,conv)\n\n wr\['channels'].setValue('rgba')\n outPath=sel\['root_path'].value()\n outName=sel\['hdrname'].value()\n wr\['file'].setValue(outPath + '/' + outName + '.exr')\n wr\['file_type'].setValue('exr')\n wr\['datatype'].setValue('32 bit float')\n" +STARTLINE}
- addUserKnob {20 endGroup_2 l endGroup n -1}
- addUserKnob {26 ""}
- addUserKnob {20 lightremoval l "Light Removal Settings" n 1}
- addUserKnob {41 area1 l Area t "Wrap this box tightly around the light source. This will define the output size of the extracted light." T Crop1.box}
- addUserKnob {41 size l "Edge Smudge" t "Control the amount of edge pixels sucked into the light-crop area. Increase this value if holes appear." T Smudge1.size}
- addUserKnob {14 FilterErode1_size l "Edge Extend" t "Extend the edges around the crop area to clean more of the surrounding pixels" R -100 100}
- FilterErode1_size -10
- addUserKnob {7 edge_blur1 l "Edge Blur" t "Blur the edges of the light-crop area." R 0 100}
- edge_blur1 10
- addUserKnob {6 rough_edge1 l "Rough Edge" t "Break up the edges. Best to be used with higher Edge Blur values." +STARTLINE}
- addUserKnob {7 bring_details1 l Details t "Bring back original Details." R 0 100}
- bring_details1 3.5
- addUserKnob {41 detail_blur1 l "Detail Blur" t "Soften the re-introduced Details." T detailBlur1.size}
- addUserKnob {41 useSingleColor l "Fill with constant color" t "Fill in the light area with a solid color." T Switch1.disable}
- addUserKnob {41 singleColor l Color t "The color to fill the light area with if \"Use constant color\" is checked." T Grade2.black}
- addUserKnob {20 endGroup n -1}
- addUserKnob {26 ""}
- addUserKnob {20 addCtrls l "Additional Controls" n 1}
- addUserKnob {6 output_lightmask l "Output Lights Mask" t "Outputs the masks of the lights into the alpha channel." +STARTLINE}
- output_lightmask true
- addUserKnob {0 Shuffle4_disable t "Wheter to apply the edge extensions and blurs to the mask or not." -STARTLINE +INVISIBLE}
- addUserKnob {20 endGroup_1 l endGroup n -1}
- }
- BackdropNode {
- inputs 0
- name BackdropNode1
- tile_color 0x565656ff
- label details
- note_font_size 42
- xpos -580
- ypos 1059
- bdwidth 428
- bdheight 279
- }
- Input {
- inputs 0
- name Input1
- xpos -3
- ypos 208
- }
- Dot {
- name Dot39
- xpos 31
- ypos 309
- }
- set N7cc55e0 [stack 0]
- Dot {
- name Dot38
- xpos -611
- ypos 309
- }
- Dot {
- name Dot37
- xpos -611
- ypos 2190
- }
- Input {
- inputs 0
- name Mask
- xpos -276
- ypos 692
- number 1
- }
- set N7cd1970 [stack 0]
- push $N7cc55e0
- Shuffle {
- alpha white
- name Shuffle1
- label "\[value in]"
- xpos -3
- ypos 368
- }
- Dot {
- name Dot7
- xpos 31
- ypos 426
- }
- Dot {
- name Dot3
- xpos 31
- ypos 601
- }
- set N7ce6cc0 [stack 0]
- Crop {
- box {250 100 450 300}
- name Crop1
- xpos -123
- ypos 637
- }
- ChannelMerge {
- inputs 2
- operation multiply
- name ChannelMerge2
- xpos -123
- ypos 680
- }
- add_layer {lightmaskOrig lightmaskOrig.red lightmaskOrig.green lightmaskOrig.blue lightmaskOrig.alpha}
- Shuffle {
- red alpha
- green alpha
- blue alpha
- out lightmaskOrig
- name Shuffle3
- label "\[value in]"
- xpos -123
- ypos 730
- }
- FilterErode {
- channels rgba
- size {{parent.FilterErode1_size.w} {parent.FilterErode1_size.h}}
- name FilterErode1
- xpos -123
- ypos 772
- }
- Blur {
- channels rgba
- size {{parent.edge_blur1}}
- name Blur1
- label "\[value size]"
- xpos -123
- ypos 811
- }
- Dot {
- name Dot31
- xpos -89
- ypos 882
- }
- set N7d21ce0 [stack 0]
- Dot {
- name Dot33
- xpos -159
- ypos 882
- }
- set N7d25ef0 [stack 0]
- FilterErode {
- channels rgba
- size -12
- name FilterErode6
- xpos -193
- ypos 924
- }
- push $N7d25ef0
- Dot {
- name Dot32
- xpos -255
- ypos 882
- }
- set N7d33eb0 [stack 0]
- Shuffle {
- red black
- green black
- blue black
- alpha black
- name Shuffle2
- label "\[value in]"
- xpos -289
- ypos 908
- }
- Noise {
- size 10.5
- gain 0.46
- gamma 0.635
- center {1024 778}
- name Noise1
- xpos -289
- ypos 957
- }
- Dot {
- name Dot4
- xpos -255
- ypos 1018
- }
- push $N7d21ce0
- Merge2 {
- inputs 2+1
- operation color-dodge
- name Merge16
- xpos -123
- ypos 1014
- disable {{!parent.rough_edge1}}
- }
- Blur {
- channels rgba
- size 4
- name Blur4
- label "\[value size]"
- xpos -123
- ypos 1061
- disable {{!parent.rough_edge1}}
- }
- Dot {
- name Dot9
- xpos -89
- ypos 1597
- }
- set N7d73970 [stack 0]
- Shuffle {
- in lightmaskOrig
- red alpha
- out alpha
- name Shuffle4
- label "\[value in]"
- xpos -123
- ypos 1677
- disable {{!parent.Shuffle4_disable}}
- }
- Dot {
- name Dot45
- xpos -89
- ypos 2017
- }
- push $N7d73970
- push $N7d33eb0
- Dot {
- name Dot2
- xpos -331
- ypos 882
- }
- push $N7ce6cc0
- Dot {
- name Dot1
- xpos -441
- ypos 601
- }
- Colorspace {
- colorspace_out Cineon
- name Colorspace1
- label "\[value colorspace_in] >> \[value colorspace_out]"
- xpos -475
- ypos 1139
- }
- set N7d91b80 [stack 0]
- push $N7d91b80
- Blur {
- channels rgba
- size {{parent.bring_details1}}
- name details1
- label "\[value size]"
- xpos -570
- ypos 1187
- }
- Merge2 {
- inputs 2
- operation minus
- name Merge1
- xpos -475
- ypos 1233
- }
- Blur {
- channels rgba
- size 4
- name detailBlur1
- label "\[value size]"
- xpos -475
- ypos 1296
- }
- Merge2 {
- inputs 2
- operation mask
- name Merge3
- xpos -365
- ypos 1302
- }
- push $N7d21ce0
- push $N7ce6cc0
- ChannelMerge {
- inputs 2
- operation stencil
- name ChannelMerge1
- xpos -3
- ypos 866
- }
- Premult {
- name Premult1
- xpos -3
- ypos 1057
- }
- Blur {
- channels rgba
- size {65 65}
- name Smudge1
- label "\[value size]"
- xpos -3
- ypos 1083
- }
- Unpremult {
- name Unpremult1
- xpos -3
- ypos 1121
- }
- Merge2 {
- inputs 2
- operation plus
- name Merge2
- xpos -3
- ypos 1302
- }
- Clamp {
- channels rgba
- maximum 10000
- name Clamp2
- xpos -3
- ypos 1328
- }
- push $N7ce6cc0
- Dot {
- name Dot6
- xpos 122
- ypos 601
- }
- set N7e10da0 [stack 0]
- Grade {
- black {0 0 0 0}
- multiply 0
- name Grade2
- xpos 88
- ypos 1335
- }
- Switch {
- inputs 2
- which 1
- name Switch1
- label singlecolor
- xpos -3
- ypos 1407
- }
- Shuffle {
- alpha black
- name Shuffle6
- label "\[value in]"
- xpos -3
- ypos 1445
- }
- Dot {
- name Dot5
- xpos 31
- ypos 1541
- }
- push $N7cc55e0
- Dot {
- name Dot10
- xpos 213
- ypos 309
- }
- Keymix {
- inputs 3
- channels rgba
- name Keymix1
- xpos 179
- ypos 1593
- }
- Grade {
- name clamp_blacks
- xpos 179
- ypos 1894
- }
- ChannelMerge {
- inputs 2
- name ChannelMerge4
- xpos 179
- ypos 2001
- }
- Clamp {
- channels alpha
- name Clamp1
- xpos 179
- ypos 2074
- }
- ShuffleCopy {
- inputs 2
- name ShuffleCopy1
- selected true
- xpos 179
- ypos 2186
- disable {{parent.output_lightmask x1 1}}
- }
- Output {
- name Output1
- xpos 179
- ypos 2625
- }
- push $N7cd1970
- push $N7e10da0
- Dot {
- name Dot8
- xpos 327
- ypos 601
- }
- ChannelMerge {
- inputs 2
- operation multiply
- name ChannelMerge3
- xpos 293
- ypos 680
- }
- Premult {
- name Premult2
- xpos 293
- ypos 730
- }
- Crop {
- box {{Crop1.box} {Crop1.box} {Crop1.box} {Crop1.box}}
- softness {{Crop1.softness}}
- reformat true
- intersect {{Crop1.intersect}}
- crop {{Crop1.crop x1250 0}}
- name Crop1_clone1
- xpos 293
- ypos 756
- icon "\[value Crop1.icon]"
- bookmark {{Crop1.bookmark}}
- }
- Write {
- channels rgba
- file "\[value parent.root_path]/\[value parent.lightname].exr"
- colorspace linear
- raw true
- file_type exr
- datatype "32 bit float"
- version 4
- name Write1
- label "\[value write_modules] \[value wm_layer]"
- xpos 293
- ypos 782
- addUserKnob {20 Modules}
- addUserKnob {4 write_modules l module M {" " Comp_footage Comp_render Weekly "Weekly Resolution"}}
- addUserKnob {1 wm_layer l layer}
- addUserKnob {22 trixter_update_me +INVISIBLE T "try:\n import tx_nuke.write_modules as wm\n wm.update_node(nuke.thisNode())\nexcept: pass" +STARTLINE}
- }
- end_group
|