SubD Ex;port  1-20  21-40  41-44

Next
 From:  TwinSnakes
478.1 
Michael,

Since you did such a great job on OBJ export. I was wondering, if it would be possible to write an OBJ export that generates Catmull-Clark Subdivision surfaces?

I would imagine that the same surface approximation calculations that go into Nurbs could be applied to generating Subd surfaces that honor the Catmull-Clark algorithm.

It'd be a great advance in 3D surface creation. On the modeling side you get all the speed and freedom benefits of Nurbs, then on export, you wouldnt have such heavy weight meshes. For instance, you might need 8 or 9 rows of polygons to approximate a fillet, where as in Subd, it may only require 1 or 2 (if you factor in edge weighting).

Some people say that Subd is the new Nurbs. But, I think that using the two methodologies together would make a great design tool.

What do you think?

And is it even possible?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.2 In reply to 478.1 
> And is it even possible?

Well, Catmull-Clark is related to the way that cubic NURBS work. So it would be possible to export the control polygon cage for a cubic, untrimmed NURBS surface and use that to make a Sub-D surface in some other package.

The problem is that this doesn't handle the totally general case of surfaces of different degree (this is one of the different parameters that can be a part of a NURBS surface), and much worse yet, doesn't handle the case of a surface that has trim curves on it.

You get trim curves on your surfaces if you do any type of intersections, booleans, or fillets on your models - and of course these are some of the best reasons to use NURBS.

Once you have a trimmed surface, the visible geometry is not only guided just by a control polygon cage of the surface, the trim curves on it are an additional factor. There is not any easy or natural method to convert the trim curves to a SubD structure.


> Some people say that Subd is the new Nurbs.

For character modeling certainly that is the case, but it definitely isn't the new NURBS for engineering related modeling where you need more precise control over cuts. With Sub-d you can't even cut an accurate circular hole in a surface - that's a rather fundamental operation needed for creating precise man-made or manufactured objects...

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Joe (INNERACTIVE)
478.3 In reply to 478.1 
> Some people say that Subd is the new Nurbs.

I have to agree with Michael on this. As someone who has spent the past year learning Poly and SubD modeling I have found them to be great for character and creature modeling, but once you try to do some detailed hard surface modeling you can run into problems with things that would be relatively simple to do with NURBS.



During my studies I have found that SubDs are great for stuff like this:
Photobucket - Video and Image Hosting



But painful for stuff like this:

Photobucket - Video and Image Hosting



Now I realize that I could probably do that calculator much faster and with a better result using NURBS. I do agree with you that learning to utilize both surface types for modeling would be great for designers. However, I think it is a bit much to ask that MoI incorporate a full suite of SubD tools. Even my main tool 3dsMax is lagging behind in SubD tools, forcing me to consider additional modeling plug-ins like Polyboost and sculpting tools like ZBrush or Mudbox.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  TwinSnakes
478.4 In reply to 478.3 
Joe,

You missed the intention of the request.

I'm not asking for a set of SubD tools in Moi. I was merely inquiring about a SubD export, since SubD closely follows the laws of Nurbs in some respects. So, its not that big of a leap from exporting to OBJ, and exporting to OBJ using Catmull-Clark subdivision.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  F.ip2 (CEKUHNEN)
478.5 In reply to 478.4 

to my knowledge if you look into lightwaves modeling tools you see what advanced subdiv tools could do.

trimming works with subsurf also in maya.

here is a proove:
http://blenderartists.org/forum/showthread.php?t=86077&page=2&highlight=maya+trim


NURBS are good but only for certain tasks. The same is for polygons. I think a mix of nurbs and subdivs would be the way to go.

claas

EDITED: 16 Mar 2007 by CEKUHNEN

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.6 In reply to 478.5 
> trimming works with subsurf also in maya.

Hi Claas - usually this type of trimming is a way to cut polygons into smaller polygon fragments.

This is not the same kind of trimming operation as NURBS-style trimming. In NURBS trimming, the surface itself is not diced into small surface fragments along a trimming boundary, instead the surface stays as it originally was, and new "trim curves" are calculated which live on the surface.

The trim curves can be removed later on to restore the surface.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Crusoe the Painter (CRUSOE)
478.7 
I think the last lil screenshot in that posted forum link IS what he is talking about. It's a hole, trimmed in a subdiv surface, nurbs-style. Both the subd surface, and the hole boundary are editable.

There are many papers on applying nurbs style trimming to subd surfaces, and I'd kill to see such a modeler built ( Other than one real expensive high-end cad package ).

But for now, I'm pretty darn happy with MOI. :)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
478.8 In reply to 478.6 
As a curious newcomer, I have to ask...

When you boolean with NURBS, you simply use a curve to mask out part of surface in a hierarchial fashion (spelled right??), so you can "blend" together several curves to form an objec, did I get that right?
So there is no way (even for the developers) to take such a bunch of surfaces that has been joined together to form a solid, and "collapse" it to an object with control points ad the edges.

I don't know if I'm clear enough. Imagine you have a sphere and a cylinder, the cylinder is halfway inside the sphere, and you boolean subtract it from the sphere.
You then have an object that is made up by 3 surfaces (I guess...) one for the end of the cylinder, one for the side, and one for the sphere.

Is it possible to make a joined surface, like a surface that is only described by control points found on this surface, like points along the edge of the "hole".
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
478.9 In reply to 478.7 
it doesn't seam as that damn advanced, with things like the boolean mental ray shader,
which can make non-polygonal booleans at rendertime...
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.10 In reply to 478.9 
> it doesn't seam as that damn advanced, with things like the boolean
> mental ray shader,which can make non-polygonal booleans at rendertime...

Hi ELF - well, a lot of times a boolean is more useful at modeling time than only rendering time, because there are a lot of different additional operations that you might want to apply to the intersection curve, for example rounding it with a fillet, or using it to construct additional shapes by sweeping along it, etc...

With a render-time boolean, you can only get a basic sharp-edged boolean cut and that's it. So that is a lot more limited in terms of model construction options.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.11 In reply to 478.8 
Hi ELF, to answer your earlier questions:

> When you boolean with NURBS, you simply use a curve to mask out part of
> surface in a hierarchial fashion

Yes, this is correct - during the boolean the curves where different surfaces intersect is calculated, and then those curves as used as new "trim curves" on the existing surfaces. Trim curves are used as a way to mask out different portions of a surface.


> So there is no way (even for the developers) to take such a bunch of surfaces
> that has been joined together to form a solid, and "collapse" it to an object with
> control points ad the edges.

Yes, this is correct, except in the special case where the trim curve happens to be running parallel to one of the natural edges of the underlying surface.


> Is it possible to make a joined surface, like a surface that is only described by
> control points found on this surface, like points along the edge of the "hole".

No, there is no easy way in general to recalculate the surface to have its points matching the trim curves.

To do it would require a very significant reconstruction of the surface to a totally different shape, it would be very difficult to do this well.

Here is a more general example that shows how difficult this would be:



Here the surface is very simple, just 4 control points forming a simple plane. But you can see how complex the trim curves can be on the surface - there is no easy way to just transform those 4 control points and have them match all those complex edges in the trimming curves.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.12 In reply to 478.7 
> I think the last lil screenshot in that posted forum link IS what he
> is talking about. It's a hole, trimmed in a subdiv surface, nurbs-style.
> Both the subd surface, and the hole boundary are editable.

I see now - I think that got edited in later. That is interesting that Maya has that feature, I don't think that there is any other sub-d modeler that can handle it like this. But most of the time trimming or booleans in a sub-d modeler does mean dicing polygons into smaller polygon slivers.

I wouldn't be surprised if Maya was actually converting the Sub-d surface internally into a NURBS equivalent for that trimming operation. It is one of the few things out there that has a function to do this kind of a conversion. Note that this is the opposite direction conversion (Sub-d to NURBS) from the one mentioned at the start of the thread (NURBS to Sub-d).


> There are many papers on applying nurbs style trimming to subd surfaces,
> and I'd kill to see such a modeler built ( Other than one real expensive
> high-end cad package ).

It is cool that there is different research happening on trimming subd surfaces, but there is one big problem with implementing any of these, which is data exchange.

There is no common file format that currently exists that can contain subd surfaces with trimming information. If you were to create a modeler using something completely new like this, you would only be able to use your full fidelity geometry within that one environment. That's a pretty significant problem.

On the other hand, there are several common file formats that can hold trimmed NURBS surfaces.

So because of this what I think you will see happening in the longer term, is that NURBS modelers will offer Sub-d type tools as an alternative way of constructing a NURBS surface patchwork. Like instead of doing a sweep to create a surface, you could have a polygon cage that created a set of surfaces from it. But the resulting surfaces will be all NURBS surfaces joined together. Because the result is all NURBS surfaces, they could be trimmed and booleaned, etc.. just like any other NURBS surface. This will then preserve the trimmed surface information for data exchange.

So I wouldn't be too surprised if you see Sub-d trimming appear really mostly inside of NURBS modelers eventually and not really inside of current Sub-d modeling environments.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
478.13 In reply to 478.11 
Thanks for the info :)
That kind of explains why I couldn't find a way to edit any of the control points I thought I'd be able to find along the edges after a boolean in any of the NURBS packages I used ;)


Lightwave also seams to be doing something similar. In lightwave, sub-d is also called metaNURBS,
and it's exactly the same as in Maya, where the poly cage is used to make a sub-D-like NURBS surface.

It shouldn't be so hard to use this in other applications as well...

Isn't it "just" making a NURBS cage with a control point at the location of each vertex in the control mesh?

Seams like sub-d curve algorithms are nearly identical to NURBS' b-spline interpolation algorithm, eh? ;)

One thing I came to think of though. When you use a sub-D model in a NURBS fashion like trimming,
the sub-d surface would act entirely as a NURBS surface (of course) forcing you to rearrange your workflow.

If you want to make a hole for foglights on a car for example, on a sub-D car model, you shape out the hole, and after the hole is made you continue working on the model as a whole, with hole and everything.

If you were to do the same with the convert-to-NURBS-and-trim-technique, you'd have to be able to do the joined-into-one-object-thing, which you just told me was impossible, right?

Therefore, using the car example again, you couldn't use it to cut out the wheel holes or windows or doors or headlights, or in any other way make the general shaping, because these holes would have no effect on the base mesh that describes the general shaping of the car... Am I right? :P

The reason I ask is because I read the entire thread on the forum F.ip2 (CEKUHNEN) linked to, and that had me confused...
(http://blenderartists.org/forum/showthread.php?t=86077&page=2&highlight=maya+trim)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.14 In reply to 478.13 
> Isn't it "just" making a NURBS cage with a control point at the location of each
> vertex in the control mesh?

Well, to begin with a NURBS cage is limited in that it has to have a rectangular grid layout, you can't just connect any arrangement of points together to make a standard NURBS cage. It has to be a regular layout, like a grid of 16 points in a 4 x 4 layout for example. However, the first subdivision for Catmull-Clark results in all quad polygons which then can give a grid layout.


> Seams like sub-d curve algorithms are nearly identical to NURBS' b-spline interpolation algorithm, eh? ;)

It is identical in areas of the sub-d control cage that have a simple quad layout - that is where every vertex is a part of 4 faces around the vertex. The problem is in areas where there is a different number than 4 faces around a single vertex, faces that have these vertices in them are not identical to a NURBS surface and have to have something special done to them to be represented as a NURBS, like some kind of approximation.


> If you were to do the same with the convert-to-NURBS-and-trim-technique, you'd have
> to be able to do the joined-into-one-object-thing, which you just told me was impossible, right?

Yes, sorry I wasn't clear - the convert-to-NURBS-and-trim-technique would not give you any new ability to edit the surface by moving points on trim curves, trim curves would operate the same way as now. What it would give you is a new way to edit the shape of the underlying surface of the trim.


> Therefore, using the car example again, you couldn't use it to cut out the wheel
> holes or windows or doors or headlights, or in any other way make the general
> shaping, because these holes would have no effect on the base mesh that
> describes the general shaping of the car... Am I right?

You could still use trims to cut out wheel holes or windows or doors or headlights just as you can do it now. You just would not edit the surface by yanking on those holes directly, you would edit the surface by editing the control cage, and then the trim curves would either squish with the edits to the underlying surface, or they could be reapplied through new intersection calculations by a construction history operation mechanism.


The only way that I can see for getting trimming plus direct natural editing of the surface by the trim curves is to actually divide the base geometry into smaller pieces during the trim, like polygon trimming does. But this creates a huge problem because after a few trims in the same area you get quite a large number of little teeny-tiny slivery fragments. Tons of little tiny fragments begin to get difficult to work with in several ways - they put a lot more stress on a lot of procedures. For example the more little tiny slivery pieces you have the more likely that a boolean operation is going to have a difficult time processing them and figuring out which pieces are supposed to be sliced cleanly. Fillets are difficult to calculate across a ton of little tiny surfaces instead of across a single larger surface with trim curves on it, etc...

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
478.15 In reply to 478.14 
Yea so it has to be like normal NURBS, where the mesh object is treated as a NURBS suface...

Anyway, the quad cage construction of a NURBS objects, can't you have any number of points on each side of the quad? Like when you make a sweep?
Or did I get something wrong?

Sounds like Max's patch modelling is actually simplified NURBS, but I thought the big advantage of NURBS was that you could define each side of you plane with more points and make it blend with 2-rail sweeps...

And I don't understand the problem with it having to be 4-sided if you can have multiple points on each side of the quad, but you can't??

If you read through the thread I linked to before, you will also find an example where it is shown that Maya can make a sub-D with 3, 4, 5, 6, and 7 sided polies, which is converted to NURBS afterwards, but he also mentions some odd cage topology, so I guess Maya has some special algorithms to handle that.

I wonder if Max's NURMS (Non-Uniform Rational MeshSmooth) is catmull-clark sub-D....
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.16 In reply to 478.15 
> Yea so it has to be like normal NURBS, where the mesh object is treated as a NURBS suface...

Except that you would get one of the major benefits of Sub-D over NURBS - your control hull could be set up with a much more arbitrary topology instead of only an M x N grid of points. This would be good for creating things like smooth branching structures. Well, and everything that SubD is good at doing right now.

It would be an alternative method for creating the base NURBS object.


> Anyway, the quad cage construction of a NURBS objects, can't you have any number
> of points on each side of the quad? Like when you make a sweep?

Yes, you can any number on each side, but the points have to be in a grid organization. So that's why you can't take just any polygon mesh and turn it into NURBS by using just the control points of the polygon mesh directly. A random polygon mesh doesn't always have a regular M x N grid layout to it.

For the places in a Sub-D surface that do naturally correspond to a NURBS surface, each quad face of the SubD cage becomes a NURBS surface with a 4x4 control point grid.


> but I thought the big advantage of NURBS was that you could define each
> side of you plane with more points and make it blend with 2-rail sweeps...

That you can define a single patch where each side of the plane with any number of points is a big advantage of NURBS over _Bezier_ surfaces, not over Sub-d surfaces.

Although I guess in a certain sense it does tend to organize things into larger "patch" objects in a natural way which kind of simplifies certain construction-oriented modeling approaches, like there is naturally a longer edge along one side of a sweep instead of a bunch of little tiny edges you would have to chain together for Sub-D. I guess that is kind of a user-interface issue with Sub-Ds - less restriction on topology is not automatically 100% better for all modeling strategies because restrictions on topology have a side effect of creating a type of natural grouping which is suited for certain things.

But for comparison between NURBS and Sub-D, I'd say that the single big advantage to NURBS is the well-defined trim curve mechanism, which is one of the fundamental things that makes stuff like trimming and booleans work well, and having a natural curve-on-surface structure is important to several other operations such as fillets as well.


> so I guess Maya has some special algorithms to handle that.

Yeah, from what I've seen they subdivide a few extra times near the "extraordinary point" (this is what a point shared by other than 4 neighboring faces is called). Each of these subdivisions generates more regular quads and shrinks the difficult area to be smaller and smaller. Then they have some kind of surface fitting mechanism that tries to get a good approximate NURBS surface for the final bit.


> I wonder if Max's NURMS (Non-Uniform Rational MeshSmooth) is catmull-clark sub-D....

I don't know... Probably, it is the most popular subdivision algorithm by far, although there are other methods around.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
478.17 In reply to 478.16 
I'm sorry I keep bringing up the questions, I'm just a very curious guy, I hope it's alright.

Is there a problem with making 3-sided NURBS patches?

And I'm not use I understand why it has to be a grid layout..
Does that mean it's possible to make a 100% quad-based mesh that wouldn't easily be turned to NURBS through this Sub-D method?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.18 In reply to 478.17 
> I hope it's alright.

It's alright. :)


> Is there a problem with making 3-sided NURBS patches?

Well, technically there is no problem making 3-sided NURBS patches. There is such a thing where the points are arranged in a kind of triangular grid instead a rectangular grid.

But they are not commonly used because none of the standard file formats allow for them - the standard file formats for transferring NURBS only allow for rectangular style NURBS surfaces.

So that's one reason why the normal way to do a 3-sided patch is to actually do a 4-sided patch with one side compressed down to a point.


> And I'm not use I understand why it has to be a grid layout..

Well, it is fundamentally the way a NURBS surface is defined. Having a grid layout makes the surface behave kind of like a grid network of curves. Like imagine taking one starting curve at one edge, then if you sort of step that curve along the other direction it will sweep out a surface - that's pretty much how a NURBS surface works.

Each NURBS surface has a 2d "parameter space" coordinate system defined along with its 3d points - the rectangular layout is what provides the 2d parameter space portion of the NURBS definition.


> Does that mean it's possible to make a 100% quad-based mesh that wouldn't easily
> be turned to NURBS through this Sub-D method?

I'm not sure if I understand this question, but it is possible to have all quad faces in a mesh but still have points that are shared by more than 4 common faces, like a center point with quads spiraled around it - this again creates an "extraordinary point" that doesn't have a simple automatic NURBS conversion for these faces.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ELF
478.19 In reply to 478.18 

Ah ok, now I get it :) Nearly... :S

NURBS objects have 2 kinds of points, one kind that can be added along the edge of a patch, and one kind that is the corner of a patch, right?

So it works like bezier patches, just with more advanced edge curves (and different interpolation)?

Do you know anywhere where I can read about the fundamental methematical structure of NURBS? So I can understand how it's handled and interpreted mathematically. Just the concepts, not something where I have to understand some advanced math formulas. Haven't had advanced math for a few years now :)

EDITED: 18 Mar 2007 by ELF

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
478.20 In reply to 478.19 
> NURBS objects have 2 kinds of points, one kind that can be added along the
> edge of a patch, and one kind that is the corner of a patch, right?

Well, not just a corner. I guess one thing that is tricky is the names for things. A full NURBS modeler that supports booleans does not just support NURBS surfaces, but actually something more exactly called "Trimmed NURBS surfaces", which includes multiple parts - a NURBS surface + trim information.

There are a set of points for the NURBS surface, and there are a different set of points for the trimming curve information, so yes those are 2 different kinds of points.

Here for example is a simple NURBS surface without any extra trims. In this case the edges run along the natural edges of the surface. You can see here the control point structure of the surface:



Here is the same surface after it has been trimmed. The same surface is still there "underneath" everything, the trim curves are defined by a different set of points than the ones that make up the surface:



> So it works like bezier patches, just with more advanced edge curves (and different interpolation)?

Bezier patches are related and very similar, except there is a much more strict limitation on the number of points that can be in one single Bezier patch. So to make a big long flowing surface only out of beziers will require making a bunch of smaller Beziers stuck together. NURBS surfaces improve on this by allowing any number of points (in one of the grid directions) so it makes it easier to make one big flowing surface.

Actually it is possible to dice up a NURBS surface into smaller Bezier pieces. NURBS are kind of like a method to manage a string of Beziers but in such a way that each Bezier is guaranteed to connect up to one another in a smooth manner.

Then the "more advanced edge curves" part is the trimming mechanism. This is kind of an additional mechanism layered on top of the basic NURBS surface.


About shared edges - that is another level of information to the trim curves. If you have 2 trim curves from different surfaces that touch one another (like they were calculated from an intersection between the surface for example), there can be some information stored that keeps track that these 2 surfaces share a common edge. This is what provides for making a logical "solid" out of a bunch of trimmed surfaces - if every edge is a common edge shared between 2 surfaces you have a connected skin of surfaces that defines a volume.

> Do you know anywhere where I can read about the fundamental methematical structure of NURBS?

Hmmm, maybe Wikipedia?

A lot of computer graphics textbooks will cover it.

This is kind of a high level overview: http://rhino3d.com/nurbs.htm

I think this one is one of the best online articles about how NURBS curves work: http://devworld.apple.com/dev/techsupport/develop/issue25/schneider.html

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21-40  41-44