mara_91 Posted February 14, 2021 Share Posted February 14, 2021 (edited) Hello, I'm learning houdini and so far I'm loving it but I'm having a problem to understand a concept of manually editting something that has already been generated. I guess this could be quite a common use-case but I haven't found solution anywhere so I'm trying to seek help/guidance here: I am working on procedural generation of buildings from their footprints. To simplify, I have a geometry node in which I have a foreach loop SOP that iterates over footprints (primitives) and extrudes them based on their height attribute. Now, is it possible to select a specific footprint and change its height attribute so that this specific footprint will be extruded by different amount? What I'm trying to achieve is that user is able to select any procedurally generated building and adjust/override its default/random parameters like height, roof type, texture... and after that - this building will be re-generated reflecting these changes (while other unchanged buldings won't be regenerated to speedup this process) Does houdini provide such functionality? Or are there any best practices how to approach this problem? Thanks Edited February 14, 2021 by mara_91 Quote Link to comment Share on other sites More sharing options...
anim Posted February 24, 2021 Share Posted February 24, 2021 On 2/14/2021 at 4:54 AM, mara_91 said: What I'm trying to achieve is that user is able to select any procedurally generated building and adjust/override its default/random parameters like height, roof type, texture... you can modify attributes as you want on your footprints geo using Attribute Adjust nodes or Attribute Expression, Wrangle, ... just specify group, ideally in a procedural based on attributes they contain way like: @name=buildingA* also your extrude doesn't have to be in forloop it should pick up your height attribute per primitive On 2/14/2021 at 4:54 AM, mara_91 said: and after that - this building will be re-generated reflecting these changes (while other unchanged buldings won't be regenerated to speedup this process) if you want them to be independently regenerateable, you may need to do it in TOPs, where you'd have footprint for each building as a separate workitem as well as all the attributes you care about, then next step can be editing of some and next would be building generation, TOPs can be regenerated per workitem without affecting unchanged ones, it may be trckier to setup and manage though 1 Quote Link to comment Share on other sites More sharing options...
mara_91 Posted April 26, 2021 Author Share Posted April 26, 2021 Thanks for a reply and sorry for my late reply using wrangle could work but I'm expecting to edit multiple attributes of each building so there would be a lot of code to write and having some kind of menu would be way more user friendy - I discussed this topic and this solution here as well. If you have time, please have a look at it. Just to clarify, It doesn't need to be inside foreach loop it can be on the begining on the node - just a way how to define/override certain attributes (that are initially randomly generated) for certain footprint represented by a primitive inside a geometry node where many of these footprints/primitives are... Using TOPs from PDG looked promising (from the official description from sidefx site) - I spent a lot of time on it - trying to figure out how does it work but I haven't found many tutorials on it - most of tutorials for PDG are for wedging (meaning for randomly generating multiple variants from one geometry - and then picking one of it - unfortunatelly this is not my use case). I also found out PDG/TOPs is quite slow compared to pure vex (simple extrusion took ~5min for 5footprints whereas I'm able to genereate ~130 buildings fully with interior together with location in under 7seconds) but maybe I'm not usining it correctly.. Can you please recommend me a good source for TOPs tutorial? I was only able to find ones below: this one together with pdf on houdini side - but it is not much in-depth and I dont understand where to manually override parameters of certain primitive + It doesn't work on h18.5 which has been confirmed by Robert Magee himself and this second one looks more in-depth and even uses unity but I still dont understand where to manually override parameters for certain footprint/primitive and I would like to avoid any 3rd party programs to avoid potential problems due the setup for unity+houdini is not that easy and creates room for more problems and potential performance issues with lots of geometry in the future Quote Link to comment Share on other sites More sharing options...
Fenolis Posted April 29, 2021 Share Posted April 29, 2021 You could have a simple asset containing a group and wrangle that modifies the "height" (primitive) attribute of your footprint primitives, then in your PolyExtrude's distance have a value of 1, go to the Local Control tab and use "height" as your distance scale. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.