Procedural Modules | Houdini 16.5

Поділитися
Вставка
  • Опубліковано 15 лип 2024
  • ** 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 років тому +9

    Super rad! Nice shapegen! :-)

    • @ribponce
      @ribponce  5 років тому +4

      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

  • @pixel.network
    @pixel.network 3 роки тому

    so many things in such a short time, you opened my eyes! Thank you

  • @TheWillvoss
    @TheWillvoss 5 років тому +1

    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!

  • @massimobaita7178
    @massimobaita7178 5 років тому +1

    Thank You very much, Ricardo.

  • @hawnter99
    @hawnter99 5 років тому

    This is a great video, thanks for sharing!

  • @kylejennings819
    @kylejennings819 3 роки тому +19

    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.

  • @mdsanima
    @mdsanima 5 років тому

    Very nice stuff here!

  • @user-si9yf6sp6l
    @user-si9yf6sp6l 3 роки тому

    great stuff!! thank you so much;)

  • @4Neron
    @4Neron 5 років тому

    Great job there!

    • @ribponce
      @ribponce  5 років тому

      Thank you very much!

  • @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.)

  • @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 років тому +2

    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!

  • @TheMagic-les-Bean
    @TheMagic-les-Bean 4 роки тому +3

    @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 років тому +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 років тому +2

      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!

  • @terrythegnome2408
    @terrythegnome2408 3 роки тому +1

    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 років тому +2

    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 років тому +1

      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 років тому +2

    In the connect_dots wrangle, isn't "pt >= @ptnum && pt != @ptnum" the same as just saying "pt > @ptnum"?

  • @mikelambert6304
    @mikelambert6304 5 років тому +1

    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 років тому +1

      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 5 років тому

      @N=set(0,1,0);

    • @ribponce
      @ribponce  5 років тому +2

      Hey, yes I’ll make this shape generator available soon. Thank you for your interest. Cheers!

    • @mikelambert6304
      @mikelambert6304 5 років тому

      @@ribponce Thanks again, Ricardo - Looking forward to digging in

  • @AlecChalmers
    @AlecChalmers 5 років тому

    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  5 років тому +1

      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 5 років тому

      @@ribponce Thank you for the reply. I have learned so much about Houdini by just powering through this tut.

    • @ribponce
      @ribponce  5 років тому +1

      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 років тому +1

    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 років тому +2

      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 5 років тому

      @@ribponce Ahhhh... Understood. That's pretty cool! THANK YOU so much for this tip and everything you shared, all my best best wishes~

  • @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 років тому +2

      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 років тому +1

      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 роки тому +1

      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

  • @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?

  • @arsensuleymanov7935
    @arsensuleymanov7935 3 роки тому

    How to make this kind of inteface so that the panel with parameters occupies only right top corner?

    • @ribponce
      @ribponce  3 роки тому +1

      If you press P in that context a Parameter interface will pop up.

    • @arsensuleymanov7935
      @arsensuleymanov7935 3 роки тому

      @@ribponce thanks!)

  • @christopher8116
    @christopher8116 5 років тому +1

    Up to this point ua-cam.com/video/MwFARaaTLW4/v-deo.html 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 років тому +1

      @@ribponce I mean, at least you can show the result before diving in the hows and whys.

  • @abcd35440
    @abcd35440 4 роки тому

    Are you designer of agne font ?

    • @ribponce
      @ribponce  4 роки тому

      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: ua-cam.com/video/ceiPBeoDAsQ/v-deo.html
    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 років тому +1

    Thank You very much, Ricardo.