Well, I think I got the handle on Polygon.sub-d SOPs!

   35822   30   1
User Avatar
Member
436 posts
Joined: July 2005
Offline
Love modeling sub-d characters in this app. Now that I figured out how stitch works, with some help from here, NURBS are OK in Houdini. Though being subjective, I think that NURBS are more easier to model in Maya and Rhino. Those two are considered standards as far as NURBS modeling. But Houdini blows Maya away in sub-div modeling. I am prepping my new modeling only reel. Finished the cthully centaur, also for quite some time I've been working on my a reference female sub-d model. The intent is to have a generic ‘average’ human female sub-d that I re-target to look like particular female talent, real or imagined. So regardless what kind of digital female I may need (please no snide remarks ), whether slim and tall, or ugly and fat, all I need to to reposiition the points of the cage as needed. She is all quads, so her cage can be re-targeted in almost any sub-d suppourting app. The most important ones to me are Houdini, Maya, and Lightwave. But I foresee no problems with her cage in XSI or MAX. I am still developing her geometry and topology.

Here are URLs
Finished centaur:
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=6685 [sv2.3dbuzz.com]

Reference female:
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=6684 [sv2.3dbuzz.com]

David Rindner
User Avatar
Member
40 posts
Joined: July 2005
Offline
I must say I am thouroghly impressed with your work; all I can say is keep up the good work, and hopefully sidefx will work on the NURBS modelling tools. I myself am still just trying to do basic modeling.

-capin_crunch
cheers
User Avatar
Member
436 posts
Joined: July 2005
Offline
Well what can I say? SideFX got sub-divisions right on. Obviously they did their research, looked at competition. I think they consulted PIXAR on sub-d and Renderman. The poly tools for cage construction work as they should. Houdini works correctly with complex polygons. Ever try to model with 20 point concave polygon in Maya, LW, or MAX. UHHHH.
There are some minor points for improvement, but due to my lack of experience with Houdini, I may simply be missing out on them. The #1 issue with polygonal modeling tools is the apparent lack of poly-bevel tool. I tried using PolyExtrude SOP woth inset options, and its not the same thing. I can't say I have much good to say about Maya's PolyBevel, it messes up geometry big time, on complex (5+ point) polygons. So I would not reccoment to SESI to immitate Maya in this regard. The polygon tools they should take a look at are in an app called formZ. Now those guys got polygon beveling and polygonal modeling done right. But they don't have the workflow of Houdini, and they don't have transform along normal like Houdini. But their polygonal beveling is right on.

If I had things my way, I would have Houdini immitate NURBS tools in Rhino and Alias Studio , and some Maya, but with their unique SOP appraoch. Not many realize this, but AW downgraded Maya's modeling from what was in Alias Power Animator 9. For example there are no curve networks, also known as Gordon's surfaces, in Maya. For pure NURBS modeling I would take the now obsolete Power Animator 9, or ALias Studio over Maya.

Anyway here how I would have curve networks implemented in Houdini.
Speaking from technique and workflow POV.
Step 1. The user creates source NURB curves. Sence curve networks are basically curve arranged in a grid, the user would have to pay attention to how the source curves are positioned. They should be snapped to each other.

Step2. The user creates two Merge SOPs. One for U curves, second for V curves. All curves going in U direction are piped in their placement order into 1st Merge SOP. All curves in V direction are piped into 2nd MErge SOP in their placement order.

Step three. Curve Network SOP is added. Merge #1 is piped into 1st input, Merge#2 SOP is piped into 2nd input of Curve Network SOP.
As soon as CurveNet SOP detects all inputs it generates the NURB surface.

My second suggestion. Some SOPs should be reduntantly icnluded as options in other SOPs. Eliminating the amount of SOPs in network.
Reverse SOP should also be an option for any just about any other SOP.
Convert also. Lets say the output of a SOP is a NURB. So instead of calling a Convert SOP to convert NURB to polygons or Bezier, that option should be in every SOP that generates NURB. That does not reduce the need for having Convert and Reverse SOPs as separate tiles, but it adds convenience to the user.

There needs to be more NURBs derivatives tools. For example we should be able to extrude an edge of NURB surface. So far I have not figured out, except with Stitch, how to use existing surfaces to create other surfaces.

Finally I would love more unification of modeling tools. This is really a matter of preference among users. Mine is that there should be only ONE Extrude SOP, and it works on everything the same way, while adjusting automatically to different type of geometries. There should not be a NURB Extrude SOP, Bezier Extrude SOP, and PolyExtrude SOP. One SOP should handle all extrusions. You can extend this logic to all derivative tools.

Dave Rindner
User Avatar
Member
436 posts
Joined: July 2005
Offline
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=6702 [sv2.3dbuzz.com]

I did this model recently for RADIUM for use on VW spot. It was animated, by RADIUM, in Maya 4.5 and I delivered it in Maya format. But I modeled it in Houdini. as RADIUM uses both. What this model is, is a complex character that is a cross between tumbleweed and dafidil flower. Each of those appendages, stalks, and there are 74 of them, are like compressed tentacles with large sucker. Inside the sucker is a highly detailed model of the VW Bettle GT rim. I modeled the rim initially as NURBS. I did not have any manufacturer's files, onlly photos. I modeled the body which is composed of spherical core and 74 tentacles as sub-division surface. This was harder then enivisoned. I originally planned to simply make a NURB sphere then blend each of the stalks using NURB sur2surf blending. But it was not meant to be. The director and CG super weanted a more organic look, and simply blended NURB stalks were looking rather mechanical.
Enter Houdini's sub-divs. The thing with sub-divs, regardless of apps, I know I can do it even without thinking what it will end up like. Sub-divs are like 2nd nature to me.
So I model a single stalk as a sub-div. Along the way i converted the NURB rim into sub-divs, so the seal between the edge of the sucker and rim were watertight. Thats the advantage of sub-divs over NURBS. If cage edges are mated, you are 100% guaranteed airtight render geometry. having stalk and wheel rim being different object simplified rigging and texturing in Maya a lot, down the line. The rim itself is composed of bunch of sub-objects. What you have here is a soft body that is hokding onto a hard surface geometry. With Houdini's sub-ds that matching of soft and hard was fairly painless.
Next the complete stalk (with rim) is Source SOP'ed into another Geometry node. In that new node I created 74 appendages using Mirror SOP. Each of the 74 Mirror SOPs did not include the original, was centered around 0,0,0 origin, and had different angles. By draging the handle I was interactively placing each of the stalks along an imaginery spherical surface. The inner core had yet been created. To keep the organic and unique nature of this character, the distribution of the stalk was not orderly. I only eyeballed the distances between the stalks. Director's guidance was to limit the inbetween space as much as possible. I traded few OpenGL grabs with him and CG super at RADIUM, to nail down the number of stalks. This was important to the next step.
Next was to create the inner core. This I did by simply bridging similar points on neighboring stalks. This was most time cosuming part of the modeling proccess, and I had restart the core couple of times, becouse, wouldn't you know it, the finalized # of stalks kept kreeping. The end result was that the body of the character was one contigious surface.
The individual stalk bodies were themselves carefully modeled to account for the fact that they would stretch and contort durong animation. The entire body surface was a large dense grid. This gridlike topology made rigging in Maya easier proccess.
Into Maya.
The body was exported as wuad cage object in OBJ format so it retained its UVs. UV't took some time to optimize but Houdini's UV tools are par-execellence. Basically the stalk had optimized cylindrrical projections, while the inner core cage polygons had unwarapped UV's
Each of the part arrays of the wheel were exported as OBJs. Sence individual parts had their own UV's. Houdini's Mirror SOPs simply propagated the UVs across the entire array.

In Maya each of the cage meshes was converted into Maya's own sub-divison surfaces. As both Houdini and Maya Unlimited use Catmull-Clark as their basis for sub-division. I was able to test the smooth version in Houdini by using Sub-Divide SOP or by rendering the cage.

So my hats of to SESI team for developing such nice peice of software.

Dave Rindner
User Avatar
Member
51 posts
Joined: July 2005
Offline
hey david
you really seem to have picked up houdini really quickly and using it in production already, good stuff!!
also good to hear you are having such success with the poly tools.
and yes a bevelSOP is very much missed!! i am wishing it will appear in ESCAPE…, since that it taking so long to come along, and i did hear that some extra goodies are to be appear for it.
also what i wouldn't mind seeing -
a toggle for transform/peak to be an option for world translations of polyExtrude, again very much missed.
User Avatar
Member
7714 posts
Joined: July 2005
Offline
David: Good stuff!

Betty: Doesn't PolyExtrude already give you a long handle for the normal of the face already?
User Avatar
Member
436 posts
Joined: July 2005
Offline
Yes it does. But as I said PolyExtrude SOP is not same as bevel. There is no edge and corner vertex mitering. Thats the key.

Dave Rindner
User Avatar
Member
12448 posts
Joined: July 2005
Offline
David: Playing around more and more withj sub-d's myself, I agree that it might be handy to have some of the functionality of other modelling SOPs included (reduntanly) into certain operations. I found after being very disrespectful to a certain model, I ended up with a fair number of degenerate (zero-area) polygons. The Subdivide SOP could automatically check for these type of bad cases (maybe with a switch so that the perfomance doesn't always having to hindered by such checks) and suggest you correct the problem - to the exent of having “Remove Degenerate” also inside the Subdivide SOP.

What do you think?
Jason
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
51 posts
Joined: July 2005
Offline
edward n david,

i can't seem to find this peak handle.
if i have a box and select three sides which are connected and choose the world option for transformations, i don't seem to be able to transform them by their individual face normals.
can you let me know where this option is as i cannot find it, but i do notice it there in the editSOP for instance. but even then it seems to act weird.
say i pick the top and right side faces and do an edit. i then choose peak for my transform, when i move them in and out. i notice that the faces no longer maintain their original perpendicular orientation to the peak handle.
i am not saying it shouldn't do this, ( well maybe i am ) but i guess i don't expect it to behave this way. i would expect it to maintain it's orientation and just move in the direction of its normal

does this make any sense.

an example of what i am looking for in peak polyextrude in world xform -

*put down a box
*then select the polys that are associated with the closest top right hand point.
*now toggle into world transform
*set translate xyz to 0.1
*set scale xyz to 1.2

see how it is still an equal sided box, this is what i would expect a peak transform to do for me. i simply can't find it, so if you may let know where it is i would be most grateful. at the moment a can only find one handle and it doesn't do what i just described above.

thanks.
b
User Avatar
Member
436 posts
Joined: July 2005
Offline
Yo! Jason. Being in So.Cal, you shoud know better then to be disrespectfull to a model. Anyway in Houdini, if you suspect zero area polys, just call up the Fuse SOP, and set distance to .001. That SOP is like snake oil to problem poly-meshes and sub-d cages. In general I try to keep my cages as all quads. A triangle here and there is allright, but I don't want to have any complex polys lying about. Theres a practical reason to this. Houdini's sub-divs have complex polys GREAT, but that cannot be said for the ol'faithfull, Lightwave. It cannot hande 5+ vertex polys, so if you import cage with complex polys into LW, and TAB it, you'll get an nasty reminder from Lightwave about having only 4 and 3 point faces. You'll get even nastier holes in your geometry. Kapish.
Maya is ok with complex polys. But as we all know, imported OBJs tend now to be convertible to sub-d with Convert>Polygons to Sub-divisions. You have to run them through Poly clean up first. Now when you do that to a cage with complex polys, either cage will remain the same or it might change a little. Not much but enought to effect the final topology of the sub-d model which will change the UV vertices. Now if you have previously handed the model to paint/shader guys, but the rigging crew is working in Maya with same model that has different UVs, well you see, one of them is going to sorely disappointed some time down the line when the textures don't line up. So to prevent any frakas of any kind, I keep the cages with quads and use triangles only where absolutely its impossible to have quads. That way the sub-division in Houdini will be identical to sub-division in Maya and same as sub-division in Lightwave.
In my comparrsion tests, Maya's and Houdini's frozen sub-d derived meshes are identical, and renderings of analytical sub-division looked same. So I see no reason do doubt my thinking that give the same cage, Houdini 5.5 and Maya 4.X will generate the same model. Definatly usefull if you're doing a show in both apps with same datasets. The frozen meshes of Houdini and Lightwave are very close, but not the same given same cage. The difference is very small. I am not sure if its Houdini export or LW import thats shifting the vertices ever so slightly. Could be a tolerance issue. But Lightwave retains UVs applied by Material SOPs, so both models will map the same. I don't have any appreciable experience with Renderman, but I see no reason why Houdini created model cannot be animated in Houdini and Lightwave provided the rendered frames are not in same sequence.

Sure would like to work where you work!

Dave Rindner
User Avatar
Member
436 posts
Joined: July 2005
Offline
Hi Betty

If you are using Edit SOP, select vertices, RMB, then press ‘y’ key. You'll see a red ‘normal’ vector eminating from selected vertices or other primitives. Just drag pointer along the vector. You can then control soft range with slider or in properties box. Lord, I wish the range slider was somehow accessible by keyboard short cut.

Dave Rindner
User Avatar
Member
7714 posts
Joined: July 2005
Offline
Hey David,

You can. Notice how there's a red outline in the Soft Radius paremter? That means that there is a “invisible” handle in the viewer associated with the parameter. So to change that, find some empty space in your viewport and middle-mouse drag to change your radius.
User Avatar
Member
22 posts
Joined: July 2005
Offline
There is no edge and corner vertex mitering. Thats the key.

Oh boy do I agree!
In my experience with facial modeling for example, I will frequently select a continuous loop of edges around my model's mouth and bevel them in a global mode to create additional edge loops. This ends up looking a bit like the Orbicularis muscle structure around the mouth. I do similar edge beveling all over my model and I believe working like this is crucial for most modelers. I've been doing this in houdini using the split poly SOP and it takes much more time and effort to get it right.

Anyhow, if anyone has suggestions on using the existing tools more efficiently here, let me know please.

I must say though, that even lacking a tool for beveling edges, Houdini is the best and most flexible modeler going. The interface is as elegant as it gets in this business.
User Avatar
Member
436 posts
Joined: July 2005
Offline
Thats an interesting approach. I'll have to try it. I generally don't use beveling in cage construction. The reason I want real polybeveling is for modeling digital miniatures. By miniatures I mean CG models of stuff that is traditionally thought of as physical miniature models. Things like ships, trains, planes, autos, building, and everyone's favorite spacecraft. For building film and TV based miniatures, the general rule is: Leave no edge unbeveled, leave no corner sharp. Small beveled edges add shading normal to the corners and let spec highlights bounce off, resulting in more realistic shading. For mated hard surfaces, having two bevels forming a trough, creates a shadow accumulator, adding to the more realistic shading of the model. If time allows, building a parralel segment chain belt near the beveled edges, spreads the smoothing more naturally.
A small trick that I use for high frequency models, like spacecraft covered in gribbles or nurnees, is to set their smooth shading attribute between 15-25 degrees. High smooth shading angles actually dereases the quality of the shading. You can see that in subtle darkening as the surface shading approaches a precipice edge.
Now wioth Houdini and PRMAN, some intersting stuff is possible. When I figure out how to do it. According to Advaced Renderman (Apocada and Gritz) and PRMAN 3.2 spec ( http://www.pixar.com/renderman/developers_corner/rispec/rispec_pdf/RISpec3_2.pdf) [pixar.com] each edge on polygonal dataset and on sub-division primitive can have its own smooth angle. Houdini and PRMAN also allow ‘weighing’ of sub-d cage points like with NURBS.

Here are some of the hard surface models I have built over my career. Though the renderings were not made with Houdini, obviously, the concepts still applly.
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=3325 [sv2.3dbuzz.com]
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=2087 [sv2.3dbuzz.com]
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=527 [sv2.3dbuzz.com]
http://sv2.3dbuzz.com/vbforum/imgView.php?imgID=534 [sv2.3dbuzz.com]

Note that from every camera angle you see some highlighting of the edges, and on plated surfaces, there is both an edge highlight and shadow trough, all adding to more realistic shading. Those geometry features become more pronounced when used with distant lights that have raytraced shadows and GI. The problem with high frequency detail, and LS-1187 Starwolf, is best example of this, is that those linear high freq. data is very aliasing prone. The don't filter very well. The biggest problem with aliasing on high frequency data is when, in screen/camera space, the details travel slowly diagonaly to the camera. Those shots require more supersampling, or some superior antialiasing and filtering technology in the renderer. I am not a rendering TD, but as a modeler, I need to keep that in mind when constructing the model.

An aspect of a perfect world. No matter how badly you screw up the 3d, the Shake/Inferno guy can fix it in post.

Dave Rindner
User Avatar
Member
22 posts
Joined: July 2005
Offline
Excellent models. Is the car nurbs or sub-d?

I've encountered that brand of aliasing problem before. Also in a space scene. I've had success in battling that using brazil with outrageous sampling settings and LOTS of time. However I'd be screwed if it was anything but a short shot.
User Avatar
Member
51 posts
Joined: July 2005
Offline
ok i'll try and keep it simple as i think my post is misundestood or i simply can't do this.

forget the editSOP, i don't want to use this….i only mentioned it because it has a peak option for xforms.
now getting back to the polyextrudeSOP, where is the peak…so each face xforms according to its own normal while all faces are merged ( ie, world xform )

btw, the faces in editSOP don't really xform to their normal, some type of average is calculated or something because they lose their original orientation.

i hope this is clear?!
User Avatar
Member
51 posts
Joined: July 2005
Offline
hi Prophet
that's the way i model as well and use the bevel from the word go as i find it incredibly useful for so many things. these things may be basic and still achievable in houdini but they get done much slower.
you also mentioned edgeloops, well this is another thing that's missing edgeloop and edgering selection, (….not to mention shrink selection + a whole lot more..).
i actually think the poly tools have a long way to go, and i agree it's the houdini workflow that saves it and puts it ahead of most other poly tools.
i hope they clean this up for v6…..!!!
User Avatar
Member
7714 posts
Joined: July 2005
Offline
betty,

It seems like you want to extrude a set of connected faces each along their individual face normals but yet somehow keep them connected?
User Avatar
Member
51 posts
Joined: July 2005
Offline
edward
yeah,
that's what i was saying all along, peak selection for global xform ( sorry i was calling global “world” ) in the polyextrudeSOP
how do you do this???

and re: the editSOP what do you think of the suggestion that the poly faces maintain their original orientaion when translated in peak selection??
User Avatar
Member
7714 posts
Joined: July 2005
Offline
Well, imagine something like a pyramid with a height of 2 so that the four faces are not at 90 degrees to each other. So now we select the 4 faces surrounding the peak point. How do you propose that faces be extruded along their own normals so that they be kept together?
  • Quick Links