>
> it looks like nuke gives a rounding error using that setup (far values are
> .99902 instead of 1.0).  probably negligible but I like 1.0 betta.
>

One small thing about both those UV-map generation methods. Keep in mind
that STMap samples pixels at the center, so you'll need to account for that
half-pixel difference in your expression. Otherwise the resulting map is
going to introduce a bit of unnecessary filtering when you feed it to an
STmap.

An expression like this should give you a 1-to-1 result when you feed it
into an STMap:
----------------------------------------------------
set cut_paste_input [stack 0]
version 6.3 v2
push $cut_paste_input
Expression {
 expr0 (x+0.5)/(width)
 expr1 (y+0.5)/(height)
 name Expression2
 selected true
 xpos -92
 ypos -143
}
----------------------------------------------------

With regards to the original question, though, it's a shame that one doesn't
have access to the concatenated 2d matrix from 2D transform nodes within
expressions. Otherwise you could just multiply your source point by the
concatenated matrix and get its final position. This information is indeed
passed down the tree, but it's not accessible for anything but plugins (that
I know).

You could probably take advantage of the fact that the bbox is transformed
the same way as your image, and you CAN ask for the bbox boundaries using
expressions. So, you could have something with a very small bbox centered
around your point of interest, transform that using the same transforms
you're using for your kites, and then get the center of the transformed
bbox, if that makes sense. It's a bit convoluted, but it might do the trick
for you.

Here's an example:
----------------------------------------------------
set cut_paste_input [stack 0]
version 6.3 v2
push $cut_paste_input
Group {
 name INPUT_POSITION
 selected true
 xpos -883
 ypos -588
 addUserKnob {20 User}
 addUserKnob {12 position}
 position {1053.5 592}
}
 Input {
  inputs 0
  name Input1
  xpos -469
  ypos -265
 }
 Rectangle {
  area {{parent.position.x i x1 962} {parent.position.y i x1 391} {area.x+1
i} {area.y+1 i}}
  name Rectangle1
  selected true
  xpos -469
  ypos -223
 }
 Output {
  name Output1
  xpos -469
  ypos -125
 }
end_group
Transform {
 translate {36 0}
 center {1052 592}
 shutteroffset centred
 name Transform1
 selected true
 xpos -883
 ypos -523
}
set C48d17580 [stack 0]
Transform {
 translate {0 -11}
 rotate -34
 center {1052 592}
 shutteroffset centred
 name Transform2
 selected true
 xpos -883
 ypos -497
}
set C4489ddc0 [stack 0]
Transform {
 scale 1.36
 center {1052 592}
 shutteroffset centred
 name Transform3
 selected true
 xpos -883
 ypos -471
}
set C4d2c2290 [stack 0]
Group {
 name OUT_POSITION
 selected true
 xpos -883
 ypos -409
 addUserKnob {20 User}
 addUserKnob {12 out_position}
 out_position {{"(input.bbox.x + input.bbox.r) / 2"} {"(input.bbox.y +
input.bbox.t) / 2"}}
}
 Input {
  inputs 0
  name Input1
  selected true
  xpos -469
  ypos -265
 }
 Output {
  name Output1
  xpos -469
  ypos -125
 }
end_group
CheckerBoard2 {
 inputs 0
 name CheckerBoard2
 selected true
 xpos -563
 ypos -623
}
clone $C48d17580 {
 xpos -563
 ypos -521
 selected true
}
clone $C4489ddc0 {
 xpos -563
 ypos -495
 selected true
}
clone $C4d2c2290 {
 xpos -563
 ypos -469
 selected true
}
----------------------------------------------------

Cheers,
Ivan






On Tue, Sep 6, 2011 at 6:09 PM, J Bills <jbillsn...@flickfx.com> wrote:

> sure - looks even cleaner than the ramps crap done from memory - actually,
> now that I look at it for some reason it looks like nuke gives a rounding
> error using that setup (far values are .99902 instead of 1.0).  probably
> negligible but I like 1.0 betta.  nice one AK.
>
> so play around with this, joshua -
>
>
> set cut_paste_input [stack 0]
> version 6.2 v4
>
> Constant {
>  inputs 0
>  channels rgb
>  name Constant2
>  selected true
>  xpos 184
>  ypos -174
>
> }
> Expression {
>  expr0 x/(width-1)
>  expr1 y/(height-1)
>  name Expression2
>  selected true
>  xpos 184
>  ypos -71
>
> }
> NoOp {
>  name WARP_GOES_HERE
>  tile_color 0xff00ff
>  selected true
>  xpos 184
>  ypos 11
>
> }
> Shuffle {
>  out motion
>  name Shuffle
>  label "choose motion\nor other output\nchannel"
>  selected true
>  xpos 184
>  ypos 83
>
> }
> push 0
> STMap {
>  inputs 2
>  channels motion
>  name STMap1
>  selected true
>  xpos 307
>  ypos 209
>
> }
>
>
>
>
>
> On Tue, Sep 6, 2011 at 5:23 PM, Anthony Kramer 
> <anthony.kra...@gmail.com>wrote:
>
>> Heres a 1-node UVmap for you:
>>
>> set cut_paste_input [stack 0]
>> version 6.3 v2
>> push $cut_paste_input
>> Expression {
>>  expr0 x/(width-1)
>>  expr1 y/(height-1)
>>  name Expression2
>>  selected true
>>  xpos -480
>>  ypos 2079
>> }
>>
>>
>>
>> On Tue, Sep 6, 2011 at 4:46 PM, J Bills <jbillsn...@flickfx.com> wrote:
>>
>>> sure - that's what he's saying.  think of the uv map as creating a
>>> "blueprint" of your transforms or distortions.
>>>
>>> after you have that blueprint, you can run whatever you want through the
>>> same distortion and repurpose it all day long for whatever you want that
>>> might need it.  so if you need it for some utility use to know where  pixel
>>> 1234x735 is, just UV map those distortions and then put a little paint dot
>>> at 1234x735 and run it through the stmap using that uvmap.  1234x735 will be
>>> magically whisked away to 1414x644 or wherever your transforms take it.
>>>
>>> here's an example for you to plug your xforms into, and then your paint
>>> blob or whatever would go into the stmap:
>>>
>>> set cut_paste_input [stack 0]
>>> version 6.3 v2
>>> Constant {
>>>  inputs 0
>>>  channels rgb
>>>  name Constant2
>>>  selected true
>>>  xpos 2862
>>>  ypos 1292
>>> }
>>> set Ncc0e6650 [stack 0]
>>> Ramp {
>>>  output {rgba.red -rgba.green -rgba.blue -rgba.alpha}
>>>  p0 {{width-width} 100}
>>>  p1 {{width} 100}
>>>  name Ramp3
>>>  selected true
>>>  xpos 2970
>>>  ypos 1387
>>> }
>>> push $Ncc0e6650
>>> Ramp {
>>>  output {-rgba.red rgba.green -rgba.blue -rgba.alpha}
>>>  p0 {100 {height-height}}
>>>  p1 {100 {height}}
>>>  name Ramp4
>>>  selected true
>>>  xpos 2862
>>>  ypos 1384
>>> }
>>> Copy {
>>>  inputs 2
>>>  from0 rgba.red
>>>  to0 rgba.red
>>>  name Copy3
>>>  selected true
>>>  xpos 2862
>>>  ypos 1449
>>> }
>>> NoOp {
>>>  name WARP_GOES_HERE
>>>  tile_color 0xff00ff
>>>  selected true
>>>  xpos 2862
>>>  ypos 1519
>>> }
>>> Shuffle {
>>>  out motion
>>>  name Shuffle
>>>  label "choose output\nchannel"
>>>  selected true
>>>  xpos 2862
>>>  ypos 1565
>>> }
>>> push 0
>>> STMap {
>>>  inputs 2
>>>  uv motion
>>>  name STMap1
>>>  selected true
>>>  xpos 2985
>>>  ypos 1675
>>> }
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Sep 6, 2011 at 3:59 PM, Joshua LaCross <
>>> nuke-users-re...@thefoundry.co.uk> wrote:
>>>
>>>> **
>>>> Thanks Anothony. The kites are already in the scene. I'm trying get the
>>>> positional x and y values after going through all the additional transforms
>>>>
>>>> _______________________________________________
>>>> 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
>>
>
>
> _______________________________________________
> 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

Reply via email to