Yes we ship it in the NDK examples: Documentation/NDK/examples/Grade.cpp (Mac, Nuke 8.0v6)
On 10 January 2015 at 16:15, theodor groeneboom <plateryt...@gmail.com> wrote: > I believe you can check the source for the grade node in the NDK. > > On 10 January 2015 at 15:55, Mads Lund <madshl...@gmail.com> wrote: > >> Thanks alot, i can see that now. I guess it was a bit too inconvenient to >> show the full equation in the node's help info. >> >> On Sat, Jan 10, 2015 at 4:38 PM, Joe Laude <loudn...@gmail.com> wrote: >> >>> Well I learned something new today, because I didn't actually know that >>> the grade node did this. The grade node is not telling the whole truth >>> about the expression in its info. >>> >>> I laid out pretty much the same thing (I don't have access to Nuke 8, so >>> I set up virtually the same thing as yours but using an expression node), >>> and I discovered that the Grade node doesn't do a straight pow() function >>> for the gamma above 1 or below 0. It does what you'd expect from 0 to 1, >>> but above 1, it's not a power curve, but a flat line, with the slope of >>> whatever the gamma exponent is. >>> >>> Below is what I was playing with in nuke. It has the expression node >>> which does the same as your blinkscript did, and the grade node you had, as >>> well as an expression node that visualizes the color curve (just view it, >>> you'll see what I mean. View the "GammaCurve" node, and then connect that >>> to the other nodes to see what's going on), and finally an expression node >>> that includes the corrected expression, which uses different expressions >>> for above 1 and below 0. >>> >>> set cut_paste_input [stack 0] >>> version 7.0 v9 >>> push $cut_paste_input >>> Ramp { >>> p0 {0 0} >>> p1 {2048 0} >>> color {100 100 100 1} >>> name Ramp2 >>> selected true >>> xpos -73 >>> ypos -78 >>> } >>> Grade { >>> blackpoint 0.25 >>> black_clamp false >>> name Grade2 >>> selected true >>> xpos -73 >>> ypos -40 >>> } >>> set N3b094970 [stack 0] >>> Expression { >>> temp_name0 A >>> temp_expr0 >>> Grade6.multiply*(Grade6.white-Grade6.black)/(Grade6.whitepoint-Grade6.blackpoint) >>> temp_name1 B >>> temp_expr1 Grade6.add+Grade6.lift-A*Grade6.blackpoint >>> temp_name2 exp >>> temp_expr2 1/Grade6.gamma >>> expr0 r<0?A*r+B:r>1?(r-1)*exp+1:pow(A*r+B,exp) >>> expr1 r<0?A*r+B:r>1?(r-1)*exp+1:pow(A*r+B,exp) >>> expr2 r<0?A*r+B:r>1?(r-1)*exp+1:pow(A*r+B,exp) >>> name CorrectedGradeExpression >>> selected true >>> xpos 152 >>> ypos 24 >>> } >>> push $N3b094970 >>> Expression { >>> temp_name0 A >>> temp_expr0 >>> Grade6.multiply*(Grade6.white-Grade6.black)/(Grade6.whitepoint-Grade6.blackpoint) >>> temp_name1 B >>> temp_expr1 Grade6.add+Grade6.lift-A*Grade6.blackpoint >>> temp_name2 exp >>> temp_expr2 1/Grade6.gamma >>> expr0 pow(A*r+B,exp) >>> expr1 pow(A*g+B,exp) >>> expr2 pow(A*b+B,exp) >>> name UncorrectedGradeExpression >>> selected true >>> xpos 20 >>> ypos 23 >>> } >>> set N3b115410 [stack 0] >>> Expression { >>> expr0 floor(r*20)==y-20?1:0 >>> expr1 floor(g*20)==y-20?1:0 >>> expr2 floor(b*20)==y-20?1:0 >>> name GammaCurve >>> label "Illustrates gamma curve" >>> selected true >>> xpos 90 >>> ypos 153 >>> } >>> push $N3b115410 >>> push $N3b094970 >>> Grade { >>> gamma 2.3 >>> black_clamp false >>> name Grade6 >>> selected true >>> xpos -202 >>> ypos 22 >>> } >>> Difference { >>> inputs 2 >>> output rgba.red >>> name Difference1 >>> selected true >>> xpos -101 >>> ypos 166 >>> } >>> >>> >>> On Sat, Jan 10, 2015 at 6:04 AM, Mads Lund <madshl...@gmail.com> wrote: >>> >>>> Hey Guys. >>>> >>>> I find it super convenient that some of the node actually explains how >>>> they operate, so that you can re-create them in your expressions and blink >>>> scripts. >>>> However the equation descriped in the Gradenode does not match the >>>> actuall output of the node >>>> >>>> A = multiply*(gain-lift)/(whitepoint-blackpoint) >>>> >>>> B = offset + lift - A*blackpoint >>>> >>>> output = pow(A*input+B,1/gamma) >>>> >>>> >>>> Here is a little comparison: >>>> >>>> >>>> >>>> set cut_paste_input [stack 0] >>>> >>>> version 8.0 v4 >>>> >>>> push $cut_paste_input >>>> >>>> Ramp { >>>> >>>> p0 {0 408} >>>> >>>> p1 {1924 426} >>>> >>>> color 10000 >>>> >>>> name Ramp2 >>>> >>>> selected true >>>> >>>> xpos -2 >>>> >>>> ypos 379 >>>> >>>> } >>>> >>>> set Ne890edf0 [stack 0] >>>> >>>> BlinkScript { >>>> >>>> ProgramGroup 1 >>>> >>>> KernelDescription "1 \"Grade\" iterate componentWise >>>> 3aed9d965918ead671ab9383439b4816a7772727775caa4b995181fa06c4c03e 2 \"src\" >>>> Read Point \"dst\" Write Point 0" >>>> >>>> kernelSource "kernel Grade : >>>> ImageComputationKernel<eComponentWise>\n\{\n Image<eRead, eAccessPoint, >>>> eEdgeClamped> src;\n Image<eWrite> dst;\n void process() \{\n float4 >>>> Colors = src();\n float input = Colors.x;\n float blackpoint = >>>> 0.0f;\n float whitepoint = 1.0f;\n float lift = 0.0f;\n float gain >>>> = 0.01f;\n float multiply = 1.0f;\n float offset = 0.0f;\n float >>>> gamma = 2.0f;\n float A = >>>> multiply*(gain-lift)/(whitepoint-blackpoint);\n float B = offset + lift >>>> - A*blackpoint;\n float output = pow(A*input+B,1/gamma);\n dst() = >>>> output;\n \}\n\};" >>>> >>>> rebuild "" >>>> >>>> name BlinkScript1 >>>> >>>> selected true >>>> >>>> xpos -86 >>>> >>>> ypos 423 >>>> >>>> } >>>> >>>> push $Ne890edf0 >>>> >>>> Grade { >>>> >>>> white 0.01 >>>> >>>> gamma 2 >>>> >>>> black_clamp false >>>> >>>> enable_mix_luminance false >>>> >>>> name Grade6 >>>> >>>> selected true >>>> >>>> xpos 78 >>>> >>>> ypos 431 >>>> >>>> } >>>> >>>> Difference { >>>> >>>> inputs 2 >>>> >>>> output rgba.red >>>> >>>> name Difference1 >>>> >>>> selected true >>>> >>>> xpos -12 >>>> >>>> ypos 494 >>>> >>>> } >>>> >>>> >>>> >>>> Am i missing something, and or do you guys know what is missing? >>>> >>>> >>>> _______________________________________________ >>>> Nuke-users mailing list >>>> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ >>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users >>>> >>> >>> >>> >>> -- >>> Joe Laude >>> >>> _______________________________________________ >>> Nuke-users mailing list >>> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users >>> >> >> >> _______________________________________________ >> Nuke-users mailing list >> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users >> > > > _______________________________________________ > Nuke-users mailing list > Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users > -- Frank Harrison Senior Nuke Software Engineer The Foundry Tel: +44 (0)20 7968 6828 - Fax: +44 (0)20 7930 8906 Web: www.thefoundry.co.uk Email: frank.harri...@thefoundry.co.uk
_______________________________________________ Nuke-users mailing list Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users