At a machine now, tested this and with a couple of minor changes works on any 
channel.

I've added it to my viewer-input tool and I'll update to nukepedia soon if 
anyone cares.

It creates a VIEWER_INPUT node, set to normalize, and can be removed through 
the same menu so no floating viewer-inputs left hanging around when your done 
with it. Plus does all the other stuff of the previous version, over, over 18% 
grey, mirror etc.

Close to a one button press, sort of.

As Jonathon points out, it slows things down but there you go, what do you 
expect.


 
Howard



>________________________________
> From: Howard Jones <[email protected]>
>To: Nuke user discussion <[email protected]> 
>Sent: Sunday, 14 October 2012, 11:42
>Subject: Re: [Nuke-users] Normalize Viewer
> 
>
>Also will this formula work Ivan/ Diogo?
>As I can add this too. 
>
>
>Not at a machine to test these yet. 
>
>
>Obviously a proper nuke tool would be great so + 1 for that. 
>
>Howard
>
>On 14 Oct 2012, at 03:04, Ivan Busquets <[email protected]> wrote:
>
>
>I'd also cast my vote for having this built into the viewer, maybe as a 
>dropdown under the cliptest/zebra pattern option, for the sake of convenience. 
>>
>>
>>However, in terms of a more efficient way to do a custom one, there are ways 
>>around having to sample the image (with tcl or python), or having to 
>>pre-analyze, avoiding the notable overhead that goes with it.
>>
>>
>>Taking Diogo's Dilate Min/Max approach, for example, there's no need to 
>>sample the image afterwards, since you can do all the scaling 
>>and offsetting using regular merges.
>>
>>
>>Ex:
>>set cut_paste_input [stack 0]
>>version 6.3 v8
>>push $cut_paste_input
>>Ramp {
>> p0 {0 0}
>> p1 {2048 0}
>> color 1000
>> name Ramp2
>> label "0 to 1000"
>> selected true
>> xpos 1112
>> ypos -322
>>}
>>Group {
>> name Normalize
>> tile_color 0x7aa9ffff
>> selected true
>> xpos 1112
>> ypos -216
>>}
>> Input {
>>  inputs 0
>>  name Input
>>  xpos -450
>>  ypos -312
>> }
>>set N18046380 [stack 0]
>>push $N18046380
>> Dilate {
>>  size {{"-max(input.format.w, input.format.h)"}}
>>  name Dilate2
>>  label Min
>>  xpos -376
>>  ypos -200
>> }
>> CopyBBox {
>>  inputs 2
>>  name CopyBBox2
>>  xpos -376
>>  ypos -76
>> }
>>set N1a498300 [stack 0]
>>push $N18046380
>> Merge2 {
>>  inputs 2
>>  operation from
>>  name Merge4
>>  xpos -450
>>  ypos 59
>> }
>>push $N1a498300
>>push $N18046380
>>push $N18046380
>> Dilate {
>>  size {{"max(input.format.w, input.format.h)"}}
>>  name Dilate1
>>  label Max
>>  xpos -281
>>  ypos -323
>> }
>> CopyBBox {
>>  inputs 2
>>  name CopyBBox1
>>  xpos -281
>>  ypos -173
>> }
>> Merge2 {
>>  inputs 2
>>  operation from
>>  name Merge1
>>  xpos -281
>>  ypos -76
>> }
>> Merge2 {
>>  inputs 2
>>  operation divide
>>  name Merge3
>>  xpos -281
>>  ypos 59
>> }
>> Output {
>>  name Output1
>>  xpos -281
>>  ypos 137
>> }
>>end_group
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>On Sat, Oct 13, 2012 at 6:22 PM, Frank Rueter <[email protected]> wrote:
>>
>>None of those solutions actually produce what we're after though (some of 
>>your solutions seem to invert the input).
>>>
>>>We need something that can compresses the input to a 0-1 range by
    offsetting and scaling based on the image's min and max values (so
    the resulting range is 0-1). You can totally do this with a Grade or
    Expression node and a bit of tcl or python (or the CurveTool if you
    want to pre-compute), but that's not efficient.
>>>
>>>I reckon this should be a feature built into the viewer for
    ease-of-use and speed.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>On 14/10/12 1:04 PM, Marten Blumen wrote:
>>>
>>>and this group does all channels rgba,depth,motion using the expressions. 
>>>should be quite fast as an input process
>>>>
>>>>set cut_paste_input [stack 0]
>>>>version 7.0 v1b74
>>>>push $cut_paste_input
>>>>Group {
>>>> name Normalised_channels
>>>> selected true
>>>> xpos -526
>>>> ypos 270
>>>>}
>>>> Input {
>>>>  inputs 0
>>>>  name Input1
>>>>  xpos -458
>>>>  ypos 189
>>>> }
>>>> Expression {
>>>>  expr0 "mantissa (abs(r))"
>>>>  expr1 "mantissa (abs(g))"
>>>>  expr2 "mantissa (abs(b))"
>>>>  channel3 depth
>>>>  expr3 "mantissa (abs(z))"
>>>>  name Normalized_Technical1
>>>>  tile_color 0xb200ffff
>>>>  label rgbz
>>>>  note_font Helvetica
>>>>  xpos -458
>>>>  ypos 229
>>>> }
>>>> Expression {
>>>>  channel0 alpha
>>>>  expr0 "mantissa (abs(a))"
>>>>  channel1 {forward.u -forward.v -backward.u forward.u}
>>>>  expr1 "mantissa (abs(u))"
>>>>  channel2 {-forward.u forward.v -backward.u forward.v}
>>>>  expr2 "mantissa (abs(v))"
>>>>  channel3 depth
>>>>  name Normalized_Motion1
>>>>  tile_color 0xb200ffff
>>>>  label "a, motion u & v"
>>>>  note_font Helvetica
>>>>  xpos -458
>>>>  ypos 270
>>>> }
>>>> Output {
>>>>  name Output1
>>>>  xpos -458
>>>>  ypos 370
>>>> }
>>>>end_group
>>>>
>>>>
>>>>
>>>>On 14 October 2012 11:29, Marten Blumen <[email protected]> wrote:
>>>>
>>>>And one that looks technical or techni-color! 
>>>>>
>>>>>
>>>>>set cut_paste_input [stack 0]
>>>>>version 7.0 v1b74
>>>>>push $cut_paste_input
>>>>>Expression {
>>>>>
 expr0 "mantissa (abs(r))"
>>>>> expr1 "mantissa (abs(g))"
>>>>> expr2 "mantissa (abs(b))"
>>>>> channel3 depth
>>>>> expr3 "mantissa (abs(z))"
>>>>> name Normalized_Technical
>>>>> tile_color 0xb200ffff 
>>>>>
>>>>> label "Normalized\n"
>>>>> note_font Helvetica
>>>>> selected true
>>>>>
 xpos -286
>>>>> ypos -49 
>>>>>
>>>>>}
>>>>>
>>>>>
>>>>>
>>>>>On 14 October 2012 10:46, Marten Blumen <[email protected]> wrote:
>>>>>
>>>>>This works for rgb & depth. Pop it into the ViewerProcess for normalized 
>>>>>viewing. It seems to work with all values, free polygon cube to anyone who 
>>>>>breaks it ;) 
>>>>>>
>>>>>>Who knows the expression node; can we just apply the
                  formula to all the present channels? 
>>>>>>
>>>>>>
>>>>>>set cut_paste_input [stack 0]
>>>>>>version 7.0 v1b74
>>>>>>push $cut_paste_input
>>>>>>
>>>>>>Expression {
>>>>>> expr0 1/(r+1)/10
>>>>>> expr1 1/(g+1)/10
>>>>>> expr2 1/(b+1)/10
>>>>>>
 channel3 depth
>>>>>> expr3 1/(z+1)/10
>>>>>> name RGBDEPTH
>>>>>> label "Normalized\n"
>>>>>> note_font Helvetica
>>>>>> selected true
>>>>>> xpos -220
>>>>>> ypos 50 
>>>>>>
>>>>>>}
>>>>>>
>>>>>>
>>>>>>
>>>>>>On 14 October 2012 10:24, Marten Blumen <[email protected]> wrote:
>>>>>>
>>>>>>A normalised expression node: 
>>>>>>>
>>>>>>>
>>>>>>>set cut_paste_input [stack 0]
>>>>>>>version 7.0 v1b74
>>>>>>>push $cut_paste_input
>>>>>>>
Expression {
>>>>>>> expr0 1/(r+1)/10
>>>>>>> expr1 1/(g+1)/10
>>>>>>> expr2 1/(b+1)/10
>>>>>>> name Expression6
>>>>>>> label "Normalize Me\n"
>>>>>>> note_font Helvetica
>>>>>>> selected true
>>>>>>> xpos -306
>>>>>>> ypos 83 
>>>>>>>
>>>>>>>}
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>On 14 October 2012 09:33, Marten Blumen <[email protected]> wrote:
>>>>>>>
>>>>>>>+ 1 
>>>>>>>>
>>>>>>>>as a side note, doesn't SoftClip and
                                  Toe nodes do dynamic normalising of
                                  the RGB channels?
>>>>>>>>
>>>>>>>>set cut_paste_input [stack 0]
>>>>>>>>version 7.0 v1b74
>>>>>>>>push $cut_paste_input
>>>>>>>>SoftClip {
>>>>>>>>conversion "logarithmic compress"
>>>>>>>>softclip_min 1
>>>>>>>>name SoftClip2
>>>>>>>>selected true
>>>>>>>>xpos -1876
>>>>>>>>ypos 1428
>>>>>>>>}
>>>>>>>>Toe2 {
>>>>>>>>name Toe2
>>>>>>>>selected true
>>>>>>>>xpos -1876
>>>>>>>>ypos 1461 
>>>>>>>>
>>>>>>>>}
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>On 13 October 2012 23:51, Patrick Heinen 
>>>>>>>><[email protected]> wrote:
>>>>>>>>
>>>>>>>>Yes of course I can use VIEWER_INPUT or a register a viewer process, 
>>>>>>>>but that wouldn't make it dynamic either, well maybe with the MinColor 
>>>>>>>>Node but that one again doesn't work for deep data... And starting to 
>>>>>>>>sample every pixel via python is just horribly slow and you would need 
>>>>>>>>to bake it after that again. Plus again the VIEWER_INPUT doesn't work 
>>>>>>>>for deep data either...
>>>>>>>>>It shouldn't be to complicated
                                          having one button, that
                                          dynamically normalizes what's
                                          shown in the Viewer, just as
                                          you have it in Fusion.
>>>>>>>>>
>>>>>>>>>I sent in a request,
                                          Ticket#2012101310000031
>>>>>>>>>
>>>>>>>>>Regards
>>>>>>>>>Patrick
>>>>>>>>>
>>>>>>>>>Am 13.10.2012 um 11:42 schrieb Johannes Hezer:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> +1
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Am 10/13/12 7:47 AM,
                                              schrieb Frank Rueter:
>>>>>>>>>>> Same. It would
                                              indeed be very helpful.
                                              Has somebody sent in a
                                              request yet?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 13/10/12 6:54
                                              AM, Holger
                                              Hummel|Celluloid VFX
                                              wrote:
>>>>>>>>>>>> yes, you can.
>>>>>>>>>>>> BUT:
>>>>>>>>>>>> - it needs
                                              manual work: you need to
                                              know/find the min/max
                                              values. they change from
                                              pass to pass, actually in
                                              most cases from frame to
                                              frame.
>>>>>>>>>>>> - it's
                                              quicker when you can just
                                              click on button to toggle
                                              this. also because it does
                                              not conflict with some
                                              other VIWER_INPUT that
                                              might be active.
>>>>>>>>>>>>
>>>>>>>>>>>> so +1 from me
                                              making this a feature
                                              request
>>>>>>>>>>>>
>>>>>>>>>>>> - Holger
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> jbidwell
                                              wrote:
>>>>>>>>>>>>> You can
                                              make a grade and group it,
                                              then name it
                                              "VIEWER_INPUT". The viewer
                                              will use that grade in the
                                              viewer whenever the IP
                                              button is active.
>>>>>>>>>>>>>
>>>>>>>>>>>>> - JB
>>>>>>>>>>>>>
                                              
------------------------------------------------------------------------
>>>>>>>>>>>>>
>>>>>>>>>>>>>
                                              
_______________________________________________
>>>>>>>>>>>>>
                                              Nuke-users mailing list
>>>>>>>>>>>>> [email protected], 
>>>>>>>>>>>>> http://forums.thefoundry.co.uk/
>>>>>>>>>>>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
                                              
_______________________________________________
>>>>>>>>>>> Nuke-users
                                              mailing list
>>>>>>>>>>> [email protected], http://forums.thefoundry.co.uk/
>>>>>>>>>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>>>>>>>>>
>>>>>>>>>>
                                              
_______________________________________________
>>>>>>>>>> Nuke-users mailing
                                              list
>>>>>>>>>> [email protected], http://forums.thefoundry.co.uk/
>>>>>>>>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>>>>>>>>
>>>>>>>>>_______________________________________________
>>>>>>>>>Nuke-users mailing list
>>>>>>>>>[email protected], http://forums.thefoundry.co.uk/
>>>>>>>>>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>_______________________________________________
Nuke-users mailing list [email protected], 
http://forums.thefoundry.co.uk/ 
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>>
>>>_______________________________________________
>>>Nuke-users mailing list
>>>[email protected], http://forums.thefoundry.co.uk/
>>>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>>
>>
>_______________________________________________
>>Nuke-users mailing list
>>[email protected], http://forums.thefoundry.co.uk/
>>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>_______________________________________________
>Nuke-users mailing list
>[email protected], http://forums.thefoundry.co.uk/
>http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
>
_______________________________________________
Nuke-users mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

Reply via email to