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

Reply via email to