This is phenomenal. By far the easiest and clearest tutorial I encountered. Saw some of the comments about it being too complicated for beginners. Yes, you need some basic coding knowledge to start working with Vex but this is by far the easiest introduction I've encountered.
Thanks for the tutorial Indie_Pixel ! It is great for a beginner like me :D! I have 2 questions if you don't mind. Why do we need to set the number of elements in a array before filling it (with the "resize" function)? In the for loop, why do we need to add the newly generated points into an array? (points[i] = curPointID; ) We just created them in the correct position with the "addpoint" function 1 line above, so why do they only appear after they have become part of the array?
thank you for making this! I do not have experience coding, i have watched a bunch of "intro to VEX" vids that went right over my head. And i feel like your video is the one that actually a true intro and actually makes sense to me. Thank you!
so you do recommend to understand VEX or to start the programming language journey c++ will be good start ?, and where can I find the basics of it ?, thank you.
You can further replicate the polyline node by adding: float lenght = ch("lenght"); float step = lenght/pointCount; "i < pointCount+1" vector curPos = set(0,i*step,0);
I'm running into some issues with this tutorial using houdini 17.5. It doesn't seem to let you reference the points[i] = curPointId; variable from the first for loop in the 2nd for loop, it gives an undeclared variable error for points[i]. I had to modify the code for that part so that instead of creating a 2nd for loop, you create another statement inside of the original for loop so that it can reference the points[i] variable. something like this: for(int i =0; i < pointCount; i++) { vector curPos = set(0, i, 0); int curPointId = addpoint(geoself(), curPos); points[i] = curPointId;
Christopher Giese-Kettelacke , you are very welcome! Glad you dig em. I appreciate everyone's patience, while I get back to producing new vids...stay tuned
Is there a way do the opposite of polycut sot? I mean if I have a bunch of primitives that form a curve and I want to have just one primitive that forms the curve. Thanks.
Why is it necessary to split the line, the addprim function does create a segmented line right? Why then do you need to split again. Or is it to create separate geometry, wouldn't there need to be duplicate verts then?
Howdy Mr Mountain! Great question! It is a very common technique when making procedural models to take a line and split it into a prim per segment. A great example is placing the dashed line on roads. By splitting a curve into prim segments we can then carve each of those segments, then sweep it and have a dashed line! In the case of this video I was simply showing how to do various techniques through VEX...just to get everyone comfortable using the code and functions. We can also use the carve node or the convert line node to do the same operation to a line with many points. This video is just us learning VEX. Hope that helps! Thanks! :-)
Thank you for tutorials! Trying to switch to houdini from Softimage for some time now, guys at sidefx saying that houdini is artist-friendly...But when i see tutorials like this with all that arrays,integers,functions,expressions - i realize that i'm in serious trouble =)))))
Hehe, no worries at all. I remember when first starting out I had the same feelings. I started with using point vops instead of using VEX. Its almost exactly like ICE in softimage. I usually try to show how to do the same vex code using a point vop in each video, but do sometimes forget. Ill make sure to show the equivalent of VEX inside of a point vop node for future vids. Thanks so much for subscribing! Let me know if you have any quesitons about houdini! :-)
This is quite complicated for a 'beginners' tutorial :/ I can already use basic vex in my workflow but this confuses me :D I hope to get there soon since im studying Python now!! By the way for the part of having a primitive between each point you can also use a carve node set it to Breakpoints and not divisions and enable 'cut at all internal U breakpoints and it does the same thing as grouping middle points and using the polycut :)
@@IndiePixel3D Yes i know i follow alot of your stuff and its usually not hard to follow, maybe these vex ones will become easier when i have a better understanding of programming :)
Im very new to houdini and i want to get into it for fx simualtion like ocean and explosions and car crashes , my main problem from where to start ? Im so lost
Howdy Movies FX! Well, i always tell new comers to start with SOPs or Surface Operators. Meaning getting use to the general concept of modeling things in Houdini. The reason being is it gives you a good idea of how things work in Houdini, and starting with DOPs (Dynamics Operators) requires that you understand how data is being passed around amongst the nodes. So an easy way to get started is to do some modeling tutorials and learn how the general concept of nodes and attributes work. From there you can dive into creating FX using DOPs and VEX. There is a great series on CG Circut from David Aden on FX and VEX that I highly recommend if you want to get started from an FX mindset. Hope that helps! :-)
@@IndiePixel3D I don't even know. I enjoyed the VEX series you had for 16 a lot. Between that and the Guard Tower on Houdini Learn those are two that come to mind that seem like they could use a LATEST VERSION!!! type thing.. lol The v16 VEX one is very "theory study" so maybe with a v18 one make it little more advanced? like you v16 is suggested prior and make it more "applied study"? Could do a revamp of something like the guard tower with auto texturing/baking tools maybe different theme.. like.. whats trending.. oh! Cyberpunk street? or something.
@@IndiePixel3D You know there never seems to be enough decent material on the hi res/ low res baking texture process or tools that use shaders built in Houdini that's another idea for ya.
@@prooxy1234 Those are all good ideas for sure. Yes the Guard Tower does need any update. Theres just been such a surge in Houdini Tuts, that I started doing more Unity things on my patreon and more Houdini Python. I have a few video series I havent put up on TH-cam yet that are only on my patreon right now. Ill work this weekend to get some of those up this weekend. :-)
I'm trying to figure out exactly how for() works, but it's not an easy thing to search for. Could you point me in the right direction to study these kinds of operations? Thanks in advance.
Howdy Daniel! ok, no problem at all! Ill make a video about the for loop inside of VEX for ya! What exactly are you looking to do with the loops. I can take that info and cater the video around it. Let me know and Ill bust out the video! :-)
Indie-Pixel Indie-Pixel That's awesome, thank you. I was able to find it, though. Just needed to know what the different parts did. Correct me if I'm wrong, but I think it's for(initial state ; condition ; new state)? I'm away from my computer atm, so I might have mixed something up.
in Houdini 15.5.480 this piece of the code does not work. int pointCount = chi("Point_Count"); int points[]; resize(points, pointCount); for(int i = 0; i < pointCount; i++) { vector curPos = set(0, i, 0); int curPointId = addpoint(geoself(), curPos); points[i] = curPointId; } addprim(geoself(), "polyline", points);
I'm using Houdini 17 here just following along and well my one doesn't work for some reason :3 I'm sure the code is written correctly a triple checked everything but I'm only getting 1 point even when I set my Point Count to a higher value I'm still not getting anything :3 any help would be appreciated thanks
Howdy Refraction House! Can you check to make sure your wrangle node is set to detail. Im thinking that this might be the issue, without seeing your code. Let me know. Thanks! :-)
@@IndiePixel3D Hi Indi-Pixel, thank you for writing back to me so quickly, yes my wrangle node is set to Run Over: Detail (only once) :3 I can copy and past what I have written in the wrangle if you wish to see..
No prob. I just tested it out in Houdini 17 and this is the code I have that works. I cleaned it up a little too. int numpts = chi("numpts"); int pts[]; resize(pts, numpts); for(int i = 0; i < len(pts); i++) { vector curpos = set(0,i,0); int newid = addpoint(0, curpos); pts[i] = newid; } addprim(0, "polyline", pts);
Hi @@IndiePixel3D I was wondering what the i++ at the end of the "for" loop meant or what is it doing in this case? I understand i means any number but is usually represented as 1 in algebra, so our i is equal to 0 in this case and if our i, (I'm assuming is points) correct me if I'm wrong please, are less than the length of points then (i++) ?? which is what confuses me atm.
Howdy Butsik! So you dont necessarily need to know how to code but it does help. You can put together fx using the nodes in houdini, but knowing a little VEX does make it faster and more efficient. Hope that helps!😁
@@IndiePixel3D I hear... Can I asked you What are the main softwares I would need to know to become a vfx artist? And what would be the best route to take in terms of schooling and to get jobs in the industry?
@@butsikfinkel3483 I would stick with Houdini. I've been doing VFX in Maya for a while now, but when I saw the power of Houdini, and how much control I have over everything, I was stunned lol. Don't get me wrong, Maya is a great VFX tool along with its Arnold Renderer, but Houdini is just so much more advanced. I would like to add that I do find myself switching between the two every now and then. Sometimes just clicking "3d fluid container" in Maya and setting the boundaries, you can make some quick effects. If you're looking to land in the industry, go with Houdini. It's coveted and because fewer people know it, companies will want you when you've learned it even at a intermediate level.
I just tried it out in Houdini 17 and I got it to work. Here is my new code..:-) int numpts = chi("numpts"); int pts[]; resize(pts, numpts); for(int i = 0; i < len(pts); i++) { vector curpos = set(0,i,0); int newid = addpoint(0, curpos); pts[i] = newid; } addprim(0, "polyline", pts);
Hi @@IndiePixel3D I just tried the above code in H17.0.477 (Daily Build) & I get a fatal error that crashes Houdini. Something has changed (again). Interested to see if others get it too although probably need to be using same version. I'm on 477 to test a bug/RFE I submitted for 416.
Ahh, just watched your next video & saw the code you posted in it. If your using H17 use this code to make your custom_line. It works:-) float length = chf("length"); int pntcount = chi("pntcount"); vector dir = chv("dir"); dir = normalize(dir); int points[]; resize(points, pntcount); float stepval = length / (float)(pntcount-1); for(int i = 0; i < pntcount; i++) { vector pntpos = dir * (stepval * i); int curID = addpoint(0, pntpos); points[i] = curID; } addprim(0, "polyline", points);
Howdy lzat! Im sorry you are having an issue. Make sure that your Wrangle node is set to "Detail(only once)" for the run over dropdown. that should ifx it for ya. Let me know. Thanks! :-)
@@IndiePixel3D Thanks for the quick reply! I got stuck when you added "int curPointId etc etc" ....... at that point your adding an int, but saying it's equal to what? CurPos is a vector, so how can an int be equal to a vector? (yup, i know very little about programming!)
@@Dazzer1234567 ah, ok...let me put together some programming fundamentals videos for ya...will take a few days, but stay tuned! Thanks so much for the feedback!:)
@@IndiePixel3D Thanks dude! ........ if i might make a suggestion: Make a "part 0" for this series where you just cover a few of the things people without ANY programming experience would understand, like "for" loops and things like that. Because at quite a few points in this vid you take it for granted that we must already know this stuff, but for someone starting with VEX and programming in general, i think they'd be scared off from going any further with this series as it jumps in just a little too deep! ................ by the way, feel free to delete these comments!
@@IndiePixel3D I will sub just because you respect and give time for us to learn something new and the way you teach is very good, I hope you can put some videos for basic programing and how can we understand vex according to houdini workflow, thank you so much.
This is phenomenal. By far the easiest and clearest tutorial I encountered. Saw some of the comments about it being too complicated for beginners. Yes, you need some basic coding knowledge to start working with Vex but this is by far the easiest introduction I've encountered.
You are very welcome! I'm working on the next round of vids, been caught up in some client work...stay tuned!😊
Thanks for the tutorial Indie_Pixel ! It is great for a beginner like me :D! I have 2 questions if you don't mind.
Why do we need to set the number of elements in a array before filling it (with the "resize" function)?
In the for loop, why do we need to add the newly generated points into an array? (points[i] = curPointID; )
We just created them in the correct position with the "addpoint" function 1 line above, so why do they only appear after they have become part of the array?
thank you for making this! I do not have experience coding, i have watched a bunch of "intro to VEX" vids that went right over my head. And i feel like your video is the one that actually a true intro and actually makes sense to me. Thank you!
Howdy Maxim! I really appreciate that! Let me know if I can help answer any questions. thanks! :-)
thanks a lot, you are a great teacher, I love how you explain things.
i checked some c++ lessons and comeback. now i can understand little bit. thank you
so you do recommend to understand VEX or to start the programming language journey c++ will be good start ?, and where can I find the basics of it ?, thank you.
@@Gilloozz youtube
You can further replicate the polyline node by adding:
float lenght = ch("lenght");
float step = lenght/pointCount;
"i < pointCount+1"
vector curPos = set(0,i*step,0);
Great, simple tutorial! Trying to learn VEX can a daunting, but videos like this are awesome for simplifying the concepts into small chunks. Thanks!
The second "for (int i = 0; i < pointCount - 1; i++)" for loop, counts from 0 to 1, and then goes back one (as "i < polyCount - 1").
I'm running into some issues with this tutorial using houdini 17.5. It doesn't seem to let you reference the points[i] = curPointId; variable from the first for loop in the 2nd for loop, it gives an undeclared variable error for points[i]. I had to modify the code for that part so that instead of creating a 2nd for loop, you create another statement inside of the original for loop so that it can reference the points[i] variable. something like this:
for(int i =0; i < pointCount; i++)
{
vector curPos = set(0, i, 0);
int curPointId = addpoint(geoself(), curPos);
points[i] = curPointId;
if(i < pointCount)
{
addprim(geoself(), "polyline", points[i], points[i + 1]);
}
}
👍Nice video, looks amazing. 😊
Excellent VEX tutorials! Thank you.
Christopher Giese-Kettelacke , you are very welcome! Glad you dig em. I appreciate everyone's patience, while I get back to producing new vids...stay tuned
Thank you making this video! I was looking for a Vex script that simplify Edge. I can reverse engineering your Vex code to reduce points!
Is there a way do the opposite of polycut sot? I mean if I have a bunch of primitives that form a curve and I want to have just one primitive that forms the curve. Thanks.
Use a fuse node then a poly path node
@@IndiePixel3D thank you!!! I spent whole day to figure out how to make it possible and it turned out to be so easy!
@@vitalie96 no prob at all...its one of those things that not super obvious right away.
this avesome! Thank you so much for this tutorial! Now I following you and like this. Keep going.
Why is it necessary to split the line, the addprim function does create a segmented line right? Why then do you need to split again. Or is it to create separate geometry, wouldn't there need to be duplicate verts then?
Howdy Mr Mountain! Great question! It is a very common technique when making procedural models to take a line and split it into a prim per segment. A great example is placing the dashed line on roads. By splitting a curve into prim segments we can then carve each of those segments, then sweep it and have a dashed line! In the case of this video I was simply showing how to do various techniques through VEX...just to get everyone comfortable using the code and functions. We can also use the carve node or the convert line node to do the same operation to a line with many points. This video is just us learning VEX. Hope that helps! Thanks! :-)
You are my man. Great tutorials!
Thank you for tutorials! Trying to switch to houdini from Softimage for some time now, guys at sidefx saying that houdini is artist-friendly...But when i see tutorials like this with all that arrays,integers,functions,expressions - i realize that i'm in serious trouble =)))))
Hehe, no worries at all. I remember when first starting out I had the same feelings. I started with using point vops instead of using VEX. Its almost exactly like ICE in softimage. I usually try to show how to do the same vex code using a point vop in each video, but do sometimes forget. Ill make sure to show the equivalent of VEX inside of a point vop node for future vids. Thanks so much for subscribing! Let me know if you have any quesitons about houdini! :-)
This is quite complicated for a 'beginners' tutorial :/ I can already use basic vex in my workflow but this confuses me :D I hope to get there soon since im studying Python now!! By the way for the part of having a primitive between each point you can also use a carve node set it to Breakpoints and not divisions and enable 'cut at all internal U breakpoints and it does the same thing as grouping middle points and using the polycut :)
Sorry its complicated. I do my best to show this stuff as easy I can. Yep, you can also use the convert line node to do the same as the carve node.
@@IndiePixel3D Yes i know i follow alot of your stuff and its usually not hard to follow, maybe these vex ones will become easier when i have a better understanding of programming :)
Im very new to houdini and i want to get into it for fx simualtion like ocean and explosions and car crashes , my main problem from where to start ? Im so lost
Howdy Movies FX! Well, i always tell new comers to start with SOPs or Surface Operators. Meaning getting use to the general concept of modeling things in Houdini. The reason being is it gives you a good idea of how things work in Houdini, and starting with DOPs (Dynamics Operators) requires that you understand how data is being passed around amongst the nodes. So an easy way to get started is to do some modeling tutorials and learn how the general concept of nodes and attributes work. From there you can dive into creating FX using DOPs and VEX. There is a great series on CG Circut from David Aden on FX and VEX that I highly recommend if you want to get started from an FX mindset. Hope that helps! :-)
@@IndiePixel3D thanks
Indie! When are you going to make a new series on VEX utility in 18 with some of the new nodes and such?!?!?
Well, was going to try this weekend, did you have anything in mind?
@@IndiePixel3D I don't even know. I enjoyed the VEX series you had for 16 a lot. Between that and the Guard Tower on Houdini Learn those are two that come to mind that seem like they could use a LATEST VERSION!!! type thing.. lol
The v16 VEX one is very "theory study" so maybe with a v18 one make it little more advanced? like you v16 is suggested prior and make it more "applied study"?
Could do a revamp of something like the guard tower with auto texturing/baking tools maybe different theme.. like.. whats trending.. oh! Cyberpunk street? or something.
@@IndiePixel3D You know there never seems to be enough decent material on the hi res/ low res baking texture process or tools that use shaders built in Houdini that's another idea for ya.
@@prooxy1234 Those are all good ideas for sure. Yes the Guard Tower does need any update. Theres just been such a surge in Houdini Tuts, that I started doing more Unity things on my patreon and more Houdini Python. I have a few video series I havent put up on TH-cam yet that are only on my patreon right now. Ill work this weekend to get some of those up this weekend. :-)
I'm trying to figure out exactly how for() works, but it's not an easy thing to search for. Could you point me in the right direction to study these kinds of operations? Thanks in advance.
Howdy Daniel! ok, no problem at all! Ill make a video about the for loop inside of VEX for ya! What exactly are you looking to do with the loops. I can take that info and cater the video around it. Let me know and Ill bust out the video! :-)
Indie-Pixel Indie-Pixel That's awesome, thank you. I was able to find it, though. Just needed to know what the different parts did. Correct me if I'm wrong, but I think it's for(initial state ; condition ; new state)? I'm away from my computer atm, so I might have mixed something up.
i'm notgetting the points.
int pointCount = chi("Point_Count");
int points[];
resize(points, pointCount);
for(int i = 0; i
Hi Kenny,
Any idea why all my points are stacked on top of each other, I have Detail checked and believe the code is the same, I'm on 17.5.382
Howdy Harold. Well without seeing the code it sounds like the @P variable isnt being assigned. Is there a way you can show me your VEX?
Found my problem I had 1 instead of i in my set function.
@@haroldw2823 nice! thatll do it. Glad you are back up and running! :-)
in Houdini 15.5.480 this piece of the code does not work.
int pointCount = chi("Point_Count");
int points[];
resize(points, pointCount);
for(int i = 0; i < pointCount; i++)
{
vector curPos = set(0, i, 0);
int curPointId = addpoint(geoself(), curPos);
points[i] = curPointId;
}
addprim(geoself(), "polyline", points);
Awesome! Exactly what I need
if you are totally a newbie at the programming, I don't suggest you watch this tutorial, which required some basic programming skills
Thanks for the awesome video!
PLEASE MORE VEX! I'M A DESIGNER WHO SUCKS AT MATH
I'm using Houdini 17 here just following along and well my one doesn't work for some reason :3 I'm sure the code is written correctly a triple checked everything but I'm only getting 1 point even when I set my Point Count to a higher value I'm still not getting anything :3 any help would be appreciated thanks
Howdy Refraction House! Can you check to make sure your wrangle node is set to detail. Im thinking that this might be the issue, without seeing your code. Let me know. Thanks! :-)
@@IndiePixel3D Hi Indi-Pixel, thank you for writing back to me so quickly, yes my wrangle node is set to Run Over: Detail (only once) :3 I can copy and past what I have written in the wrangle if you wish to see..
No prob. I just tested it out in Houdini 17 and this is the code I have that works. I cleaned it up a little too.
int numpts = chi("numpts");
int pts[];
resize(pts, numpts);
for(int i = 0; i < len(pts); i++)
{
vector curpos = set(0,i,0);
int newid = addpoint(0, curpos);
pts[i] = newid;
}
addprim(0, "polyline", pts);
Thank you @@IndiePixel3D this worked like a charm : )
Hi @@IndiePixel3D I was wondering what the i++ at the end of the "for" loop meant or what is it doing in this case? I understand i means any number but is usually represented as 1 in algebra, so our i is equal to 0 in this case and if our i, (I'm assuming is points) correct me if I'm wrong please, are less than the length of points then (i++) ?? which is what confuses me atm.
So to be a vfx artist you have to know how to code ?
Howdy Butsik! So you dont necessarily need to know how to code but it does help. You can put together fx using the nodes in houdini, but knowing a little VEX does make it faster and more efficient. Hope that helps!😁
@@IndiePixel3D I hear... Can I asked you What are the main softwares I would need to know to become a vfx artist? And what would be the best route to take in terms of schooling and to get jobs in the industry?
@@butsikfinkel3483 I would stick with Houdini. I've been doing VFX in Maya for a while now, but when I saw the power of Houdini, and how much control I have over everything, I was stunned lol. Don't get me wrong, Maya is a great VFX tool along with its Arnold Renderer, but Houdini is just so much more advanced. I would like to add that I do find myself switching between the two every now and then. Sometimes just clicking "3d fluid container" in Maya and setting the boundaries, you can make some quick effects. If you're looking to land in the industry, go with Houdini. It's coveted and because fewer people know it, companies will want you when you've learned it even at a intermediate level.
The code does not work in the 17th version of the program
I just tried it out in Houdini 17 and I got it to work. Here is my new code..:-)
int numpts = chi("numpts");
int pts[];
resize(pts, numpts);
for(int i = 0; i < len(pts); i++)
{
vector curpos = set(0,i,0);
int newid = addpoint(0, curpos);
pts[i] = newid;
}
addprim(0, "polyline", pts);
Hi @@IndiePixel3D I just tried the above code in H17.0.477 (Daily Build) & I get a fatal error that crashes Houdini. Something has changed (again). Interested to see if others get it too although probably need to be using same version. I'm on 477 to test a bug/RFE I submitted for 416.
Ahh, just watched your next video & saw the code you posted in it. If your using H17 use this code to make your custom_line. It works:-)
float length = chf("length");
int pntcount = chi("pntcount");
vector dir = chv("dir");
dir = normalize(dir);
int points[];
resize(points, pntcount);
float stepval = length / (float)(pntcount-1);
for(int i = 0; i < pntcount; i++)
{
vector pntpos = dir * (stepval * i);
int curID = addpoint(0, pntpos);
points[i] = curID;
}
addprim(0, "polyline", points);
@@stevensilcock for me it works in 18.499
Thank you for your tutorial. Vex is my weak bone in Houdini 16,haha
Thank You very much!
Thanks for tutorial! Don't know why, but the addpoint won't create any point for me in the scene. Using Houdini 16.5
Howdy lzat! Im sorry you are having an issue. Make sure that your Wrangle node is set to "Detail(only once)" for the run over dropdown. that should ifx it for ya. Let me know. Thanks! :-)
Yes, this was a reason of problem - wrangler node was on point mode, when detail mode was choosed it all worked fine. Thank you very much!
İts so hard for me :D how do i learn vex?
Learn basics of programming
@@RajuMon2016 i learned so much from the joy of vex
@@elpamidor6601 How?
type google joy of vex
@@elpamidor6601 Mix training?
Hey. Thank you for tutorial! There is a easier way to break a line into primitives - node ConvertLine :-)
Slick! Thank You! I don't know why I never used that node before, hehe...very Cool! Much appreciated...😊
Yes, either ConvertLine or the Carve node, cutting internal breakpoints. But thanks a lot for the Vex material. Looking forward to the next ones.
Thx
This tutorial presupposes some knowledge of VEX and / or programming, so i guess not aimed at noobs!
Howdy Dazzer! Sorry bout that, which parts were you having trouble with? I'll try to make some vids on basic houdini programming. Thanks!
@@IndiePixel3D Thanks for the quick reply! I got stuck when you added "int curPointId etc etc" ....... at that point your adding an int, but saying it's equal to what? CurPos is a vector, so how can an int be equal to a vector? (yup, i know very little about programming!)
@@Dazzer1234567 ah, ok...let me put together some programming fundamentals videos for ya...will take a few days, but stay tuned! Thanks so much for the feedback!:)
@@IndiePixel3D Thanks dude! ........ if i might make a suggestion: Make a "part 0" for this series where you just cover a few of the things people without ANY programming experience would understand, like "for" loops and things like that. Because at quite a few points in this vid you take it for granted that we must already know this stuff, but for someone starting with VEX and programming in general, i think they'd be scared off from going any further with this series as it jumps in just a little too deep! ................ by the way, feel free to delete these comments!
@@IndiePixel3D I will sub just because you respect and give time for us to learn something new and the way you teach is very good, I hope you can put some videos for basic programing and how can we understand vex according to houdini workflow, thank you so much.