Im amazed of how much I learnt with this tutorial. Love the way you explain things.
@peterclaes59185 жыл бұрын
That’s great to hear! I’m happy that you are learning a bunch!
@yehonataniiii Жыл бұрын
Thank you for teaching us the hidden ways of houdini! You are a great teacher!
@arnaudgiretphoto5 жыл бұрын
Mapping space over time... that is just amazing. When i saw this happening i had like a bug to conceptualise it, and it is amazing ! Really super structured well temporised and explained and straight to cam > it's unique. Keep on, that's so cool /
@peterclaes59185 жыл бұрын
Glad you liked it. At the end of the day it is ‘just data’ and we apply our concepts of space, time, color, normals,... to interpret that data in different ways. Another fun one to try is to rotate a color in the same way you would rotate a normal.
@jaaypeso4 жыл бұрын
I just stumbled onto your page and I loved this tutorial and your clear teaching style which is great for an intermediate user like me. I learned a ton and subscribed. Please keep teaching as I will watch your other videos as well.
@pixelfound5 жыл бұрын
I always wondered about creating this effect on a mesh! Tried using UV, point groups, attribute painting and what not! THANK YOU SO MUCH FOR SHARING! AS A BEGINNER I LEARNT A LOT!
@peterclaes59185 жыл бұрын
Great to hear that! Good luck on your journey!
@pixelfound5 жыл бұрын
@@peterclaes5918 Thank You so much!
@milad_savar5 жыл бұрын
super excited u come in the KZbin Roll , please Keep up , you knowledge is so Strong , thx
@peterclaes59185 жыл бұрын
Thanks & that’s great to hear. The next one will be online in a few days :). I’m trying for one per week at the moment. Laying down some foundational knowledge first.
@g_rant_5 жыл бұрын
Another really great one. So much information and so good. Please keep them coming, they are great and presented really well!!
@peterclaes59185 жыл бұрын
Glad you like them! Next one will be released in the coming days!
@cmolfino3 жыл бұрын
Great tip Peter! thanks for sharing. You mentioned how to calculate cost over not-connected geo... is that possible?
@andreyluccahannes53772 жыл бұрын
This tutorial is awesome! Such a great learning experience because it teaches a concept which you can apply to so much things and not just a particular effect. I would love to see some new tutorials ;) Thanks for teaching
@MyLanista4 жыл бұрын
Great tutorial! I was wondering if there is a way to make this work on an animated mesh. It seemed the mask was flickering which makes sense when the mesh is deforming the path is changing I guess?
@peterclaes59184 жыл бұрын
There is a way to do this if you have a stable point count. Use a time shift on the incoming animating geometry, set the frame to 1. This frame will become your ‘rest pose’. Then calculate the cost attribute with the shortest path on this rest frame. Then use an attribute copy, to copy the ‘cost’ attribute from the rest geometry onto the animating geometry. Then use your displacement deformer that is driven by the cost attribute on the animating geometry. Hope that makes sense! If you don’t have a stable point count, then it gets harder. You could create helper proxy geometry and compute cost on that. For example, you could wrap a sphere around the high res geo that you want, ray the sphere on the high res and try to make it ‘stick’ to the animating underlying geo. Eventually you can then perform an attribute transfer to transfer the cost attribute from the proxy onto the deforming high rez.
@cgchameleon75672 жыл бұрын
Such a legendary teacher! Thank you very much.
@Dominic-du4ow5 жыл бұрын
Thank you for sharing this. It's very well explained, great advice and very useful as a learning process. Looking forward to more videos like this one.
@peterclaes59185 жыл бұрын
I’m building a series of fundamental tools first and then I’ll probably cover combinations of setups for more advanced Fx.
@xrossfader2 жыл бұрын
You make it so accessible. Thank you.
@utubeparpankaj3 жыл бұрын
Highly knowledgeable stuff man.Pls create more Tutorials .:).Cheers...:)
@travislrogers3 жыл бұрын
Really great tutorial! Well explained. Thanks for this!
@blainklitzke63934 жыл бұрын
Thank you for the share! Very helpful to have this walk through.
@blainklitzke63934 жыл бұрын
Would love to hear more about arrays of cost and their usage. Thanks again, really great to find this information posted on the web in such an articulate manner. cheers!!!
@4rysc5 жыл бұрын
Really great videos. Super at explaining and pleasant to listen to
@peterclaes59185 жыл бұрын
Thank you & enjoy learning!
@electrich15 жыл бұрын
Insane tuts bro, thanks!! Hope u make one about cross product or other math topics, i watch ur dot product explanation and is amazing how ur examples are so clear, amazing work man
@peterclaes59185 жыл бұрын
Hi Richard, it took a while, but I just published one on the cross product here: The Cross product: Theory (1/3) kzbin.info/www/bejne/h4jHk4V-ismSnck
@andremonteiro14344 жыл бұрын
Thanks a lot Peter, truly it is a pleasure to learn with you. I am wondering how you can loop or create a cycle animation with this effect? I tried the solver sop to make the Cd attribute loop but no luck. Anyway, thanks a lot and keep it up.
@peterclaes59184 жыл бұрын
You would be using a modulo on your frame value. Eg: frame % 100 will return values that loop between 0->99
@HyukLee-o6v4 жыл бұрын
so nice!! learned a lot. Thank u
@ilirbeqiri Жыл бұрын
4 years too late, but thank you for explaining it in a way that makes sense.
@vinesun46995 жыл бұрын
Great tutorial ! Thanks
@peterclaes59185 жыл бұрын
Glad you liked it!
@aboldmule2 жыл бұрын
Amazing content, thanks for sharing.
@Nitram-xw9ei3 жыл бұрын
Subbed! Great stuff. I'd love to try my hand at making this in VEX but that may take some time as I'm still a beginner! It's great to have the VOPs explanation in order to try and think through what the coding process would be. EDIT: I managed to create the workflow in VEX, just up to the main mask part. I kept it in three separate Attribute Wrangle nodes in order to keep it consistent with the video. I'll look into resistance part once I have more knowledge of using noise in VEX. Just in general, though, this is an amazing way to create animated masks and particle emitters and a million other things. Thanks once again. Cost_Normalized // Bring in the two attributes that were created in the nodes above. The cost and the cost_max. float c = f@cost; float cm = f@cost_max; // Normalize the cost by remapping it and the cost_max between 0 and 1 c = fit(c, 0, cm, 0, 1); // Create a colour ramp using the normalized cost for visualisation purposes @Cd = chramp("colour_vis", c); // Create and promote and attribute called cost_n to be used later. f@cost_n = c; Cost_Absolute_Deform // Create our min and max variables float min = chf("min"); float max = chf("max"); // Bring in the normalized cost we just created. float cost_n = f@cost_n; // Refit the normalized cost to the range we set. float cost_absolute = fit(cost_n, 0, 1, min, max); // Create and promote and attribute called cost_absolute to be used later. f@cost_absolute = cost_absolute; Deform // Create our attributes float dur = chi("duration"); float t = @Frame * chf("time_multiplier"); float ca = f@cost_absolute; // Use the duration as an offset to the size of the mask float max = ca + dur; // Normalize the mask so we can put it into a ramp to further refine the shape. float mask = fit(t, ca, max, 0, 1); float ramp = chramp("edge_shape", mask); // Plug in the shape to the colour. Boom, mask. @Cd = ramp; // Move the P position by adding the normal to it. // The normals are controlled by the mask shape and also by an overall scale factor. @P += @N * ramp * chf("bulge_scale");
@kate23264 жыл бұрын
Is it possible to delay path start times for time-dependent points?
@PawelGrzelak5 жыл бұрын
How come you can talk and create at the same time!? Unique skill man.
@peterclaes59185 жыл бұрын
Thanks! I phrase what I’m thinking, and then my hands catch up to dropping the nodes in Houdini. I visualize the effect in my head first, then reverse engineer the steps to get there, see the node tree in my head and then I drop down the nodes in Houdini. If I would not be talking the speed goes up, but this is a tutorial and pacing is important when teaching. After doing this for over ten years, it’s more about the algorithm and setup and less about the individual nodes.
@PawelGrzelak5 жыл бұрын
@@peterclaes5918 Still, it's an unique skill. Most of pro tuts have voice-over recorded later, as well as footage is all sliced and merged. Pacing is good too. The only thing that I could be better is the name of the video ;) More descriptive.
@peterclaes59185 жыл бұрын
Thanks for the feedback, I’ve updated the title!
@PawelGrzelak5 жыл бұрын
@@peterclaes5918 Much better;)
@massimobaita71784 жыл бұрын
Thank You very much, Peter!
@humayan913 жыл бұрын
Amazing tutorial. Thank you :)
@theagileaardvark5 жыл бұрын
Really nice idea! I would have solved this problem with... the classic "infection solver". Another trick added to the "toolbox" in the head :) Thanks a lot!
@peterclaes59185 жыл бұрын
Nice! Running a solver gives you more control as you could ‘jump gaps’ in the topology if you wanted, but if you have connected topology then the shortest path runs much faster than a solver.
@theagileaardvark5 жыл бұрын
@@peterclaes5918 Exactly. And in many cases, the added "features" of a solver-based solution aren't really necessary if you can get the same or visually very close result with a custom ramp curve and findshortestpath while saving quite a lot of CPU time as a free bonus :) If you don't have a connected topology you could always cobble up something from the original mesh for the spreading process and transfer the result back to the original mesh at the end. Thanks again, I never thought of this before.
@antoniopepe4 жыл бұрын
thx. great explanation
@floydafcg5 жыл бұрын
Great tutorial! Thank you for posting.
@peterclaes59185 жыл бұрын
Hope you learned some fun tricks!
@PawelGrzelak5 жыл бұрын
Great tut.
@peterclaes59185 жыл бұрын
Thanks! Glad you liked it!
@StephaneSOUBIRAN5 жыл бұрын
Nice tut, thx you.
@peterclaes59185 жыл бұрын
Glad you liked it!
@salil8089 ай бұрын
why did you promote the cost to a detail attribute?
@peterclaes59189 ай бұрын
The goal is remap the attribute between the minimum and the maximum value. Have a look at the values in the geometry spreadsheet. At the point level cost is all unique values, but at the detail level there is only one 'cost_max' value as there should only be one maximum value. I want to store this maximum value once (at the detail/object level) vs storing that same value on all the points. If a value is the same for all points or all primitives, it is more memory efficient to store it as a single data value at the detail level. Then we remap the point cost value between the minimum (a value of zero) and maximum so we get a nice range between 0 and 1. This is 'normalizing' the attribute. The 0 to 1 range is easier to work with. Since this attribute normalizing operation is such a useful thing, the Sidefx Labs team made a tool for it 'attribute_normalize_float'. You can take a look inside of that as it also does the data promotion to detail, both for a minimum as well as a maximum value.
@probiner5 жыл бұрын
Nice vid, thanks
@peterclaes59185 жыл бұрын
Thanks! Have fun creating gradients to trigger your Fx!
@demonhunter47095 жыл бұрын
Thanks again😇
@peterclaes59185 жыл бұрын
Have fun with it!
@boole_cat5 жыл бұрын
Super
@jluisroga5 жыл бұрын
Nice title! Lol Thanks for your insights
@peterclaes59185 жыл бұрын
I’ll cover some finance and investing related advice in the future on a second channel :). Different kind of cost.
@kiranirugalbandara5 жыл бұрын
Really amazing tutorial . Only problem is your titles ! Atleast add "in Houdini" to the end
@peterclaes59185 жыл бұрын
Thanks! I’d have to add ‘in Houdini’ to all my titles as the entire channel has Houdini videos, so instead I add it in the description and in the tags so people who are searching should be able to find it.
@kiranirugalbandara5 жыл бұрын
@@peterclaes5918 Your decision mate ! Anyways I'm lucky I found the channel , great content , keep it up !