TouchDesigner _03 Curl Noise

  Рет қаралды 52,821

threedashes

threedashes

Күн бұрын

Boxes swirling with curl noise, geometry instancing and compute shader
TouchDesigner 099 64-Bit Build 2020.20020
Peter Werner - Intro to Curl Noise: petewerner.blogspot.com/2015/0...
cabbibo - glsl-curl-noise: github.com/cabbibo/glsl-curl-...
Inigo Quilez - useful little functions: iquilezles.org/www/articles/fu...
00:00 - Intro
00:17 - About Curl Noise
01:36 - Render Setup
03:24 - Compute Shader
09:10 - Geometry Instancing
10:32 - Position / Velocity
16:22 - Life
19:33 - Orientation
20:05 - Scale
21:56 - Colour
23:29 - Number
23:49 - Outro
Instagram: / threedashes___

Пікірлер: 76
@petewerner5479
@petewerner5479 2 жыл бұрын
Great video man, thanks for the shout out and glad you found the slides useful!
@elekktronaut
@elekktronaut 4 жыл бұрын
Amazing, thanks!
@furek5
@furek5 4 жыл бұрын
Best resource ever watch!!! Pure Gold and so straight forward. Thank You:)
@detailsstudio
@detailsstudio 4 жыл бұрын
Thank you! it's really helpful for understanding how GLSL top works.
@cheetahlion79
@cheetahlion79 3 жыл бұрын
Incredible! Thank you. I’m just learning Touchdesigner over the last few weeks. Tutorials like this are unbelievably helpful. I’ve been learning to use analog video equipment for well over a year, but there are very few tutorials, so it’s mostly experimentation with patching and trial and error.
@v.rtx_void
@v.rtx_void 4 жыл бұрын
thank you so much for all that effort and good documentation :)
@fabriceduhamel1830
@fabriceduhamel1830 4 жыл бұрын
Thanks, great tutorial, I learn a lot with it
@alexandrkrasnovitskii2512
@alexandrkrasnovitskii2512 4 жыл бұрын
Thanks for the wonderful tutorial!
@BaoNguyen-ns6xq
@BaoNguyen-ns6xq 4 жыл бұрын
really good tutorial, glsl is much lighter on gpu, very clear explanations.
@jbach
@jbach 4 жыл бұрын
Interesting how much curl noise resembles flocking behavior. Thanks for sharing.
@dot23X
@dot23X 2 жыл бұрын
yes I was thinking that - I wonder if it's adaptable to do that - presumably the flocking behaviour also has python code so it might just be a matter of cutting and pasting some code - there was a great tute on Boids in TD somewhere... kzfaq.info/get/bejne/nJipgryetM2-dXU.html
@guarranna
@guarranna 4 жыл бұрын
Awesome tutorial, thanks!
@colinchibois4497
@colinchibois4497 4 жыл бұрын
Thanks a lot ! Awesome tutorial
@ganjamangaaiaaai9396
@ganjamangaaiaaai9396 2 жыл бұрын
Wow thank you Master Bruno !!! !!!
@jongo8535
@jongo8535 4 жыл бұрын
Many thanks, cool tut
@jeremietoussaint4085
@jeremietoussaint4085 2 жыл бұрын
Very nice tutorial. Thanks a lot
@perimosh
@perimosh 4 жыл бұрын
Amazing, thanks so much.
@seskamol
@seskamol 4 жыл бұрын
Thanks for useful glsl tricks Man lml.
@mujgan.armagan
@mujgan.armagan 3 жыл бұрын
Thank you so much!
@kuzeybayraktar3255
@kuzeybayraktar3255 2 жыл бұрын
many thanks this is amazing
@aleksey_ris
@aleksey_ris 4 жыл бұрын
Wow! Thank you!
@syskillme9651
@syskillme9651 3 жыл бұрын
존나 천재이십니다 존경합니다.
@simonrouhier
@simonrouhier 4 жыл бұрын
Thank you !!
@sphericalaberration
@sphericalaberration 4 жыл бұрын
thank you! my brain exploded a little :))
@nasserahmad4653
@nasserahmad4653 2 жыл бұрын
That’s great,thank you
@unveil7762
@unveil7762 3 жыл бұрын
Bella bruno!!!
@skinnybreakfast
@skinnybreakfast 3 жыл бұрын
You're amazing :)
@kvelve
@kvelve 4 жыл бұрын
Nice!
@claudeofficial
@claudeofficial 4 жыл бұрын
Thank you so much :)
@jt4030
@jt4030 3 жыл бұрын
Thanks 🙏
@bentheremedia3011
@bentheremedia3011 Жыл бұрын
This is awesome! How would I go about replacing the cubes with an imported 3D object? I was thinking it would be cool to have fish swimming around and I found a cool object online.
@ronolds6505
@ronolds6505 Жыл бұрын
Is there any chance you would be willing to share the file you ended up creating with this tutorial? It would really be helpful in my learning process. Thank you
@berkayposul5280
@berkayposul5280 4 жыл бұрын
thank you
@edeechen2689
@edeechen2689 2 жыл бұрын
Oh thank you soooooo much for such a wonderful tutorial!! :) I've learned a lot from it, but I still have some little questions Is the quantity of the boxes variable? and can there be more than one box emitters? I will be really appreciated to have your reply :)
@sachasafretti3012
@sachasafretti3012 3 жыл бұрын
Hi! i'm looking a way to limit the noise in a box, i was trying with some rgb math but i end up always getting wrong results you maybe got some advices?
@banu6301
@banu6301 Жыл бұрын
Hi, this is really nice. I got to the Life part, but the cubes aren't resetting for me. Do you know what could be wrong? EDIT: I Used 32 bit RGB instead of RGBA
@riccardofrancoloiri6783
@riccardofrancoloiri6783 11 ай бұрын
hey! fantastic tut! do you know a method to point to the center of the geo with my camera? I want to use your tech in a setup ultrawide for 3 projectors and I need the cam point to the center of the geo (e.g. when you home the camera, but constantly), lookAt doesn't work cause it doesn't recognize the center of the curl instanced noise. I need to point to the moving center of it, any suggestions? thank you!
@ronolds6505
@ronolds6505 Жыл бұрын
Also, could you let me know how to add a cursor that attracts the curl noise and that glows red (lights up the background)?
@margaritagovedarska6741
@margaritagovedarska6741 3 жыл бұрын
First of all, thank you so much for this tutorial. Could you recommend ways to make it interactive with a Kinect? I saw your comment about using Optical Flow as an external force in the Vel. parameter in the GLSL shader, but how do you proceed with that? Is there an expression, or just declaring a uniform and then exchanging, per se, the uNoiseFactor? I am a student and I am really interested in the ways you would see this working out. Thanks in advance :) Hugs from Berlin
@threedashes___
@threedashes___ 3 жыл бұрын
Hi Margarita, glad you liked the tutorial. You could perhaps use data from the Kinect to spawn the blocks. You'd need to convert position data into a TOP and then use that instead of iniBuffer. Just an idea. A complete answer would probably require another tutorial... but I hope it is enough to start exploring. Good luck!
@lucasvisionvjbitar
@lucasvisionvjbitar Жыл бұрын
Hi @margaritagovedarska6741, did you reach your goal on making interactive with the kinect? I`m starting to search on how to do that too, did you follow the tips above? do you have another clue on how to do that? big up from brazil !
@soulstice555
@soulstice555 2 жыл бұрын
HI! Sorry but I'm writing with sublime text and when I paste the write glsl on it, it highlights in red the return word. That wont let me the script work. Do you know what it can be? The view syntax is in phyton mode. Thank you!!!
@jaja6932
@jaja6932 4 жыл бұрын
This is so cool tutorial but I am no idea about glsl, how can I learn glsl?
@xiaowujiang8049
@xiaowujiang8049 4 жыл бұрын
awesome!!! 碉堡了
@rkerlenbusch
@rkerlenbusch 2 жыл бұрын
has anyone found a method outside of compute shaders for mac users by chance?
@RusticRaver
@RusticRaver 4 жыл бұрын
great
@sublimazed
@sublimazed Жыл бұрын
when attaching INFO dat - it's saying 'snoise' not found but i copied straight from that website.. what am I doing wrong?
@isaacgarza4041
@isaacgarza4041 4 жыл бұрын
Amazing and deep Thanks! I am an absolute beginer and went thru the whole tutorial step by step. I did acheive alot but my blocks are not flowing. They do move in waves but they are anchored to the center. What could be wrong? Can I send you my file?
@vernellenoel2995
@vernellenoel2995 3 жыл бұрын
were you able to figure this out? I am having a similar problem
@pagsful
@pagsful 3 жыл бұрын
I have the same problem , blocks are rotating on themselves but they don't flow.
@dot23X
@dot23X 2 жыл бұрын
If you didn't figure it out I am guessing either some mistake in the GLSL python code (for example you didn't replace all the snoise with the TD version) or your feedback loop with the position buffer is not connected.
@jchen4338
@jchen4338 3 жыл бұрын
Could I ask why my boxes don’t show cohesion ? Which parameter effects that?
@threedashes___
@threedashes___ 3 жыл бұрын
Hi Jingyi, this is not a real flocking simulation, so there isn't a specific parameter for cohesion. You can play with the values of uNoiseFactor and try to find something that works for you.
@vernellenoel2995
@vernellenoel2995 3 жыл бұрын
Thank you so much for this. I am having an issue. For some reason, when I got to translate (r,g,b), nothing happens. I do not get what you get. It remains the horizontal rectangular block. Might you know why this is?
@threedashes___
@threedashes___ 3 жыл бұрын
Hi Vernelle, I'm not sure. What do you see in the viewer of your posBuffer? Also do you see any shader errors?
@vernellenoel2995
@vernellenoel2995 3 жыл бұрын
@@threedashes___ Hi Bruno. In the posBuffer is just a white rectangle. And the FPS is down to 3.
@threedashes___
@threedashes___ 3 жыл бұрын
@@vernellenoel2995 At 9:10 posBuffer should be the same as select1 and iniBuffer. If it isn't, check if your shader looks like the one at 8:15. Another potential cause is a limitation of your setup, other users have mentioned they can't use compute shaders for some reason.
@durolipons9560
@durolipons9560 Жыл бұрын
All good until I add Uniform float Utime; and add + Utime to the curlnoise and then everything stops. Sublime text is highlighting the return values. Really hope someone can help. I know this is a couple of years old. I haven't got a clue how to fix this.
@enricociacchi94
@enricociacchi94 3 жыл бұрын
Ciao! Tutorial e progetto veramente interessante! Ho solo un piccolo grande problema: come editor del "glsl1_compute" mi esce il blocco note di Win e non la finestra del video !!! Ti prego aiutamiii
@threedashes___
@threedashes___ 3 жыл бұрын
Ciao Enrico, my Italian is enough only for understanding the question, but not for replying. I use Sublime Text as my default text editor, and I've configured it to open GLSL files, that's why you see a different editor in the video.
@johnferry3488
@johnferry3488 2 жыл бұрын
Hello, this is so cool!! and I was following along fine until around 8:23 I get still have an error message after switching inputs to 2. The info DAT is saying this: Compute Shader Compile Results: Compute shader failed to compile with the following errors: ERROR: 0:18: error(#143) Undeclared identifier: nTDComputeOutputs ERROR: 0:18: error(#145) Left of "[" is not of type array, matrix, or vector: nTDComputeOutputs ERROR: 0:18: error(#202) No matching overloaded function found: imageStore ERROR: 0:21: error(#145) Left of "[" is not of type array, matrix, or vector: nTDComputeOutputs ERROR: 0:21: error(#202) No matching overloaded function found: imageStore ERROR: 0:25: error(#143) Undeclared identifier: color ERROR: 0:25: error(#202) No matching overloaded function found: TDOutputSwizzle ERROR: 0:25: error(#202) No matching overloaded function found: imageStore ERROR: error(#273) 8 compilation errors. No code generated Any ideas? very new to touch and GLSL shading!
@eloram979
@eloram979 Жыл бұрын
for pasting/checking for misspellings: uniform float uTime; uniform float uDelta; uniform float uVelDamping; uniform float uLifeDamping; uniform vec4 uNoiseFactor; layout (local_size_x = 8, local_size_y = 8) in; vec3 snoiseVec3( vec3 x ){ float s = TDSimplexNoise(vec3( x )); float s1 = TDSimplexNoise(vec3( x.y - 19.1 , x.z + 33.4 , x.x + 47.2 )); float s2 = TDSimplexNoise(vec3( x.z + 74.2 , x.x - 124.5 , x.y + 99.4 )); vec3 c = vec3( s , s1 , s2 ); return c; } vec3 curlNoise( vec3 p ){ const float e = .1; vec3 dx = vec3( e , 0.0 , 0.0 ); vec3 dy = vec3( 0.0 , e , 0.0 ); vec3 dz = vec3( 0.0 , 0.0 , e ); vec3 p_x0 = snoiseVec3( p - dx ); vec3 p_x1 = snoiseVec3( p + dx ); vec3 p_y0 = snoiseVec3( p - dy ); vec3 p_y1 = snoiseVec3( p + dy ); vec3 p_z0 = snoiseVec3( p - dz ); vec3 p_z1 = snoiseVec3( p + dz ); float x = p_y1.z - p_y0.z - p_z1.y + p_z0.y; float y = p_z1.x - p_z0.x - p_x1.z + p_x0.z; float z = p_x1.y - p_x0.y - p_y1.x + p_y0.x; const float divisor = 1.0 / ( 2.0 * e ); return normalize( vec3( x , y , z ) * divisor ); } float parabola( float x, float k ) { return pow( 4.0*x*(1.0-x), k ); } void main() { vec4 p = texelFetch(sTD2DInputs[0], ivec2(gl_GlobalInvocationID.xy), 0); vec4 v = texelFetch(sTD2DInputs[1], ivec2(gl_GlobalInvocationID.xy), 0); vec4 i = texelFetch(sTD2DInputs[2], ivec2(gl_GlobalInvocationID.xy), 0); vec3 pos = p.rgb; vec3 vel = v.rgb; vec3 ini = i.rgb; //position float life = p.a; life -= uLifeDamping; if (life
@gabrielamelina9709
@gabrielamelina9709 3 жыл бұрын
hi, is it possible to do it without glsl??
@threedashes___
@threedashes___ 3 жыл бұрын
Hi Gabriela, it might be possible, but I think the network would end up very convoluted. In this case a custom shader is probably the clearest way of doing it. Even if TouchDesigner doesn't provide a Curl Noise operator at this point, it is already doing a lot in the background, for example making it quite convenient to change scale and rotation. The part that is left for us to do in GLSL isn't (hopefully) too scary.
@gabrielamelina9709
@gabrielamelina9709 3 жыл бұрын
Bruno Imbrizi thankyou for the info, it’s very helpful. Unfortunately my laptop’s gpu doesn’t support glsl in any kind of way... Hope I’ll find other alternative for my project . Wish me luck 🥳
@verbosemusic
@verbosemusic 3 жыл бұрын
@@gabrielamelina9709 Have you find a workaround for GLSL?
@gabrielamelina9709
@gabrielamelina9709 3 жыл бұрын
@@verbosemusic hello, unfortunately no, I didn’t find any since I’ve changed my project.
@verbosemusic
@verbosemusic 3 жыл бұрын
@@gabrielamelina9709 I see myself borrowing a windows just to achieve this. Thanks for the answer Grabriela!
@gagewinthrop452
@gagewinthrop452 4 жыл бұрын
aww man says that I can't use a compute shader due to my gpu / os :( thanks though nice tutorial ! looks great
@ilar_xyz
@ilar_xyz 3 жыл бұрын
same for me, can anybody explain why?
@darinbasile6754
@darinbasile6754 3 жыл бұрын
on a MAC with an AMD gpu?
@o.g.endless.8254
@o.g.endless.8254 4 жыл бұрын
Thank you now I feel like Jimmy Neutron
TouchDesigner _04 Sliced Type
15:15
threedashes
Рет қаралды 25 М.
Curl noise displacement (Touchdesigner tutorial)
3:44
noones img
Рет қаралды 18 М.
ОСКАР vs БАДАБУМЧИК БОЙ!  УВЕЗЛИ на СКОРОЙ!
13:45
Бадабумчик
Рет қаралды 6 МЛН
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 31 МЛН
DEFINITELY NOT HAPPENING ON MY WATCH! 😒
00:12
Laro Benz
Рет қаралды 58 МЛН
Real time Stable Diffusion in TouchDesigner
8:12
VJ SCHOOL
Рет қаралды 6 М.
Simple tornado with glsl (Touchdesigner tutorial)
10:50
noones img
Рет қаралды 2,9 М.
Star Galaxy Vortex - TouchDesigner Tutorial 005
5:27
reflekkt
Рет қаралды 9 М.
Trace and Blob Tracking Effect with TouchDesigner
18:26
Dean Cheesman
Рет қаралды 6 М.
Animated .fbx into Particles | TouchDesigner Tutorial
10:48
anya maryina
Рет қаралды 1,7 М.
Realtime White Visuals - TouchDesigner Tutorial (Beginner Friendly!)
5:42
The Beauty of Code: Flow Fields
7:17
Chris Courses
Рет қаралды 145 М.
ОСКАР vs БАДАБУМЧИК БОЙ!  УВЕЗЛИ на СКОРОЙ!
13:45
Бадабумчик
Рет қаралды 6 МЛН