The tutorial series is exceptionally well-crafted, making it easy to learn and understand complex concepts. Each lesson is clear, concise, and well-structured. Overall, it's an excellent resource for anyone looking to master Houdini .Highly recommended!" Thanks for the awesome tutorial 🙏😊
Really good job on this tutorial. I like that you leave it open ended at the end, by showing us what can be achieved with the setup, without holding our hand to accomplish it. I was able to get a pretty good final result messing with the parameters, thanks!
Houdini 20.0.539 - I can't add a Principled Shader Node in the Stage Materiallibrary. I am in the VEX Builder tab but the only way to create a shader is in the material palette? How to solve this? Edit: I just made one in the Material Palette and copied it from the mat network to the materiallibrary in the stage network and it seems to work... why can't I add one like adding nodes normally? Edit Nr.2: when showing the tool palette with the screwdriver symbol I can access the principledshader...
In Houdini 20, the Material Library LOP’s way of creating materials changed fundamentally. In previous versions you could access all shader nodes from the libraries root level. This often lead to confusion, because it was possible to mix incompatible shader nodes. Now, shaders are created inside subnets: Karma Material Builder USD MaterialX Builder VEX Material Builder USD Preview Material Builder
The comment below saved me! The Houdini version is also worth 20. I still haven't found the settings using the point color( Thanks a lot for the video, I'm learning with you, it's very interesting. My main job is in CorelDraw, I think it helps a little in understanding the logic of the program, but for some reason I was struck not so much by the abundance of functions as by the presence of gravity =))
hey sir i am a huge fan of you and your series is soo helpfully to us but can you make a houdini series only for dynamic lessons and again thanks for making this good houdini series
Thanks for awesome tutorial series! I would want to add how important is to understand how the nodes in Houdini works underneath. It was super confusing for me at first coming from any other node based app. A node usually means an execution step, a function/method that applies to data. In Houdini the execution context is the whole network container itself (dopnet/sop...) So what are you really doing is just adding/changing data with the nodes and when the context is executing it consumes that data and does it stuff like simulating etc based on attributes! When I saw the gravity and solver order it was like wtf? Solver doesn't know about gravity how does it calculates the movement. I think I only saw in Houdini and a very few other apps that use data driven networks vs execution flow. It's nodes just manages data, the execution/interpretation of the data is done at the network (container) level when data processed
Thanks for the great comment! Solvers and forces work in an interesting way in Houdini, and the "gravity after solver" thing confuses a lot of people. But, as far as my understanding goes, solvers work in two "timesteps." The first one computes the entire network, as in, everything needed by the solver is evaluated in that timestep. Then, the second time step runs the solver. So it may seem as if everything is happening in order, but really, it has an asynchronous element to it where forces are recognized in the first pass and used in the second pass. I hope that makes some sense, I found it confusing initially, but again, it's about data flow, as you mentioned. In this case, the data is evaluated in a less straightforward manner. Thanks again for the comment, gonna pin this because I think some people will find it useful😁
Also the way popreplicate is processed in this video, try to explain someone that you plug an action that refers to another action, that looks like it should execute independently but it adds behavior to the first action based on first action state 🤯 😅 So again it relates to the behaviour of Houdini to process data from top to bottom and also from left to right. If I remember right there are some backwards flows too, forgot in which cases. I think there is definitely some flaws in Houdini architecture which they try to patch but instead they add more complexity and indirection 🤷♂️ I hope someday it will be really straightforward 👍 I like that they're trying to get rid of too many ops and try to integrate more in SOPs.
I’m having this problem that I thought was me doing something but in this video you put a sop import in stage and switched to the karma view and it worked, Mine does not it says it’s rendering but nothing shows up. It sometimes works in Solaris desktop. It does render to MPlay but that’s not fun having to switch back and forth for making materials. Has anyone seen this issue?
Hi, create a material in the /mat/ tab, rename it SPARKS, then, on your Material_library node (in the stage tab), on the Material VOP section, select it (mat/SPARKS)
@NineBetween 36:02 I cant create spare parameters, when i click on the button on the top left of the VEXpression nothing happens. Im on the newest version of Houdini. Anyone can help me out?
apparently, at 38:26 when you used the color ramp to change color according to the @nage value. the nage value is always close to 0 so it always returning the color white. seems like its always get values closer to zero. any suggestions how to fix it?
my normals seem to be facing the y axis instead of vertcal z axis, there must be an easy way to fix this but i cant figure it out, how can we fix that?
Thanks for your lessons. You have a talent for teaching. There are a couple of minor questions left. I downloaded your file for verification. The SOP Import Sparcs node gives the error "The layer imported from SOPs has no save path set. The SOP node's layer will be output to a file path generated from its Houdini path." What is this and how to avoid it? In the Attribute wrangle node we used @nage. But it's not in the spreadsheet. Do I need to check some boxes inside POP Net for Houdini to calculate @nage?
You're welcome! Those are two great questions. The "No save path" warning is specific to USD (universal scene description). When we work with Solaris, we have the option to save our files as .usd format files. It gets quite technical, but USD basically saves things as layers (eg. A geo layer, a lighting layer, a background layer, whatever user defined layers we need). Those layers are saved separately to disk. When we don't specify a layer or a path to save that layer to, Houdini automatically generates one, thus the warning message. A configure layer node would fix it, but it won't negatively affect anything you're currently doing. The @nage attribute is actually a bit of a unique case in Houdini. The attribute is only created when you call it and is defined as @age/@life. In other words, it's the normalized age. I believe it is called a "virtual attribute" and only exists when we call it because it would otherwise waste space if it were saved per point. Those were two good catches by you, and both are very much behind the scenes, technical things that don't really affect us. I hope that answers your question!😁
@@NineBetween It was very nice to receive such a detailed answer so quickly. Thanks for your efforts. Yes, now it became clearer to me. I'm just getting acquainted with USD. And your two-hour lesson seemed to me the most useful that I could find on UA-cam. It would be interesting to learn more about optimization tricks in Solaris. I've heard, for example, that File Cache + Sop Import will be slower than USD cache and Layer Import. I haven’t yet remembered exactly what these nodes are called. I didn't know about the properties of the @nage attribute. This seems logical, since POP Solver already generates too many attributes. Then, suppose if I want to call this attribute in mtlx shaders, I won’t be able to?
Can anybody help? I’ve been following the tutorial, I’m towards the end, but my particles appear grey when viewing through karma; I have set my karma render to velocity blur to pick the colour from the attribute, but nothing has changed. I am new to Houdini and have gone over the tutorial again and can’t see what I’ve done wrong.
Hey! I had the same issue. My particles were looking greyish white and I wasn't sure why until I went back into the material node for the sparks and under the emission tab I realized that point color was unchecked. This solved my issue! I know this comment is 5 months late and I am not sure if you figured it out yet but I hope this helps!
when i create the pop group and try to chance the color of the splash group, it does not work and i am sure i am following along correctly. did anyone else have this issue?
It seems as though Principled Shader doesn't exist in Houdini 20.0.653. What do I use instead? UPDATE: Thank you @JUMADO for saying in the comments that you gotta select the wrench symbol. UPDATE #2: I rendered my completed animation into a 100-frame image sequence. When I compiled the image sequence in Blender, I noticed that it looked wrong. The background is a gray checkerboard, aka it's probably transparent. The floor isn't shiny. The sparks don't have color nor emission. What did I forget to do before rendering?
Hey :) Can someone help me? I've been able to follow this tutorial without any issues up until @18:28 where you're creating more sparks on collision. Before that I was able to play the timeline without any issues. Now it's constantly cooking on each frame and slowing everything down. I have a Ryzen Threadripper 3970x and a 4090 graphics card. Are there any settings I can change that would make the playback quicker and smoother. When I see other instructors showing off anything to do with particles and fluids, I always wonder their PC is coping with everything. Any guidance would be much appreciated.
may be not relevant : have you set collision behavior -> response from None to Die ? because if collision particles not die might results more impules points that slow down your pc to be created
Try to reduce the particles. If that did not help. Disable the solver and see what happens. It is most probably too many particles that could be the reason.
I faced the exact same issue where the playback would slow down towards the end. However, I increased the cache memory in POPNET from 5000 to 7000 and the playback has been pretty smooth.
Adjust the pscale of your particles, make less of them spawn, make more of them spawn after impact, change the color. It seems to be a lot that he has changed but its really just few parameters. But I guess that is the thought behind that. You see how cool it can look, so now he wants you to do it yourself. You've learned how to set the scale of the particles, you can see that his main particles are bigger than before. So just change it based on what he has taught you.
Lol. When I first heard about it, I had the same reaction. It's the same as dividing @age by @life. However, if both attributes already exist, Houdini does the calculation behind the scenes if we ask for @nage. It just means "normalized age".
@@NineBetween Thanks for the reply man. Yeah, I get that it’s the normalized age. I searched on google and the forums, and some folks mentioned it's a "virtual attribute". I feel like attributes like these should be visible in the geometry spreadsheet... it’s incredibly unintuitive to hide them, it just feels wrong! Thanks for this great series! I’m currently on the "Destruction" section, and so far, you're doing an amazing job explaining things. Cheers man!
The tutorial series is exceptionally well-crafted, making it easy to learn and understand complex concepts. Each lesson is clear, concise, and well-structured. Overall, it's an excellent resource for anyone looking to master Houdini .Highly recommended!"
Thanks for the awesome tutorial 🙏😊
37:00 In version 20.0 of Houdini Color Ramp is inside `Code/Generated Channel Parameters` (not in the root)
thank you mate! 😍😍
Thank you for this, I was so confused where it went
Thanks!
Love this series! It’s easier to follow and understand! Thanks!!!
thanks for making these Houdini tutorials, you're a really good teacher
Really good job on this tutorial. I like that you leave it open ended at the end, by showing us what can be achieved with the setup, without holding our hand to accomplish it. I was able to get a pretty good final result messing with the parameters, thanks!
Omg this series is gold.
A real pleasure to learn... as usual, thanks
Nice,clean and super useful!!! Thank you very much:)
Small note for everyone, if you add a second attribwrangle, it won't switch the input unless you pause the timeline
Really nice series! please keep doing it!
Is there going to be some tuts about compositing?
Houdini 20.0.539 - I can't add a Principled Shader Node in the Stage Materiallibrary. I am in the VEX Builder tab but the only way to create a shader is in the material palette? How to solve this?
Edit: I just made one in the Material Palette and copied it from the mat network to the materiallibrary in the stage network and it seems to work... why can't I add one like adding nodes normally?
Edit Nr.2: when showing the tool palette with the screwdriver symbol I can access the principledshader...
Hi! They made major changes to Karma and the Material Library in H 20. I'll do a revised video to explain some of the differences 👌
In Houdini 20, the Material Library LOP’s way of creating materials changed fundamentally. In previous versions you could access all shader nodes from the libraries root level. This often lead to confusion, because it was possible to mix incompatible shader nodes. Now, shaders are created inside subnets:
Karma Material Builder
USD MaterialX Builder
VEX Material Builder
USD Preview Material Builder
@@NineBetween thank you so much for this. Yes. I have been trying to get the shader working, along with displacement (it never worked 😢)
@@ТимофейСеменский So now how can you proceed? I'm trying to follow what you said but can't understand
I added to the material library a Karmamaterial, then entered in the node and fixed the materials in "mtlxstandardsurface" if this can help
This is so helpful! Nicely explain and easy to understand. Thanks for sharing!!
Hey! Just found this video and now I'm excited to go through the whole course. Thanks for uploading it!
Awesome to hear! I hope you find it helpful. If you have any questions, don't hesitate to ask😁
Cheers. That's very kind. I will for sure do that haha
@@NineBetween
Thank you!
Thanks!
The comment below saved me! The Houdini version is also worth 20. I still haven't found the settings using the point color(
Thanks a lot for the video, I'm learning with you, it's very interesting. My main job is in CorelDraw, I think it helps a little in understanding the logic of the program, but for some reason I was struck not so much by the abundance of functions as by the presence of gravity =))
hey sir i am a huge fan of you and your series is soo helpfully to us but can you make a houdini series only for dynamic lessons and again thanks for making this good houdini series
Great series, keep it up!
Thanks for awesome tutorial series! I would want to add how important is to understand how the nodes in Houdini works underneath. It was super confusing for me at first coming from any other node based app. A node usually means an execution step, a function/method that applies to data. In Houdini the execution context is the whole network container itself (dopnet/sop...) So what are you really doing is just adding/changing data with the nodes and when the context is executing it consumes that data and does it stuff like simulating etc based on attributes! When I saw the gravity and solver order it was like wtf? Solver doesn't know about gravity how does it calculates the movement. I think I only saw in Houdini and a very few other apps that use data driven networks vs execution flow. It's nodes just manages data, the execution/interpretation of the data is done at the network (container) level when data processed
Thanks for the great comment! Solvers and forces work in an interesting way in Houdini, and the "gravity after solver" thing confuses a lot of people. But, as far as my understanding goes, solvers work in two "timesteps." The first one computes the entire network, as in, everything needed by the solver is evaluated in that timestep. Then, the second time step runs the solver. So it may seem as if everything is happening in order, but really, it has an asynchronous element to it where forces are recognized in the first pass and used in the second pass. I hope that makes some sense, I found it confusing initially, but again, it's about data flow, as you mentioned. In this case, the data is evaluated in a less straightforward manner. Thanks again for the comment, gonna pin this because I think some people will find it useful😁
Also the way popreplicate is processed in this video, try to explain someone that you plug an action that refers to another action, that looks like it should execute independently but it adds behavior to the first action based on first action state 🤯 😅 So again it relates to the behaviour of Houdini to process data from top to bottom and also from left to right. If I remember right there are some backwards flows too, forgot in which cases. I think there is definitely some flaws in Houdini architecture which they try to patch but instead they add more complexity and indirection 🤷♂️ I hope someday it will be really straightforward 👍 I like that they're trying to get rid of too many ops and try to integrate more in SOPs.
"Still the best you are", Yoda
God i love this channel!
I’m having this problem that I thought was me doing something but in this video you put a sop import in stage and switched to the karma view and it worked, Mine does not it says it’s rendering but nothing shows up. It sometimes works in Solaris desktop. It does render to MPlay but that’s not fun having to switch back and forth for making materials. Has anyone seen this issue?
Thank you!
Cute, and well explained, thanks !
principled shader is deprecated in houdini 20, what's the alternative solution?
Hi, create a material in the /mat/ tab, rename it SPARKS, then, on your Material_library node (in the stage tab), on the Material VOP section, select it (mat/SPARKS)
@@thibosoreil9460 Thank you
IN THE /MAT/ JUST LIKE THE /OBJ/ YOU CAN CREATE PRINCIPLE SHADER THEN IN STAGE JUST COPY PASTE IT INTO STAGE MATERIAL NODE
In the material libraryon mine, the tab menu is very small and does not have a principal shader node
great teacher
@NineBetween 36:02 I cant create spare parameters, when i click on the button on the top left of the VEXpression nothing happens. Im on the newest version of Houdini. Anyone can help me out?
apparently, at 38:26 when you used the color ramp to change color according to the @nage value. the nage value is always close to 0 so it always returning the color white. seems like its always get values closer to zero. any suggestions how to fix it?
This guyz rockk.. thanks mate
my normals seem to be facing the y axis instead of vertcal z axis, there must be an easy way to fix this but i cant figure it out, how can we fix that?
Thank you very much :)
Hello, can you also show how can I import that particle simulations to blender?
im confused, do we go from the stage to out and put a karma node down to render this? The rendering part was glossed over
I don't know but the groups I set for birth points on impact (with collider) did not work for some reason :(. Great tutorial though! 😃👍
Same
solved the problem in mine. By default, "enabled" wasn't selected on the pop group node.
Thanks for your lessons. You have a talent for teaching.
There are a couple of minor questions left.
I downloaded your file for verification. The SOP Import Sparcs node gives the error "The layer imported from SOPs has no save path set. The SOP node's layer will be output to a file path generated from its Houdini path." What is this and how to avoid it?
In the Attribute wrangle node we used @nage. But it's not in the spreadsheet. Do I need to check some boxes inside POP Net for Houdini to calculate @nage?
You're welcome! Those are two great questions.
The "No save path" warning is specific to USD (universal scene description). When we work with Solaris, we have the option to save our files as .usd format files. It gets quite technical, but USD basically saves things as layers (eg. A geo layer, a lighting layer, a background layer, whatever user defined layers we need). Those layers are saved separately to disk. When we don't specify a layer or a path to save that layer to, Houdini automatically generates one, thus the warning message. A configure layer node would fix it, but it won't negatively affect anything you're currently doing.
The @nage attribute is actually a bit of a unique case in Houdini. The attribute is only created when you call it and is defined as @age/@life. In other words, it's the normalized age. I believe it is called a "virtual attribute" and only exists when we call it because it would otherwise waste space if it were saved per point.
Those were two good catches by you, and both are very much behind the scenes, technical things that don't really affect us.
I hope that answers your question!😁
@@NineBetween It was very nice to receive such a detailed answer so quickly. Thanks for your efforts. Yes, now it became clearer to me.
I'm just getting acquainted with USD. And your two-hour lesson seemed to me the most useful that I could find on UA-cam. It would be interesting to learn more about optimization tricks in Solaris. I've heard, for example, that File Cache + Sop Import will be slower than USD cache and Layer Import. I haven’t yet remembered exactly what these nodes are called.
I didn't know about the properties of the @nage attribute. This seems logical, since POP Solver already generates too many attributes. Then, suppose if I want to call this attribute in mtlx shaders, I won’t be able to?
IN 20.5 THERE IS NO USE POINT COLOR CHECK BOX IN EMISSION OR EVEN IN COLOR
super!
in a pop wrangle node, i wrote expression: if(@Frame > 99 && @Frame
Just use an expression in the impulse activation field rather than a pop wrangle. $F>84 && $F
why material node need to put in the stage? rather than obj?
Can anybody help? I’ve been following the tutorial, I’m towards the end, but my particles appear grey when viewing through karma; I have set my karma render to velocity blur to pick the colour from the attribute, but nothing has changed. I am new to Houdini and have gone over the tutorial again and can’t see what I’ve done wrong.
Hey! I had the same issue. My particles were looking greyish white and I wasn't sure why until I went back into the material node for the sparks and under the emission tab I realized that point color was unchecked. This solved my issue! I know this comment is 5 months late and I am not sure if you figured it out yet but I hope this helps!
when i create the pop group and try to chance the color of the splash group, it does not work and i am sure i am following along correctly. did anyone else have this issue?
oh i didnt select enable under the pop group node
It seems as though Principled Shader doesn't exist in Houdini 20.0.653. What do I use instead?
UPDATE: Thank you @JUMADO for saying in the comments that you gotta select the wrench symbol.
UPDATE #2: I rendered my completed animation into a 100-frame image sequence. When I compiled the image sequence in Blender, I noticed that it looked wrong. The background is a gray checkerboard, aka it's probably transparent. The floor isn't shiny. The sparks don't have color nor emission. What did I forget to do before rendering?
YOU CAN CREATE PRINCIPLED SHADER IN THE MATERIAL TAB LIKE STAGE AND OBJ.... THEN CUT AND PASTE IT INTO THE STAGE MATERIAL NODE
Once again Houdini made easy by Nine Between :)
Hey :) Can someone help me? I've been able to follow this tutorial without any issues up until @18:28 where you're creating more sparks on collision. Before that I was able to play the timeline without any issues. Now it's constantly cooking on each frame and slowing everything down. I have a Ryzen Threadripper 3970x and a 4090 graphics card. Are there any settings I can change that would make the playback quicker and smoother. When I see other instructors showing off anything to do with particles and fluids, I always wonder their PC is coping with everything. Any guidance would be much appreciated.
may be not relevant : have you set collision behavior -> response from None to Die ? because if collision particles not die might results more impules points that slow down your pc to be created
Try to reduce the particles. If that did not help. Disable the solver and see what happens. It is most probably too many particles that could be the reason.
I faced the exact same issue where the playback would slow down towards the end. However, I increased the cache memory in POPNET from 5000 to 7000 and the playback has been pretty smooth.
I dunno man. I'd say there were more than a few minor adjustments made between where the tutorial ends and the final render.
Adjust the pscale of your particles, make less of them spawn, make more of them spawn after impact, change the color. It seems to be a lot that he has changed but its really just few parameters. But I guess that is the thought behind that. You see how cool it can look, so now he wants you to do it yourself. You've learned how to set the scale of the particles, you can see that his main particles are bigger than before. So just change it based on what he has taught you.
Somebody can help me? when I play the animation, the object dissapear and appear in the other point. it has no time interpolation. how can I fix it?
Did you set the keyframe properly?
What is the use of color ramp?
this only course that can cost more than others
👍👍👍
wow
When i use @Cd there is no color change it shows only black please help
Are you using color ramp? If yes, try adding more points and change their colour.
use @color for karma or mtlx materials
does it matter if you input 0.1 vs .1? Could it affect something down the line?
Hey! No, either is fine. I mostly do it because it became a habit when I was first learning Houdini, but either is fine.
@@NineBetween cool, thanks. Love your content.
21:28
45:26
40:27
nage doesn't exist on geometry spreadshit, wtf is this black magic? a bug?
Lol. When I first heard about it, I had the same reaction. It's the same as dividing @age by @life. However, if both attributes already exist, Houdini does the calculation behind the scenes if we ask for @nage. It just means "normalized age".
@@NineBetween Thanks for the reply man. Yeah, I get that it’s the normalized age. I searched on google and the forums, and some folks mentioned it's a "virtual attribute".
I feel like attributes like these should be visible in the geometry spreadsheet... it’s incredibly unintuitive to hide them, it just feels wrong!
Thanks for this great series! I’m currently on the "Destruction" section, and so far, you're doing an amazing job explaining things. Cheers man!
oh man thank you very much :)
@pscale = @pscale * (1 - @nage)
This gives me an error, I don't know what I'm doing wrong, thanks for the help
No semi colon ;