DBaciu Posted October 27, 2010 Share Posted October 27, 2010 Hello everyone! This is my first Houdini challenge. I decided to enter the challenge because it's a great motivation to learn. First of all, I'm new to Houdini (in the last, I don't know, maybe two months I tried to learn it and I think I made a lot of progress). I tried to get a grasp of Houdini several times in the past, also, but to be honest, it was brutal. Maybe my general 3d skills was not enough for it. But now I'm beginning to think that Houdini is the most beautiful 3d application. About the challenge, I want to make some city, some megalopolis, in the style of some of the images from the reference section. Another source of inspiration for me is the great movie "Metropolis". Because I tried so hard to understand the procedural work-flow of Houdini (this was the point anyway) I forgot about the contest, so maybe I'm a little late with my work for it. So, this is what I have for now. I tried to do everything in a procedural manner, and believe me, it really is. I hope you like it! Thank you! Quote Link to comment Share on other sites More sharing options...
Theis J Posted October 28, 2010 Share Posted October 28, 2010 First of all, I'm new to Houdini (in the last, I don't know, maybe two months I tried to learn it and I think I made a lot of progress). Looks awesome! Good start. Looking forward to see your project. Quote Link to comment Share on other sites More sharing options...
LEO-oo- Posted October 28, 2010 Share Posted October 28, 2010 Nice - hope to see more soon! Good luck! Quote Link to comment Share on other sites More sharing options...
DBaciu Posted November 5, 2010 Author Share Posted November 5, 2010 Hello everybody, and thank you for your comments! I'm back again with some progress. I tried to figure out the materials and mapping work-flow in Houdini. Also I tried to make a good composition with what I have so far. Quote Link to comment Share on other sites More sharing options...
primzahl Posted November 5, 2010 Share Posted November 5, 2010 hey, that looks pretty awesome. Quote Link to comment Share on other sites More sharing options...
DBaciu Posted November 11, 2010 Author Share Posted November 11, 2010 Hello again everybody! I have nothing really new to show you, just some atmosphere tests I've done. The fist one uses v_uniform fog, and renders pretty fast. The second one uses v_litfog. Looks good, but renders very very very slow. Maybe I'm doing something wrong, please, somebody can help me? Also, I have another issue in which I need some help: How can I join some shapes that I obtained by using curvesect? Specifically I intersected some circles with a polygonal face. I obtained lines and circle segments but I cannot join them back into a polygonal surface. I cannot extrude them or anything else. I thought that by applying a fuse they end points (which are, in pairs, in the same place) will fuse and all will become a polygon but this is not the case. Also, how can I sort the points on some curve obtained by joining other curves (other than sorting them Before join). I mean I want to choose some point on the curve which is point 0 and sort all of them in order, increasing they number until I get back on first point, so I can sweep something correctly on them, for example. Thank you! Quote Link to comment Share on other sites More sharing options...
DBaciu Posted December 21, 2010 Author Share Posted December 21, 2010 Hello guys! Time for a little update. Nothing spectacular (visually)... I worked hard to implement the Straight Skeleton in Houdini. This is an algorithm which can be used (among other things) to define the roof of a building. It can draw the sides of a roof of a building with perimeter defined by an irregular polygon. As you can see in the images below, every side has the same slope and also the intersections of the sides are taking care of. I have some problems with it and I'm still working. I have a big question for Houdini masters out there: is there a way to take the output of a network (some polygons) and put it through the network again, in a conditional loop? I think this algorithm is a piece of cake to implement in Python, but this is beyond me and my knowledge (yet). Quote Link to comment Share on other sites More sharing options...
DBaciu Posted December 21, 2010 Author Share Posted December 21, 2010 And this is a more complex shape, which, unfortunately, failed to solve completely. There are some particular cases that will make my algorithm to fail. I have to work some more on the algorithm. Quote Link to comment Share on other sites More sharing options...
pclaes Posted December 23, 2010 Share Posted December 23, 2010 I have some problems with it and I'm still working. I have a big question for Houdini masters out there: is there a way to take the output of a network (some polygons) and put it through the network again, in a conditional loop? I think this algorithm is a piece of cake to implement in Python, but this is beyond me and my knowledge (yet). A foreach with "merge results" turned off can do this for you. After looping through the network the first time, it will feed the resulting geometry back into the start of the network... and so on untill the final for value is reached. --> this works well with "for(i<10)" scenarios, I have never set up a while loop with it. If you do need a while loop (eg. while (polygon count < 500) do subdivide ) I would consider setting up a write frame out, read previous frame in type of loop (using file sops). And simply press "play" and have a python command to stop playback when the end condition is reached. feedback sop/sopsolver could be options too. I think sopsolver is faster than the write out/read in loop as it does not necessarily need to write the intermediary steps to disk, perhaps only the final result. (You can do this by setting a geometry rop to write frame 100 out of 100 to disk - it will simulate frame 1-99 first and then write out 100.) If the loop is small and the operation is not too heavy I would just use the foreach with enough iterations (depending on the operation perhaps 20 to 50 loops) so you get the result you need. If you need more than 100 loops a sopsolver would be better as you then can interrupt the calculation and continue it another day. Quote Link to comment Share on other sites More sharing options...
DBaciu Posted December 23, 2010 Author Share Posted December 23, 2010 A foreach with "merge results" turned off can do this for you. After looping through the network the first time, it will feed the resulting geometry back into the start of the network... and so on untill the final for value is reached. --> this works well with "for(i<10)" scenarios, I have never set up a while loop with it. Peter, thank you very very much for your kindness. Foreach seems to be the answer, but I have one more question for you (maybe for the others also): I want just a part of the geometry generated in one iteration in Foreach SOP to be redirected to be processed again in the loop. The other part not (in fact the other part is the part that interest me and I want it untouched and added together with the ones from previous iterations). As for the Feedback sop, oups, I don't know what to do with it... Quote Link to comment Share on other sites More sharing options...
pclaes Posted December 29, 2010 Share Posted December 29, 2010 I want just a part of the geometry generated in one iteration in Foreach SOP to be redirected to be processed again in the loop. The other part not (in fact the other part is the part that interest me and I want it untouched and added together with the ones from previous iterations). As for the Feedback sop, oups, I don't know what to do with it... A simple example could be making a procedural snowman with the foreach. There are three balls that diminish in radius as the amount of iterations goes up. The bottom ball doesn't need anything added, the middle ball needs arms sticking out and the top ball (smallest) needs a face and a hat on top. ( $FORVALUE is replaced with stamp("..","FORVALUE",0) ) If you assume the biggest ball will be the first one ($FORVALUE==0) you could implement something like: radius: fit($FORVALUE,0,2,10,3) -> using a fit function is convenient as you quickly remap that integer of the FORVALUE to a float with much more precision. (You can also use the $FORVALUE as a seed for a random function for a custom vop). You also know the middle ball: ((0 + 2) /2)=>1 so you can put in a switch: if($FORVALUE==1) So it switches to add the arms that you object merged into the subnetwork inside the foreach. In the same way you can switch: if ($FORVALUE==2) to object merge in some geometry for the face and merge it together with the current ball and the previous balls coming from the "each". --if you want to make it more procedural so you have a snowman with 4,5,6,... balls, you can use the start and end values: ch("../numrange1") represents the startvalue, ch("../numrange2") represents the endvalue. So now your fit function becomes: fit($FORVALUE,ch("../numrange1"),ch("../numrange2"),10,3) So to really answer your question: with object merge you bring in external geometry and you merge it with the geometry that has already been going through your network. You can use groups to maintain different streams of geometry, but I find working with groups becomes very slow very quickly. -- Same with expressions... that's why I mentioned the vopsop and the $FORVALUE as a seed. If you have to evaluate a fit expression 100 times versus execute a vopsop fit function 100 times the vopsop will be faster. So where you can put your math in vops, do it. Quote Link to comment Share on other sites More sharing options...
DBaciu Posted December 30, 2010 Author Share Posted December 30, 2010 (edited) Peter, thank you for your time. I already solved this problem (at least relative to my particular need). I did it with some grouping before the foreach. My roof is constructed by extruding with the same value for the height and inset. This results in some slopes and one or two flat surfaces, which must be processed further in the same manner. So is an iterative process. You can see it in the image below. I still have some problems with some particular cases which results in errors, but the initial shape of the house must be really twisted for them to occur. For simpler shapes it works just fine. Edited October 4, 2012 by Bandaciu Quote Link to comment Share on other sites More sharing options...
DBaciu Posted January 15, 2011 Author Share Posted January 15, 2011 Hello guys! I'm not sure about the finish time for this contest. I am a little late with it, I spent some precious time on things that, while entirely superb, are not that useful for my entry, such as the straight skeleton algorythm I was talking about earlier So, I'm trying to figure out a composition for my image... Quote Link to comment Share on other sites More sharing options...
kgoossens Posted October 28, 2011 Share Posted October 28, 2011 And this is a more complex shape, which, unfortunately, failed to solve completely. There are some particular cases that will make my algorithm to fail. I have to work some more on the algorithm. You did these without a forloop? Quite impressive! 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.