set cut_paste_input [stack 0]
Group {
inputs 0
name HueSweep17
selected true
xpos 15470
ypos 3747
postage_stamp true
addUserKnob {20 HueSweep}
addUserKnob {26 swatch_label l " " T swatch}
addUserKnob {3 size}
size 1024
addUserKnob {7 ar l aspect R 1 2}
ar 1
addUserKnob {41 rotate T Rotate.rotate}
addUserKnob {7 sat l saturation}
sat 1
addUserKnob {6 enable_hsamples l "h samples" +STARTLINE}
addUserKnob {7 hsamples l "" -STARTLINE R 1 256}
hsamples 128
addUserKnob {6 enable_lsamples l "l samples" +STARTLINE}
addUserKnob {7 lsamples l "" -STARTLINE R 1 256}
lsamples 16
addUserKnob {6 achromatic_row l "achromatic row" +STARTLINE}
achromatic_row true
}
Constant {
inputs 0
format "512 512 0 0 512 512 1 square_512"
name Constant13
xpos 1170
ypos 501
postage_stamp false
}
Reformat {
type "to box"
box_width {{parent.size}}
box_height {{box_width/parent.ar}}
box_fixed true
name Reformat1
xpos 1170
ypos 531
}
Dot {
name Dot1
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos 1204
ypos 594
}
set Nd28b5070 [stack 0]
Dot {
name Dot2
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos 984
ypos 594
}
Expression {
channel0 {rgba.red -rgba.green -rgba.blue none}
expr0 y/height
expr3 y/height
name Chrominance
xpos 950
ypos 621
}
Expression {
expr0 rint(r*samples+0.5001)/samples
expr1 rint(g*samples+0.5001f)/samples
expr2 rint(b*samples+0.5001)/samples
expr3 rint(a*samples+0.5)/samples
name Quantize2
xpos 950
ypos 651
disable {{!parent.enable_hsamples}}
addUserKnob {20 Quantize}
addUserKnob {3 samples}
samples {{parent.hsamples}}
}
Expression {
expr0 (r+shift)%1
name Rotate
xpos 950
ypos 681
addUserKnob {20 User}
addUserKnob {7 rotate R 0 360}
rotate 270
addUserKnob {7 shift}
shift {{radians(rotate)/pi/2}}
}
Dot {
name Dot3
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos 984
ypos 744
}
push $Nd28b5070
Expression {
channel0 {rgba.red -rgba.green -rgba.blue none}
expr0 0
expr1 sat
expr2 x/width
expr3 1
name Luminance
xpos 1170
ypos 621
}
Expression {
expr0 rint(r*samples+0.5)/samples
expr1 rint(g*samples+0.5)/samples
expr2 rint(b*samples+0.5)/samples
expr3 rint(a*samples+0.5)/samples
name Quantize1
xpos 1170
ypos 663
disable {{!parent.enable_lsamples}}
addUserKnob {20 Quantize}
addUserKnob {3 samples}
samples {{parent.lsamples*(input.width/input.height)}}
}
Copy {
inputs 2
from0 rgba.red
to0 rgba.red
name Copy1
xpos 1170
ypos 735
}
set Nd270cc30 [stack 0]
Expression {
expr0 yheight/3&&yheight/3*2?1-(y-height/3*2)/(height/3):0
expr2 yheight/3*2?(y-height/3*2)/(height/3):0
expr3 x/width
name SweepHue
xpos 1280
ypos 801
}
Multiply {
channels rgb
value 0
maskChannelInput rgba.alpha
invert_mask true
name Multiply1
xpos 1280
ypos 831
}
push $Nd270cc30
Expression {
temp_name0 C
temp_expr0 b*g
temp_name1 X
temp_expr1 C*(1-abs((r*6)%2-1))
temp_name2 m
temp_expr2 b-C
expr0 (r<1/6?C:r<2/6?X:r<3/6?0:r<4/6?0:r<5/6?X:C)+m
expr1 (r<1/6?X:r<2/6?C:r<3/6?C:r<4/6?X:r<5/6?0:0)+m
expr2 (r<1/6?0:r<2/6?0:r<3/6?X:r<4/6?C:r<5/6?C:X)+m
name HSV_to_RGB
xpos 1170
ypos 800
}
Crop {
box {0 -1 {width} {height}}
crop false
name Crop2
xpos 1170
ypos 861
disable {{!parent.achromatic_row}}
}
Expression {
expr0 y==-1?x/width:r
expr1 y==-1?x/width:g
expr2 y==-1?x/width:b
name Expression1
label "achromatic row"
xpos 1170
ypos 885
disable {{!parent.achromatic_row}}
}
Crop {
box {0 {-height/hsamples} {width} {height}}
reformat true
crop false
name Crop1
xpos 1170
ypos 921
disable {{!parent.achromatic_row}}
}
Expression {
temp_name0 mx
temp_expr0 max(r,g,b)
temp_name1 pmx
temp_expr1 mx==0?0:pow(mx,p)/mx
expr0 r*pmx
expr1 g*pmx
expr2 b*pmx
name Power
xpos 1170
ypos 981
addUserKnob {20 User}
addUserKnob {7 p R 0 4}
p 1
}
Output {
name Output
xpos 1170
ypos 1070
}
end_group
Group {
name Exposure24
selected true
xpos 15470
ypos 3880
addUserKnob {20 Exposure_tab l Exposure}
addUserKnob {41 channels T Multiply.channels}
addUserKnob {18 exposure R -6 6}
exposure 4
addUserKnob {6 exposure_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {26 ""}
addUserKnob {41 maskChannelMask l mask -STARTLINE T NodeWrapper.maskChannelMask}
addUserKnob {41 invert_mask l invert -STARTLINE T NodeWrapper.invert_mask}
addUserKnob {41 mix T NodeWrapper.mix}
}
Input {
inputs 0
name Inputmask
xpos 70
ypos -70
number 1
}
Input {
inputs 0
name Input
xpos -40
ypos -190
}
set Nc4d5faf0 [stack 0]
Multiply {
channels rgb
value {{"pow(2, parent.exposure)"}}
name Multiply
xpos -40
ypos -130
}
push $Nc4d5faf0
NodeWrapper {
inputs 2+1
channels rgb
invert_mask true
name NodeWrapper
note_font Helvetica
xpos -40
ypos -69
}
Output {
name Output
xpos -40
ypos -40
}
end_group
Dot {
name Dot453
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
selected true
xpos 15504
ypos 4014
}
set Nd27868b0 [stack 0]
Dot {
name Dot454
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
selected true
xpos 15174
ypos 4014
}
set Nd278b860 [stack 0]
Expression {
channel0 {rgba.red rgba.green rgba.blue none}
expr0 sqrt(pow(w.0*r,2)+pow(w.1*g,2)+pow(w.2*b,2))/sum
channel1 none
channel2 none
channel3 none
name WeightedSmoothMax1
selected true
xpos 15140
ypos 4070
addUserKnob {20 Param}
addUserKnob {78 w n 3}
w {1 1 1}
addUserKnob {7 sum t "Normalize so achromatic in=out" R 0 2}
sum {{sqrt(w.0*w.0+w.1*w.1+w.2*w.2)}}
}
Dot {
name Dot455
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
selected true
xpos 15174
ypos 4134
}
set Nd221df20 [stack 0]
Group {
name ToneCompress13
selected true
xpos 15140
ypos 4220
addUserKnob {20 ToneCompress}
addUserKnob {78 gr l grey t "input -> output grey" n 2}
gr {0.18 0.1}
addUserKnob {78 wh l white t "input -> output white" n 2}
wh {35 1}
addUserKnob {7 p l contrast R 0.8 2}
p 1.2
addUserKnob {7 _t l toe R 0 0.05}
_t 0.004
addUserKnob {7 s l scale t "input domain scale" R 0 10}
s {{(gr.0*pow(gr.1,1/p)+gr.0*pow(gr.1,1/(2*p))*sqrt(pow(gr.1,1/p)+4*_t))/(2*gr.0*gr.0)}}
addUserKnob {4 direction M {forward inverse}}
}
Input {
inputs 0
name Input
xpos -40
ypos -70
}
Dot {
name Dot1
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos -6
ypos -6
}
set N2715b220 [stack 0]
Expression {
expr0 r/s
expr1 g/s
expr2 b/s
name InvOutputScale
note_font Helvetica
xpos 70
ypos 51
addUserKnob {20 Params_tab l Params}
addUserKnob {7 s l scale R 0 2}
s {{wh.1}}
}
Expression {
expr0 pow(r,1/p)
expr1 pow(g,1/p)
expr2 pow(b,1/p)
name InvContrast
note_font Helvetica
xpos 70
ypos 81
addUserKnob {20 Params_tab l Params}
addUserKnob {7 p l power R 0.01 2}
p {{parent.p}}
}
Expression {
expr0 rBased on this tonemap function posted by Daniele Siragusano\nhttps://community.acescentral.com/t/output-transform-tone-scale/3498/14\nhttps://en.wikipedia.org/wiki/Michaelis-Menten_kinetics\n\nWith some modifications:\n- Piecewise hyperbolic shoulder compression. Linear where x < g_1\n- Intersection constraint at (g_0, g_1)\n- Intersection constraint at (w_0, w_1)\n- Toe / Flare applied before shoulder compression in scene-linear\n\nhttps://www.desmos.com/calculator/sedu6rhyxn\n\nNote: these nodes could be combined into 1 but I've split them out for readability.\n\n"
note_font Helvetica
note_font_size 14
note_font_color 0xa8a8a8ff
xpos 199
}
end_group
Dot {
name Dot456
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
selected true
xpos 15174
ypos 4314
}
push $Nd221df20
push $Nd27868b0
MergeExpression {
inputs 2
expr0 Ar==0?0:Br/Ar
expr1 Ag==0?0:Bg/Ag
expr2 Ab==0?0:Bb/Ab
name MergeDivideReverse4
selected true
xpos 15470
ypos 4130
}
MergeExpression {
inputs 2
expr0 Ar*Br
expr1 Ar*Bg
expr2 Ar*Bb
name Multiply21
note_font Helvetica
selected true
xpos 15470
ypos 4311
}
Group {
name PlotRGBCube4
selected true
xpos 15470
ypos 4481
addUserKnob {20 PlotRGBCube_tab l PlotRGBCube}
addUserKnob {6 plot_input l "plot input" t "plot input pixels" -STARTLINE}
plot_input true
addUserKnob {6 rgb_cube l "rgb cube" t "enable rgb cube" -STARTLINE}
rgb_cube true
addUserKnob {6 achromatic_up l "achromatic up" t "orient cube such that achromatic axis is up" -STARTLINE}
achromatic_up true
addUserKnob {7 exposure R -8 8}
addUserKnob {26 ""}
addUserKnob {4 view M {top side perspective}}
addUserKnob {22 minus_rot l - T "rot = nuke.thisNode()\['rotate']\nrot.setValue(rot.getValue()-30)" +STARTLINE}
addUserKnob {22 plus_rot l + -STARTLINE T "rot = nuke.thisNode()\['rotate']\nrot.setValue(rot.getValue()+30)"}
addUserKnob {7 x_rot l "persp xrot" t "if view is perspective: rotate x between 0 and -90" R -1 1}
x_rot 0.5
addUserKnob {7 rotate R 0 360}
rotate 180
addUserKnob {6 high_quality l "high quality" t "enable high quality rendering" +STARTLINE}
high_quality true
addUserKnob {7 point_detail l "point detail" t "point detail of the position to points "}
point_detail 1
addUserKnob {41 box_width l width/height T Reformat26.box_width}
addUserKnob {41 box_height l "" -STARTLINE T Reformat26.box_height}
addUserKnob {22 set_viewer_color l "set 3d view black" t "set 3d viewer to have a black background" T "prefs = nuke.toNode('preferences')\ncol = prefs\['viewer_bg_color_3D']\ncol.setValue(0)" +STARTLINE}
}
Axis2 {
inputs 0
display off
selectable false
translate {0 1 0}
rotate {{-parent.x_rot*90} {parent.rotate} 0}
name Axis1
xpos -470
ypos 270
}
Camera2 {
display off
selectable false
translate {0 0 3.5}
name PERSP
xpos -470
ypos 390
}
Axis2 {
inputs 0
display off
selectable false
translate {0 0.8660254038 0}
rotate {0 {parent.rotate} 0}
name Axis2
xpos -360
ypos 270
}
Camera2 {
display off
selectable false
translate {0 0 2}
projection_mode orthographic
focal 14
name ORTHO_SIDE
xpos -360
ypos 390
}
Camera2 {
inputs 0
display off
selectable false
translate {0 6 0}
rotate {-90 {parent.rotate} 0}
projection_mode orthographic
focal 14
name ORTHO_TOP
xpos -250
ypos 390
}
Switch {
inputs 3
which {{parent.view}}
name SwitchView
xpos -260
ypos 501
}
Dot {
name Dot1
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos -226
ypos 534
}
Dot {
name Dot4
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos -6
ypos 534
}
set Nd213b5b0 [stack 0]
Input {
inputs 0
name Input
xpos -150
ypos 50
}
Multiply {
channels rgb
value {{pow(2,e)} {pow(2,e)} {pow(2,e)} 1}
name Exposure
xpos -150
ypos 140
addUserKnob {20 User}
addUserKnob {7 e R -8 8}
e {{parent.exposure}}
}
PositionToPoints2 {
display textured
selectable false
render_mode textured
cast_shadow false
receive_shadow false
P_channel rgb
detail {{parent.point_detail}}
pointSize 1
name PositionToPoints7
xpos -150
ypos 200
disable {{!parent.plot_input}}
}
Dot {
name Dot2
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos -116
ypos 294
}
Group {
inputs 0
name RGBCubeAlt2
xpos 70
ypos 141
disable {{!parent.rgb_cube}}
addUserKnob {20 User}
addUserKnob {6 top_half l "top half" +STARTLINE}
top_half true
addUserKnob {6 posterize -STARTLINE}
posterize true
}
Group {
inputs 0
name HueSweep_4
xpos 1170
ypos 657
hide_input true
postage_stamp true
addUserKnob {20 User}
addUserKnob {6 white +STARTLINE}
addUserKnob {6 black +STARTLINE}
black true
}
Constant {
inputs 0
format "256 256 0 0 256 256 1 square_256"
name Constant15
xpos 1160
ypos 651
postage_stamp false
}
set Nd2176540 [stack 0]
Expression {
expr1 1-x/width
expr2 x/width
name Expression28
label "green/red\n"
xpos 1280
ypos 712
postage_stamp true
}
push $Nd2176540
Expression {
expr0 1-x/width
expr1 x/width
name Expression19
label "green/red\n"
xpos 1160
ypos 712
postage_stamp true
}
push $Nd2176540
Expression {
expr0 x/width
expr2 1-x/width
name Expression21
label "green/red\n"
xpos 1040
ypos 712
postage_stamp true
}
ContactSheet {
inputs 3
width {{width*columns}}
height {{height/pixel_aspect*rows}}
rows 1
columns 3
roworder TopBottom
name ContactSheet3
xpos 1160
ypos 831
}
Shuffle {
alpha white
name Shuffle1
xpos 1160
ypos 861
}
Dot {
name Dot1
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos 1194
ypos 894
}
set Nd21c5c10 [stack 0]
Expression {
expr3 (y/height-0.5)*2
name Expression2
xpos 1040
ypos 951
}
push $Nd21c5c10
Expression {
expr3 1-y/(height/2)
name Expression1
xpos 1040
ypos 891
}
push $Nd21c5c10
Fill {
inputs 1+1
color {0 0 0 1}
name Fill2
xpos 1160
ypos 937
disable {{!parent.black}}
}
Fill {
inputs 1+1
color {1 1 1 1}
name Fill1
xpos 1160
ypos 981
disable {{!parent.white}}
}
Output {
name Output1
xpos 1160
ypos 1070
}
end_group
Group {
name Exposure4
tile_color 0x79a9ffff
xpos 1170
ypos 770
addUserKnob {20 Exposure}
addUserKnob {18 exposure R -8 8}
exposure 4
addUserKnob {6 exposure_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
}
Input {
inputs 0
name Inputmask
xpos 120
ypos -9
number 1
}
Input {
inputs 0
name Input
xpos -40
ypos -81
}
Multiply {
inputs 1+1
channels rgb
value {{"pow(2, parent.exposure)"} {"pow(2, parent.exposure)"} {"pow(2, parent.exposure)"} {"pow(2, parent.exposure)"}}
name _EXPOSURE_
xpos -40
ypos -9
}
Output {
name Output1
xpos -40
ypos 63
}
end_group
Clamp {
channels rgba
name Clamp18
xpos 1170
ypos 801
}
Posterize {
channels rgba
Colors 64
name Posterize1
xpos 1170
ypos 831
disable {{!parent.posterize}}
}
Dot {
name Dot1
note_font "Helvetica Bold"
note_font_size 24
note_font_color 0xff
xpos 1204
ypos 924
}
set Nd20429f0 [stack 0]
Expression {
expr0 1-r
expr1 1-g
expr2 1-b
channel3 none
name Complement1
xpos 1060
ypos 921
}
push $Nd20429f0
ContactSheet {
inputs 2
width {{width*columns}}
height {{height/pixel_aspect*rows}}
rows 2
columns 1
roworder TopBottom
name ContactSheet1
xpos 1170
ypos 951
disable {{!parent.top_half}}
}
Output {
name Output
xpos 1170
ypos 1010
}
end_group
PositionToPoints2 {
display textured
selectable false
render_mode textured
cast_shadow false
receive_shadow false
P_channel rgb
detail 1
pointSize 1
name PositionToPoints8
xpos 70
ypos 200
disable {{!parent.rgb_cube}}
}
Scene {
inputs 2
name Scene3
xpos 80
ypos 270
disable {{!parent.plot_input}}
}
TransformGeo {
rotate {{"-degrees(atan(sqrt(1/2))) "} 0 45}
name OrientAchromatic
xpos 70
ypos 381
disable {{!parent.achromatic_up}}
}
push $Nd213b5b0
Scene {
inputs 2
name Scene4
xpos 80
ypos 510
}
Constant {
inputs 0
format "256 256 0 0 256 256 1 square_256"
name Constant9
xpos 180
ypos 621
postage_stamp false
}
Reformat {
type "to box"
box_width 2048
box_height {{box_width}}
box_fixed true
black_outside true
name Reformat26
xpos 180
ypos 651
}
ScanlineRender {
inputs 3
conservative_shader_sampling false
samples {{parent.high_quality?6:1}}
shutteroffset centred
stochastic_samples {{parent.high_quality?12:1}}
motion_vectors_type distance
name ScanlineRender
xpos 70
ypos 651
}
Output {
name Output
xpos 70
ypos 920
}
end_group
push $Nd278b860
Expression {
channel0 rgb
expr0 sqrt(r*r+g*g+b*b)
channel1 none
channel2 none
channel3 none
name Norm_Euclidean2
note_font Helvetica
selected true
xpos 15030
ypos 4071
}
push $Nd278b860
Expression {
temp_name0 L
temp_expr0 w.0*r+w.1*g+w.2*b
channel0 rgba
expr0 L
channel1 none
channel2 none
channel3 none
name Luminance_Weights14
selected true
xpos 14920
ypos 4070
addUserKnob {20 Param}
addUserKnob {35 weight_presets l "" +STARTLINE M {weights/ACEScg "knobs this \{w \{0.26806405 0.67246455 0.05947147\}\}" weights/Rec.2020 "knobs this \{w \{0.26270026 0.67799819 0.05930173\}\}" weights/P3D65 "knobs this \{w \{0.22897467 0.69173867 0.07928693\}\}" weights/Rec.709 "knobs this \{w \{0.21263911 0.71516877 0.07219233\}\}" "weights/Red WideGamut RGB" "knobs this \{w \{0.28669411 0.84297919 -0.12967324\}\}" "weights/Alexa Wide Gamut" "knobs this \{w \{0.2919538 0.82384098 -0.11579483\}\}" "weights/Sony S-Gamut3.Cine" "knobs this \{w \{0.21507585 0.88506854 -0.10014433\}\}" "weights/Filmlight E-Gamut" "knobs this \{w \{0.28013074 0.82020682 -0.10033739\}\}" "weights/DaVinci Wide Gamut" "knobs this \{w \{0.27411851 0.87363189 -0.14775042\}\}"}}
addUserKnob {78 w l "" t "luminance weighting" -STARTLINE n 3}
w {0.26806405 0.67246455 0.05947147}
}
push $Nd278b860
Expression {
temp_name0 p2
temp_expr0 p-1
temp_name1 num
temp_expr1 sign(r)*pow(w.0*fabs(r),p)+sign(g)*pow(w.1*fabs(g),p)+sign(b)*pow(w.2*fabs(b),p)
temp_name2 den
temp_expr2 sign(r)*pow(w.0*fabs(r),p2)+sign(g)*pow(w.1*fabs(g),p2)+sign(b)*pow(w.2*fabs(b),p2)
channel0 rgb
expr0 m*num/den
channel1 none
channel2 none
channel3 none
name Norm_WeightedPower2
note_font Helvetica
selected true
xpos 14810
ypos 4071
addUserKnob {20 Params}
addUserKnob {35 weight_presets l "" +STARTLINE M {weights/basic "knobs this \{m 1.0 w \{1 1 1\} p 4\}" "weights/doug walker yellow" "knobs this \{m 0.83743219 w \{1.22 1.2 0.58\} p 5\}" weights/warmer "knobs this \{m 0.9 w \{0.8 1 1.2\} p 5\}"}}
addUserKnob {78 w l "" -STARTLINE n 3}
w {1 1 1}
addUserKnob {7 m l mult R 0.5 1}
m 1
addUserKnob {7 p l power R 1 6}
p 2.38
}
push $Nd278b860
Expression {
channel0 rgb
expr0 max(r,g,b)
channel1 none
channel2 none
channel3 none
name Norm_MaxRGB7
note_font Helvetica
selected true
xpos 14700
ypos 4071
}
push $Nd278b860
Expression {
channel0 rgb
expr0 max(r,g,b)*0.5+min(r,g,b)*0.5
channel1 none
channel2 none
channel3 none
name Norm_HalfChrominance
note_font Helvetica
selected true
xpos 14590
ypos 4071
}
|