set cut_paste_input [stack 0] push $cut_paste_input Group { name Tonemap_Siragusano label "Siragusano Complex\nPower Pivoted Toe + Surround" addUserKnob {20 Tonemap} addUserKnob {78 g l grey t "input -> output grey" n 2} g {0.18 0.1} addUserKnob {78 w l white t "input -> output white" n 2} w {16 1} addUserKnob {7 p l contrast R 0.8 2} p 1.2 addUserKnob {7 ps l surround t "surround compensation: un-pivoted power function" R 0.8 1.2} ps 1 addUserKnob {7 t0 l toe R 0 0.1} t0 0.004 addUserKnob {78 s l scale n 2} s {{(g.0*w.0*pow(g.1,1/p)-g.0*w.0*pow(0.5*sqrt(w.1)*sqrt(w.1+4*t0)+w.1/2,1/p))/(g.0*pow(0.5*sqrt(w.1)*sqrt(w.1+4*t0)+w.1/2,1/p)-w.0*pow(g.1,1/p))} {0.5*pow(w.0/(w.0+s.0),-2*p)*(sqrt(w.1)*sqrt(w.1+4*t0)*pow(w.0/(w.0+s.0),p)+w.1*pow(w.0/(w.0+s.0),p))}} addUserKnob {7 p1 R 0 4} p1 {{ps*log(g.1)/log((s.1*s.1*pow(g.0/(g.0+s.0),2*p))/(s.1*pow(g.0/(g.0+s.0),p)+t0))}} addUserKnob {4 direction M {forward inverse}} addUserKnob {26 ""} addUserKnob {26 plot_label l " " T "desmos plot"} } Input { inputs 0 name Input xpos -40 ypos -70 } set Neb8a9b0 [stack 0] Expression { expr0 0.5*(pow(r,1/p1)+sqrt(pow(r,1/p1)*(pow(r,1/p1)+4*t0))) expr1 0.5*(pow(g,1/p1)+sqrt(pow(g,1/p1)*(pow(g,1/p1)+4*t0))) expr2 0.5*(pow(b,1/p1)+sqrt(pow(b,1/p1)*(pow(b,1/p1)+4*t0))) name InvToe xpos 70 ypos 20 } Expression { expr0 (s.0*pow(r/s.1,1/p))/(1-pow(r/s.1,1/p)) expr1 (s.0*pow(g/s.1,1/p))/(1-pow(g/s.1,1/p)) expr2 (s.0*pow(b/s.1,1/p))/(1-pow(b/s.1,1/p)) name InvCompress xpos 70 ypos 50 } push $Neb8a9b0 Expression { expr0 s.1*pow(r/(r+s.0),p) expr1 s.1*pow(g/(g+s.0),p) expr2 s.1*pow(b/(b+s.0),p) name Compress xpos -150 ypos 20 } Expression { expr0 pow((r*r)/(r+t0),p1) expr1 pow((g*g)/(g+t0),p1) expr2 pow((b*b)/(b+t0),p1) name ToeSurround xpos -150 ypos 52 } Switch { inputs 2 which {{parent.direction}} name SwitchDirection xpos -40 ypos 141 } Output { name Output xpos -40 ypos 200 } end_group