Procedural Modules | Houdini 16.5

  Рет қаралды 60,048

Ricardo Ponce

Ricardo Ponce

Күн бұрын

** Procedural Modules | Low-level logic for copying random unique primitives to points **
Welcome! This one is more or less split into two sections; it went a bit longer than I planned but I hope it gives you some insight on how to approach something like this.
Firstly I walk you through a general concept phase, where I explain in depth how our logic for efficiently copying n different primitives from a selected pool to n number of points works. Next, I use an unfinished setup as an example where this technique is extremely important and basically allows modules to be instantiated to points with unique properties.
This was the core logic behind one of the many procedural buildings setups that I developed some while ago, and I specially think it's a powerful yet friendly approach to this, without getting tangled into so many vex wrangles, conditionals and statements.
Here is the link to this tutorial's post page, with further details:
particula.org/tree/master/tut...
Also make sure to check out our Resources page; links to things mentioned in this video can be found in there :
particula.org/
Thanks, and I'll see you next time!

Пікірлер: 67
@IndiePixel3D
@IndiePixel3D 5 жыл бұрын
Super rad! Nice shapegen! :-)
@ribponce
@ribponce 5 жыл бұрын
Indie-Pixel Thanks, man! Really appreciate it, specially coming from you. I’m also really liking your latest ones! Wish I had more free time to keep up! Cheers
@kylejennings819
@kylejennings819 3 жыл бұрын
ANYONE HAVING ISSUES AT 7:40... Solution: click set_index node, then change 'Max' to 3. It seems he edited that part out by mistake.
@santirb5244
@santirb5244 3 жыл бұрын
thx!
@jaddeeb510
@jaddeeb510 3 жыл бұрын
Real og
@pixel.network
@pixel.network 3 жыл бұрын
so many things in such a short time, you opened my eyes! Thank you
@massimobaita7178
@massimobaita7178 5 жыл бұрын
Thank You very much, Ricardo.
@hawnter99
@hawnter99 5 жыл бұрын
This is a great video, thanks for sharing!
@TheWillvoss
@TheWillvoss 5 жыл бұрын
this is the best, and shortest, houdini tutorial i've ever seen. Thank you so much. Your mind/pipeline works like mine. This is a brilliant way of showing this off.
@ribponce
@ribponce 5 жыл бұрын
I really appreciate your kind words. I’m glad you find it useful. Thanks!
@mdsanima
@mdsanima 5 жыл бұрын
Very nice stuff here!
@4Neron
@4Neron 5 жыл бұрын
Great job there!
@ribponce
@ribponce 5 жыл бұрын
Thank you very much!
@user-si9yf6sp6l
@user-si9yf6sp6l 3 жыл бұрын
great stuff!! thank you so much;)
@vectonaut1503
@vectonaut1503 5 жыл бұрын
Great video, especially for someone like me who only got into Houdini a couple of months a go. The only stumbling block I had was figuring out that the -1 in the point function was referencing the spare input, but it's a neat trick and makes the network editor easier to read.
@BurtonPosey
@BurtonPosey 5 жыл бұрын
It took me a while to figure this out, but I found that until I had a valid, non-zero value for the max attribute, I wasn't able to get randomization. I am not sure why it was ever working in your video. I stopped watching for a while to try and find and fix my mistake, but I eventually I found the fitted value going into index was fitting the value between zero and zero. I then realized that right after I stopped watching, you provided a solution in the video with the opninputs switch lookup. Anyways, thanks for the guide! I'm still learning a lot from it.
@ribponce
@ribponce 5 жыл бұрын
Thanks for the comment. Yes, I actually found out about the opninputs method shortly before recording, it's super handy. I'm glad to hear you can learn something from it, and that it worked out in the end!
@HalitHarun
@HalitHarun Жыл бұрын
Each stage here is a separate lesson topic. I will research each one individually. Thanks.
@arsensuleymanov7935
@arsensuleymanov7935 3 жыл бұрын
Thank you. Liked and subscribed.)
@TheMagic-les-Bean
@TheMagic-les-Bean 4 жыл бұрын
@19:20, can someone explain to me how to do the attribute transfer correctly? I can't seem to figure out how to do it
@TheNetwork
@TheNetwork 4 жыл бұрын
how were you able to create the interior walls? will you be doing another tutorial?
@Fellinline
@Fellinline 5 жыл бұрын
@18:21 how do you get rid of the points that do not pass through the polywire shape. on your example it's points 36 and 30
@ribponce
@ribponce 5 жыл бұрын
Hello, that we can achieve by promoting the group that we created with the polywire from points to primitives. By blasting the promoted primitive group we also get rid of those points. Hope it helps!
@mikelambert6304
@mikelambert6304 4 жыл бұрын
In the connect_dots wrangle, isn't "pt >= @ptnum && pt != @ptnum" the same as just saying "pt > @ptnum"?
@terrythegnome2408
@terrythegnome2408 3 жыл бұрын
Quick tip. If you are going to do a tutorial make sure you click on EVERY node you are using so that we can see what your settings are. It can be quick. We can pause. But if you skip nodes it makes the tutorial far less useful. Great apart from that! I really do think if you did that your tutorial would be perrrrrrfect.
@felipe_ai
@felipe_ai 5 жыл бұрын
Hello can I ask for the expression on the delete sop, when you are deleting the non middle points, in the keep centers by curveu section, thanks a lot, this is all very helpful :)
@ribponce
@ribponce 5 жыл бұрын
Hey, glad you like it! We keep only the middle points with the expression @curveu==0.5, and make sure to delete non-selected.
@felipe_ai
@felipe_ai 5 жыл бұрын
@@ribponce fantastic!! thank you so much!!
@mikelambert6304
@mikelambert6304 5 жыл бұрын
What is the VEX expression used to set the normals of the floor (in the "set_n" attribute wrangle)? Great tutorial overall!
@mikelambert6304
@mikelambert6304 5 жыл бұрын
would you consider making this part of your scene file available for download? I'm running into a few issues that I can't seem to resolve. Thank you!
@AlecChalmers
@AlecChalmers 4 жыл бұрын
@N=set(0,1,0);
@ribponce
@ribponce 4 жыл бұрын
Hey, yes I’ll make this shape generator available soon. Thank you for your interest. Cheers!
@mikelambert6304
@mikelambert6304 4 жыл бұрын
@@ribponce Thanks again, Ricardo - Looking forward to digging in
@AlecChalmers
@AlecChalmers 4 жыл бұрын
Like someone mentioned below, I too and running into trouble with the VEX expression used to set the normals of the floor (in the "set_n" attribute wrangle)?
@ribponce
@ribponce 4 жыл бұрын
Hey! Yes, so it's just a simple line to set the normal to a up vector. It goes @N=set(0,1,0); Cheers!
@AlecChalmers
@AlecChalmers 4 жыл бұрын
@@ribponce Thank you for the reply. I have learned so much about Houdini by just powering through this tut.
@ribponce
@ribponce 4 жыл бұрын
Really appreciate the kind words, I’m glad you could learn something from it. Cheers!
@ShubhamGupta-lu6gf
@ShubhamGupta-lu6gf 4 жыл бұрын
Hey can you please help me from where to start this procedural modeling, I'm not new in houdini, I do grooming and rendering in houdini, but I love to model and I do in maya, in houdini I always wanted to but due to its complexity and my tight schedule I wouldn't able to do that, but now I Wana get my hands into houdini vex and procedural modeling. I Wana learn from scratch, please help suggest me tutorials for that paid un paid doesn't matter...
@Lynndarro
@Lynndarro 5 жыл бұрын
Hi~ First of all thanks a lot for sharing this video, that's awesome~! I'm fresh new to Houdini. At the 07:35 of the video you typed "point(-1,0,"index",0)", but I checked the doc and found something like this :"point(surface_node, point_number, attribute, index)". So I was confused what does your "-1" stand for. Could you pls enlight me a bit? I know it must be a very stupid question though...
@ribponce
@ribponce 5 жыл бұрын
Hi, yes so the -1 refers to a spare input. If you click the small gearbox on the top of a parameter window, there is an option to add a spare input. Essentially, it creates a string parameter on a node which can be "accessed" from within a function on that node by typing -1, instead of referencing the path to that node manually (which would be something like "/obj/geo1/foreach_begin1/", or similar). So when the function runs and encounters -1, it understands you mean the spare input, and uses that string instead. It's just good practice to organize things this way, but also a matter of preference. Hope that helps, cheers!
@Lynndarro
@Lynndarro 4 жыл бұрын
@@ribponce Ahhhh... Understood. That's pretty cool! THANK YOU so much for this tip and everything you shared, all my best best wishes~
@gabrielepardi5178
@gabrielepardi5178 Жыл бұрын
Honestly the most important things was the shape generation which, unless I am missing something, it has been skipped. Maybe do have I missed something?
@stevensilcock
@stevensilcock 5 жыл бұрын
Hi Ricardo, excellent video. I'm using H17.0.459 and when I insert opinputs("../switch1/") in the "Max" parameter, I get errors on all the nodes below, including the set_index attribwrangle node (foreach_begin & end, copytopoints plus the switch nodes. The message is the same for all & reads: " Error Invalid source /obj/geo1/set_index/attribvop1 Error: Unable to evaluate expression (Unknown function in expression (/obj/geo1/set_index/max)).. ". I'm relatively new to VEX & for some reason really good at getting errors, even though I follow along as closely as I can. Indie-Pixel can vouch for me on that one....lol. You wouldn't know why this is happening, would you?
@stevensilcock
@stevensilcock 5 жыл бұрын
Ah ha, I should have gone to specsavers! It helps if you use "opninputs" instead of "opinputs". I had to go to 1080 HD to see that sneaking little "n". Working now! Now I can watch the rest feeling a lot more content;-) Cheers.
@stevensilcock
@stevensilcock 5 жыл бұрын
Pretty dam cool. That's all I got to say. Thanks Ricardo.
@ribponce
@ribponce 5 жыл бұрын
Hey, I’m glad you worked it out. I just double checked and it works in H17 the same. Exactly, opninputs! Alternatively, you can also download the example scene file, link on the description. Cheers!
@fr8kouthead
@fr8kouthead 5 жыл бұрын
Hi, im new to Houdini, I would like to know about your procedures with mapping the seed to your timeframe slider. Thanks
@ribponce
@ribponce 5 жыл бұрын
Hello, you can achieve that by simply adding the global variable $F to any rand() channel expressions. If it's inside a vex snippet, however, you have to use @Frame. Both will refer to the current frame number, and is very useful for quickly changing random seeds during development. Cheers!
@fr8kouthead
@fr8kouthead 5 жыл бұрын
@@ribponce $F worked! thank you so much :D
@DeadLineGame
@DeadLineGame 3 жыл бұрын
Hey sorry to bother you, I wanted to ask the settings of both attribtransfer2 and delete from 19:08, because all my points are getting deleted when I use delete, even when selecting curveu
@ribponce
@ribponce 3 жыл бұрын
AttribTransfer you select the curveu attribute on points, distance threshold set to 0.1, and Delete node you set Group to @curveu==0.5, delete non-selected points.
@DeadLineGame
@DeadLineGame 3 жыл бұрын
@@ribponce thanks for the fast reply, you may just have saved my college degree
@arsensuleymanov7935
@arsensuleymanov7935 3 жыл бұрын
How to make this kind of inteface so that the panel with parameters occupies only right top corner?
@ribponce
@ribponce 3 жыл бұрын
If you press P in that context a Parameter interface will pop up.
@arsensuleymanov7935
@arsensuleymanov7935 3 жыл бұрын
@@ribponce thanks!)
@christopher8116
@christopher8116 5 жыл бұрын
Up to this point kzbin.info/www/bejne/g6ipcoWXlrl_jZY I can't get the multiple platonic to display, rather only one platonic; everything is done exactly ?
@ribponce
@ribponce 5 жыл бұрын
Hey, have you tried taking a look at the scene file, see if you maybe missed something? Remember to set the 'id' attributes beforehand, and to properly use the point function on the Switch node. Hope you can sort it out, if not let me know. Cheers!
@christopher8116
@christopher8116 5 жыл бұрын
@@ribponce Have you considered a tutorial on creating buildings; or how did you learn how to create ?
@christopher8116
@christopher8116 5 жыл бұрын
@@ribponce Where is the scene file, it appears hidden ?
@anarkijex
@anarkijex 5 жыл бұрын
first rule of tutorials, what are we trying to achieve?
@ribponce
@ribponce 5 жыл бұрын
Hey, maybe I wasn't very clear in the beginning of the video. It's about a very handy technique for copying random unique primitives to points, but thanks for the feedback. Cheers!
@anarkijex
@anarkijex 5 жыл бұрын
@@ribponce I mean, at least you can show the result before diving in the hows and whys.
@abcd35440
@abcd35440 3 жыл бұрын
Are you designer of agne font ?
@ribponce
@ribponce 3 жыл бұрын
Yes, I am. Used to do a lot of graphic design, typography and branding in the past.
@hkg35
@hkg35 5 жыл бұрын
Nice tutorial, and I have another option for "copy to points" for variant objects by using "copy to stamp" and feedback the stamp() to control "switch" node example video: kzbin.info/www/bejne/mZbMgXWbpKl0qbM sorry for non-English video
@ribponce
@ribponce 5 жыл бұрын
Thanks for your comment! I'm glad you find it useful. Of course, as always, there are many ways of approaching and solving problems. My personal preference is to stay away as much as I can from copy stamping. This technique was widespread for a long time, and you still see many old tutorials using it, but a lot of things changed in the past versions. Apart from being much less optimised, the way it works feels simply wrong to me. Check out this page how Matt explains it, I couldn't have put it better myself: goo.gl/1BCWLv But then again, it always depends on what you're trying to achieve. Cheers!
@massimobaita7178
@massimobaita7178 5 жыл бұрын
Thank You very much, Ricardo.
Procedural Columns in Houdini with Render (by Arise.Works)
2:44
Igor Backstrom
Рет қаралды 482
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 20 МЛН
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53
it takes two to tango 💃🏻🕺🏻
00:18
Zach King
Рет қаралды 28 МЛН
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 9 МЛН
The Smallest Holes Adam Savage Has Ever Machined!
21:49
Adam Savage’s Tested
Рет қаралды 168 М.
AI’s ‘Her’ Era Has Arrived
12:23
AI Uncovered
Рет қаралды 15 М.
I Turned 1-Star Toys into Military Nightmares
19:32
William Osman
Рет қаралды 977 М.
Alien Megastructure Candidates - Not as Crazy as it Sounds!
6:29
Sabine Hossenfelder
Рет қаралды 140 М.
Engineering Physics - Semiconductors -Energy band formation
23:09
Houdini Algorithmic Live #110 - Flying Spine
3:38:43
Junichiro Horikawa
Рет қаралды 155 М.
2 minute House Generator || Houdini Tutorial
2:28
Simon Houdini
Рет қаралды 126 М.
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 20 МЛН