absolutely!

On 20/07/12 5:53 AM, Jose Fernandez de Castro wrote:
As a side note the problem with both alternate approaches that we showed (which do the same thing) is that the snap 3d function does not take a format argument, and only returns the values for the root format, so the result is only correct for that format. Maybe we should put in a request for the function to take in a format/resolution argument?

On Wed, Jul 18, 2012 at 10:12 PM, Jan Dubberke <[email protected] <mailto:[email protected]>> wrote:

    yeh thanks for that again: it works just fine. it does choke a wee
    bit in the gui every now and then but it totally does what I was
    aiming for.

    I also liked Jose's approach so thanks for that too - very creative!

    I guess I'll just wait for new releases then and hope it gets
    incorporated as a one stop solution? question mark

    cheers everyone




        that's what I did to work around this. Fairly rough and
        untested though:

        CheckerBoard2 {
         inputs 0
         name CheckerBoard1
         selected true
         xpos -148
         ypos -140
        }
        Transform {
         translate {{"\[python -execlocal cam\\ =\\
        nuke.toNode('Camera1')\\naxis\\ =\\
        nuke.toNode('Axis1')\\nwm\\ =\\
        axis\\\['world_matrix'\\].valueAt(nuke.frame())\\nxform\\ =\\
        nuke.math.Vector3(wm\\\[3\\],\\ wm\\\[7\\],\\
        wm\\\[11\\])\\nret\\ =\\
        nukescripts.snap3d.projectPoint(cam,\\ xform).x]"} {"\[python
        -execlocal cam\\ =\\ nuke.toNode('Camera1')\\naxis\\ =\\
        nuke.toNode('Axis1')\\nwm\\ =\\
        axis\\\['world_matrix'\\].valueAt(nuke.frame())\\nxform\\ =\\
        nuke.math.Vector3(wm\\\[3\\],\\ wm\\\[7\\],\\
        wm\\\[11\\])\\nret\\ =\\
        nukescripts.snap3d.projectPoint(cam,\\ xform).y]"}}
         center {1024 778}
         name Transform1
         selected true
         xpos -148
         ypos -68
        }
        Camera2 {
         inputs 0
         name Camera1
         selected true
         xpos -420
         ypos -70
        }
        push $cut_paste_input
        Axis2 {
         rotate {0 -4 0}
         name parentAxis
         selected true
         xpos -366
         ypos -323
        }
        Axis2 {
         translate {-0.392 -0.04399999976 -2.140000105}
         name Axis1
         selected true
         xpos -293
         ypos -238
        }
        Scene {
         name Scene1
         selected true
         xpos -293
         ypos -129
        }
        push 0
        ScanlineRender {
         inputs 3
         output_motion_vectors_type accurate
         name ScanlineRender1
         selected true
         xpos -303
         ypos -16
        }
        Merge2 {
         inputs 2
         name Merge1
         selected true
         xpos -148
         ypos -16
        }







        On 19/07/12 2:37 PM, Jose Fernandez de Castro wrote:

            I'm wondering if anyone has used the snap3d.project points
             successfully to achieve this (I mean, if it's actually
            stable and  usable). For starters it seems like it only
            takes the root format  of the script, but it might be
            possible to cheat it through the  win_scale u v. Anyway,
            just curious, an example setup:

            set cut_paste_input [stack 0]
            version 6.3 v8
            Axis2 {
            inputs 0
            translate {{curve i x1048 -1.396000028 x1088 -0.9840000272
            x1108  -0.1986213923 x1119 0.3740000129} {curve i x1048
            0.5559999943 x1088  0.3759999871 x1102 0.41049599 x1108
            0.4199999869 x1119  -0.5339999795} {curve i x1048 0 x1088
            0 x1108 0 x1119 0}}
            name Axis3
            selected true
            xpos 236
            ypos 21
            }
            push $cut_paste_input
            Camera2 {
            translate {{curve x1104 0} {curve x1080 0.3 x1104 0}
            {curve x1104  7.050000191}}
            rotate {0 5 0}
            focal 13.5
            name Camera3
            selected true
            xpos -25
            ypos 68
            addUserKnob {20 ProjectFrame l "Project Frame"}
            addUserKnob {3 frameproj l "Projection Frame"}
            frameproj 1000
            addUserKnob {6 currFrame l "Set to current frame" +STARTLINE}
            addUserKnob {22 setFrame l "Set Projection Frame" T
             
"\nknoblist=\[]\nknoblistPre=\[\"translate\",\"rotate\",\"pivot\",\"scaling\",\"uniform_scale\",\"skew\",\"focal\",\"haperture\",\"vaperture\",\"far\",\"near\",\"win_scale\",\"win_translate\",\"winroll\",\"focal_point\",\"fstop\"]\nfor
            name in knoblistPre:\n    knoblist.append(name)\n
             knoblist.append(name+\"_r\")\n
             knoblist.append(name+\"_l\")\n    \ntry:\n
             
nuke.thisNode().knob(\"read_from_file\").setValue(False)\nexcept(AttributeError):\n
               pass\nanimation=False\n\nfor i in knoblist:\n
             knob=nuke.thisNode().knob(i)\n    if knob:\n  if
            knob.hasExpression():\n  animation=True\n
             newexpression=knob.toScript().split(\"\{\")\[1].split(\"\}\")\[0]\n
                       if \"(frameproj)\" not in newexpression:\n
             knob.setExpression(\"%s(frameproj)\"%(newexpression))\n
             \n        elif knob.isAnimated():\n            print
            \"this ran\"\n            animation=True\n
             knob.setExpression(\"curve(frameproj)\")\n\n\nif
            nuke.thisNode().knob(\"currFrame\").value():\n
             nuke.thisNode().knob(\"frameproj\").setValue(nuke.frame())\nif
            animation==True:\n
             previouslabel=nuke.thisNode().knob(\"label\").value()\n
             previouslabel=previouslabel.replace(\"\\nProjection
            frame: \[value frameproj]\",\"\")\n
             newlabel=previouslabel+\"\\nProjection frame: \[value
            frameproj]\"\n
             nuke.thisNode().knob(\"label\").setValue(newlabel)\n"
             +STARTLINE}
            addUserKnob {22 unsetFrame l "Unset Projection Frame" T
             
"\nknoblist=\[]\nknoblistPre=\[\"translate\",\"rotate\",\"pivot\",\"scaling\",\"uniform_scale\",\"skew\",\"focal\",\"haperture\",\"vaperture\",\"far\",\"near\",\"win_scale\",\"win_translate\",\"winroll\",\"focal_point\",\"fstop\"]\nfor
            name in knoblistPre:\n    knoblist.append(name)\n
             knoblist.append(name+\"_r\")\n
             knoblist.append(name+\"_l\")\nfor i in knoblist:\n
             knob=nuke.thisNode().knob(i)\n    if knob:\n  if
            knob.hasExpression():\n
             
newexpression=knob.toScript().split(\"\{\")\[1].split(\"\}\")\[0].replace(\"(frameproj)\",\"\")\n
                       if \"curve\" in newexpression:\n
             knob.setExpression(\"curve\")\n            else:\n
             knob.setExpression(newexpression)\n\n\npreviouslabel=
            
nuke.thisNode().knob(\"label\").value()\npreviouslabel=previouslabel.replace(\"\\nProjection
            frame: \[value
            
frameproj]\",\"\")\nnuke.thisNode().knob(\"label\").setValue(previouslabel)\n"
             +STARTLINE}
            }
            set Ne20aad70 [stack 0]
            Scene {
            inputs 2
            name Scene3
            selected true
            xpos 236
            ypos 249
            }
            push $Ne20aad70
            CheckerBoard2 {
            inputs 0
            format "1920 1080 0 0 1920 1080 1 HD"
            name CheckerBoard3
            selected true
            xpos -175
            ypos 10
            }
            Group {
            inputs 2
            name project_point2
            selected true
            xpos -109
            ypos 310
            addUserKnob {20 User}
            addUserKnob {13 point3d}
            point3d {{parent.Axis3.translate.left}
             {parent.Axis3.translate.left} {parent.Axis3.translate.left}}
            addUserKnob {12 point2d}
            point2d {{"\[python -execlocal
             
n=nuke.thisNode()\\nret=nukescripts.snap3d.projectPoint(camera=n.input(1),point=(n\\\[\\\"point3d\\\"\\].value(0),n\\\[\\\"point3d\\\"\\].value(1),n\\\[\\\"point3d\\\"\\].value(2)))\\\[0\\]]"
            x1048 1400} {"\[python -execlocal
            
n=nuke.thisNode()\\nret=nukescripts.snap3d.projectPoint(camera=n.input(1),point=(n\\\[\\\"point3d\\\"\\].value(0),n\\\[\\\"point3d\\\"\\].value(1),n\\\[\\\"point3d\\\"\\].value(2)))\\\[1\\]]"
            x1048  698}}
            }
            Input {
             inputs 0
             name IMAGE
             xpos -50
             ypos -94
            }
            Output {
             name Output1
             xpos -50
             ypos 10
            }
            Input {
             inputs 0
             name CAMERA
             selected true
             xpos 145
             ypos -111
             number 1
            }
            end_group



            _______________________________________________
            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




--
Jose Fernandez de Castro


_______________________________________________
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