Yup, that's how I have done my custom tools for years.
I sense a Nukepedia tutorial come up about how to register such a viewer process ;)



On 14/10/12 3:04 PM, Ivan Busquets 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] <mailto:[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]
    <mailto:[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]
        <mailto:[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]
            <mailto:[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] <mailto:[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]
                    <mailto:[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 <tel: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]
                        <mailto:[email protected]>,
                        http://forums.thefoundry.co.uk/
                        >>>>
                        
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
                        >>>
                        >>
                        >>
                        _______________________________________________
                        >> Nuke-users mailing list
                        >> [email protected]
                        <mailto:[email protected]>,
                        http://forums.thefoundry.co.uk/
                        >>
                        
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
                        >
                        > _______________________________________________
                        > Nuke-users mailing list
                        > [email protected]
                        <mailto:[email protected]>,
                        http://forums.thefoundry.co.uk/
                        >
                        
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

                        _______________________________________________
                        Nuke-users mailing list
                        [email protected]
                        <mailto:[email protected]>,
                        http://forums.thefoundry.co.uk/
                        
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users








    _______________________________________________
    Nuke-users mailing list
    [email protected]  
<mailto:[email protected]>,http://forums.thefoundry.co.uk/
    http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users


    _______________________________________________
    Nuke-users mailing list
    [email protected]
    <mailto:[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