Jump to content
ofer

seams in NURBS surfaces

Recommended Posts

Hi!

Im doing some experiments with the NURBS tools in Houdini. I never used NURBS in any other package. I always used polygons.

What I'm trying to do is to create gun barrel with lots of jittered holes in it. Creating the pattern is not a problem, but creating the hole is.

I start with a NURBS tube, carve a small patch from it, project a circle on this patch, trim it, scale the result a little, merge and bridge the profile curves.

It works, but the resulting surface is very uneven. I mean, the bridged surface has lots of uneven and unnecessary isoparms, it is bumpy, and the is a visible seam between the surfaces.

Am I doing something wrong?

NurbsSeams.hipnc

Share this post


Link to post
Share on other sites

Toggle imperfect back on. Toggling imperfect off will cause unequal weights applied to the cv's to render a "perfect" NURBs circle.

It's mainly in the Project SOP.

- Set the Fit Tolerance to a smaller value. Say 0.00001

- Turn on Super Accurate Projection.

Projected Circle:

-Increase the number of divisions on your projected circle to say 40 will give the Project more to work with. All the NURBs tools are only single precision.

Bridge SOP:

- Turn off "Preserve Sharp Corners in the Profile Extraction folder.

Increasing the LOD in the viewport to say 3 will render a nicer result at the expense of speed. This is accessed in the Viewport Display Options dialog / Viewport > Level Of Detail.

Share this post


Link to post
Share on other sites

Thanks a lot! I also found that reducing Order in the Project SOP to 2 gives the best results.

It looks smoother now.

Is there any way to procedurally bridge more then 2 profiles in one SOP? I mean, If I have a sphere with many holes, can I bridge everything with one SOP, or do I have to manually create a Bridge SOP for each I want to bridge?

Share this post


Link to post
Share on other sites
It's mainly in the Project SOP.

- Set the Fit Tolerance to a smaller value. Say 0.00001

- Turn on Super Accurate Projection.

I also like to use parametric projection (the second tab in the project SOP), I found that sometimes it gives better results.

Dragos

Share this post


Link to post
Share on other sites

OK, Ill try.

I just realized that even now there are still cracks in the surface, which are visible from some directions. Maybe there is no way around it?

NurbsSeams.hipnc

Share this post


Link to post
Share on other sites
Maybe there is no way around it?

Actually, there isn't. This is a common problem with trimmed NURBS in animation packages. In CAD software the precision is higher (and the approach different).

I love the NURBS toolset of Houdini feature-wise, but their "geometry kernel" is lacking precision in such situations, for some reason so i won't bother with this type of things if surface seams are big on screen. It will be hard to get rid of them.

Dragos

Share this post


Link to post
Share on other sites

Yes, I figured its a precision issue. Well, back to polygon tools I guess.

Thanks.

Share this post


Link to post
Share on other sites

Yup, there are reasons that nurbs aren't used very often anymore, and it looks like everyone trying to use them here recently is discovering why. :)

Share this post


Link to post
Share on other sites

I was playing with moi3d the other day. Very easy and quite fun nurbs modeller, the viewport display is great (no cracks seams), but in the end useless because Houdini couldn't display/render my model at anywhere near the same quality (imported Iges). I suspect this has a lot to do with the simplistic way in which the geometry gets tessellated in the viewport and render, as well as precision.

Share this post


Link to post
Share on other sites
I was playing with moi3d the other day. Very easy and quite fun nurbs modeller, the viewport display is great (no cracks seams), but in the end useless because Houdini couldn't display/render my model at anywhere near the same quality (imported Iges). I suspect this has a lot to do with the simplistic way in which the geometry gets tessellated in the viewport and render, as well as precision.

Just to correct myself... :) moi3d isn't useless because the obj export/tessellation is excellent. Sesi should have a look at its tessellation options.

Share this post


Link to post
Share on other sites
Just to correct myself... :) moi3d isn't useless because the obj export/tessellation is excellent. Sesi should have a look at its tessellation options.

Hey Sergio,

I seem to remember conversations about IGES and Houdini single vs. double precision (and trimming) issues back in the 3.0 era, so there should be some information about this in the mailing list archive. Tessellation shouldn't be a problem, I remember rendering quite heavy CAD models in PRMan exported from I-DEAS and PRO/Engineer (that's how I got into it in the first place) other tessellating raytracers (maya software and some early versions - maybe 1.9 - of mental ray hooked into Pro/E) just failed on them because of the same issues.

I don't think this changed since, so Houdini might have a precision issue with some of these rather than tessellation problems.

There is also an solution in PRMan called binary dicing that sometimes helps these cases.

Oh man, dealing with NURBS feels like memories of a previous life now :D

Take care,

Andras

Share this post


Link to post
Share on other sites
Hey Sergio,

I seem to remember conversations about IGES and Houdini single vs. double precision (and trimming) issues back in the 3.0 era, so there should be some information about this in the mailing list archive. Tessellation shouldn't be a problem, I remember rendering quite heavy CAD models in PRMan exported from I-DEAS and PRO/Engineer (that's how I got into it in the first place) other tessellating raytracers (maya software and some early versions - maybe 1.9 - of mental ray hooked into Pro/E) just failed on them because of the same issues.

I don't think this changed since, so Houdini might have a precision issue with some of these rather than tessellation problems.

There is also an solution in PRMan called binary dicing that sometimes helps these cases.

Oh man, dealing with NURBS feels like memories of a previous life now :D

Take care,

Andras

Hi Andras,

By tesselation I mostly mean the results you get in H when you convert to poly's VS what you can get in MOI's obj export options... you will get much nicer poly output from MOI, particularly when dealing with trims/blends etc... At rendertime in H I also had issues in these areas that would only improve by bumping the shading rate to 3 or 4 iirc... very odd.

cheers

S

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×