That is really one brilliant share again Theo..!! You always open a whole new world for explorers. :)
-Sudeepto ________________________________ From: theodor groeneboom [[email protected]] Sent: Friday, October 25, 2013 12:05 PM To: Nuke user discussion Subject: Re: [Nuke-users] Re: For loop in nuke? As promised, for loop'd multidisplace, exponential multiglow and crazy 3d text paths and weirdness : set cut_paste_input [stack 0] version 7.0 v9 push $cut_paste_input Text { message "hello world" font /usr/share/fonts/bitstream-vera/Vera.ttf size 100 yjustify center box {539 303 1617 909} center {1078 606} name Text1 selected true xpos -2327 ypos 1615 } set N9beb840 [stack 0] Group { name Multi_Displace1 tile_color 0xff9a35ff gl_color 0xff9a35ff selected true xpos -2381 ypos 1724 addUserKnob {20 User} addUserKnob {26 ""} addUserKnob {7 Samples l Quality R 16 100} Samples 64 addUserKnob {26 ""} addUserKnob {41 uv_scale l "Distort Amount" T IDistort1.uv_scale} addUserKnob {7 noiseAmount l "Noise Amount" R 0 10} noiseAmount 0.75 addUserKnob {41 size l x/ysize T Noise1.size} addUserKnob {41 octaves T Noise1.octaves} addUserKnob {41 lacunarity T Noise1.lacunarity} addUserKnob {26 about T "multidisplace - [email protected]<mailto:[email protected]>"} } Input { inputs 0 name image xpos -407 ypos -241 } set N9c35470 [stack 0] Shuffle { red black green black blue black alpha black name Shuffle1 xpos -97 ypos -241 } Noise { size 280 zoffset {{(1-for.loop)*noiseAmount i}} octaves 6 lacunarity 1.4 center {1024 436} name Noise1 xpos -97 ypos -215 } set N999d830 [stack 0] Matrix { matrix { {0 -1 0} {0 1 0} {0 0 0} } name Matrix1 xpos -136 ypos -180 } push $N999d830 Matrix { matrix { {0 0 0} {-1 1 0} {0 0 0} } name Matrix2 xpos -42 ypos -180 } ShuffleCopy { inputs 2 green green blue black alpha black name ShuffleCopy2 xpos -90 ypos -112 } Grade { white 1000 black_clamp false name Grade2 xpos -90 ypos -86 } push $N9c35470 NoOp { name for xpos -407 ypos -215 addUserKnob {20 User} addUserKnob {7 loop} loop {{((fmod(frame,int(Samples))*(1/int(Samples)))) i}} } TimeWarp { lookup {{(curve/int(Samples))+1 i C x1 1 x100 100}} length 0 filter nearest name TimeWarp1 selected true xpos -409 ypos -138 } ShuffleCopy { inputs 2 alpha alpha2 black red white green red2 black green2 black out2 motion name ShuffleCopy1 xpos -409 ypos -86 } IDistort { uv motion uv_scale 40.5 name IDistort1 xpos -409 ypos -60 } TimeWarp { lookup {{(curve*int(Samples))-int(Samples) i C x1 1 x100 100}} length {{int(Samples) i}} name TimeWarp2 xpos -409 ypos -22 } Output { name Output1 xpos -409 ypos 48 } ColorLookup { inputs 0 channels rgb lut {master {} red {curve C x-0.02978253365 1.001764059 s-0.05000000075 S x0.5194246769 0.1055036932 s-5.199999809 x0.5621110201 0.0001433771104} green {curve 0.002528071404 x0.500657022 0.6356734037 x1.002269983 0.007531166077} blue {curve x0.5083760023 8.626934141e-05 C x0.5343297124 0.2915867567 s5.199999809 v0.8765239716 S x1.032741547 1.003499985 s-0 u1.144440293} alpha {}} name curve3 xpos -533 ypos -239 addUserKnob {20 User} } end_group push $N9beb840 Group { name MultiGlow tile_color 0xffff00ff gl_color 0xffff00ff selected true xpos -2261 ypos 1724 addUserKnob {20 User} addUserKnob {7 bias R 0 2} bias 27 addUserKnob {7 size R 0 100} size 900 addUserKnob {7 val l Tolerance R 0 10} addUserKnob {3 samples l Samples} samples 25 addUserKnob {41 saturation T Glow1.saturation} addUserKnob {41 brightness T Glow1.brightness} } Input { inputs 0 name Input1 xpos -578 ypos -753 } set N997f650 [stack 0] TimeWarp { lookup {{(curve/samples)+1 C x1 1 x100 100}} length 0 filter nearest name TimeWarp1 xpos -692 ypos -753 } NoOp { name for xpos -692 ypos -727 addUserKnob {20 User} addUserKnob {7 loop} loop {{((fmod(frame,samples)*(1/samples))) i}} } Glow { tolerance {{val x14476 0}} brightness 17 effect_only true size {{(pow(for.loop,parent.bias)*parent.size) x1035 0.6 x10340 0.7}} name Glow1 xpos -692 ypos -699 } TimeWarp { lookup {{(curve*parent.samples)-samples i C x1 1 x100 100}} length {{samples i}} name TimeWarp2 xpos -692 ypos -671 } push $N997f650 Merge2 { inputs 2 operation plus Achannels {rgba.red rgba.green rgba.blue -rgba.alpha} Bchannels {rgba.red rgba.green rgba.blue -rgba.alpha} output {rgba.red rgba.green rgba.blue -rgba.alpha} name Merge2 xpos -578 ypos -671 } Output { name Output1 xpos -578 ypos -618 } end_group Axis2 { inputs 0 translate {0 -0.6 -7} name Axis1 selected true xpos -2020 ypos 1590 } Camera2 { inputs 0 name Camera1 selected true xpos -2112 ypos 1601 } push $N9beb840 Grade { white 100 black_clamp false name Grade1 selected true xpos -2193 ypos 1665 } Group { inputs 3 name MultiSample_Concept tile_color 0xffff00ff gl_color 0xffff00ff selected true xpos -2122 ypos 1721 addUserKnob {20 User} addUserKnob {13 p} p {0 1 0} addUserKnob {13 s} s {3 2.5 1} addUserKnob {13 r} r {485 -50 120} addUserKnob {7 val} val 5 addUserKnob {3 samples l Samples} samples 512 addUserKnob {41 lut l INVISIBLE +INVISIBLE T curve3.lut} addUserKnob {6 reverse +STARTLINE} addUserKnob {7 blurMult l "Blur Mult" R 0 10} addUserKnob {41 lut_1 l "" +STARTLINE T Curves.lut} } Input { inputs 0 name Axis xpos -528 ypos -638 number 2 } Input { inputs 0 name Cam xpos -748 ypos -638 number 1 } Input { inputs 0 name Input1 xpos -638 ypos -718 } TimeWarp { lookup {{(curve/samples)+1 i C x1 1 x100 100}} length 0 filter nearest name TimeWarp1 xpos -638 ypos -690 } NoOp { name for xpos -638 ypos -664 addUserKnob {20 User} addUserKnob {7 loop} loop {{((fmod(frame,samples)*(1/samples))) i}} } Card3D { inputs 3 translate {{for.loop*p.x i} {for.loop*p.y i} {(for.loop*p.z) i}} rotate {{for.loop*r.x i} {for.loop*r.y i} {for.loop*r.z i}} scaling {{for.loop*s.x i} {for.loop*s.y i} {for.loop*s.z i}} name Card3D1 xpos -638 ypos -638 } Blur { size {{Curves.lut.master(1-for.loop)*parent.blurMult i}} name Blur1 xpos -638 ypos -612 } TimeWarp { lookup {{(curve*parent.samples)-samples+1 C x1 1 x100 100}} length {{samples}} name TimeWarp2 xpos -638 ypos -574 } Output { name Output1 xpos -638 ypos -548 } ColorLookup { inputs 0 lut {master {curve L 0 x0.1227279603 0.004726409912 C x0.1864668131 0.9764838815 L x0.2463079989 0.007462739944 x1 0.004726409912} red {curve C x0.02630056813 -0.003482580185 x0.5508669615 0.9569651484 x1 0.007462739944} green {} blue {} alpha {}} name Curves xpos -535 ypos -691 } end_group On 24 October 2013 12:45, theodor groeneboom <[email protected]<mailto:[email protected]>> wrote: You could actually do it with a timewarp node, I've got a "for loop" setup that stretches a frame out to x amount of frames, applies a set of nodes and then re-compresses the timeframe back to where it was. Unfortunately it only supports maxing, plussing and averaging the samples/frames back together. But it works great for doing crazy things like exponential glows, crazy multilevel displacement effects, and 3d text extrusions and effects with card3d. I'll see If I can post the example when Im back in London tomorrow. -theo On 24 October 2013 07:50, Ben Dickson <[email protected]<mailto:[email protected]>> wrote: Sounded like Mark wanted to, for example, have a Blur node set to 5, 10, 20, 30, them average the results.. without having to copy the node a bunch of times There's no built-in way to do this, but.. I wonder if this is doable by having a plugin which contains two inputs: First input is an image. Second input is where you connect some node. The plugin would internally make a bunch of copies of the node connected, then for each of the nodes set a knob to a specific value (maybe like the Wedge node in Houdini). Then when the plugin is rendered, it just merges all the internal nodes together (over/average/min/max/etc) Actually, it would easily prototyped as a Group, with a callback script which sets-up the internal copies plus the merge. On 20/10/13 04:39, Erin Nash wrote: Hi Mark, Although you can accomplish this in python that shouldn't be necessary. It would probably be simpler and more flexible to just use a TCL expression in the nodes values. This way you are not creating generated curves and unnecessarily adding tons of data to your script. For example if your base value was one and you wanted to increase it by .1 per frame over time the following expression would do. .9+ frame/10 You can also use the rand, sin, and cos, functions to add variation. If you needed this to be the same in many nodes you could just drop it in a NoOp and expression link it where needed, or use python to propagate it throughout your script. Best, Erin _______________________________________________ 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 -- ben dickson 2D TD | [email protected]<mailto:[email protected]> rising sun pictures | www.rsp.com.au<http://www.rsp.com.au> _______________________________________________ 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
