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