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 [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