Curved surfaces, why not?

Mate Kovacs said:
Simon F said:
Compute the normals, do some shading and then tell me if you can't see the difference between C0, C1 and perhaps C2....
Could you show me some pictures of a (shaded) surface made of n patches of 4th order and it's approximation with 4n patches of 2nd order?
I'm really curious by now. :)
I don't have any pictures, but ponder the following:

Quadratic and even cubic triangular Bezier patches cannot guarantee C1 continuity, only C0, with their neighbouring (triangular) patches. This means that you will get some creases in the model. You have to go to quartic triangular patches (i.e. 15 control points) in order to guarantee C1.

With rectangular (aka tensor product) patches you might be able to get away with a bi-quadratic but you are certainly safe with a bi-cubic.

MfA said:
What's so great about triangular patches anyway?
I suspect that the main reasons some like them are
  • Any line though the parameter space always maps to the same order curve on the patch, e.g. all cubics for the case of a cubic Bezier triangle. With rectangular patches, only lines parallel to the parameter axes have this property. For example, the diagonals across a bi-cubic patch I think are 6th order.
  • They can model arbitrary topology more easily, although Catmull-Clark or Doo-Sabin subdivision surfaces might have reduced this advantage slightly.
 
My limited experience of working with curved surfaces were that Beziers were convenient, but you needed so many control points to get decent continuity that it's almost easier to use polygons. NURBS suffer less from this, but aren't as convenient.

Which I think agrees what Simon's saying, but he understands the maths and I don't :D.
 
Bézier patches are only convenient when you need just a few of them. For complex models I think (interpolating) subdivision surfaces are much better.
 
Xmas said:
Bézier patches are only convenient when you need just a few of them. For complex models I think (interpolating) subdivision surfaces are much better.
Isn't this confusing the modelling issue with that of rendering?
 
Simon F said:
Xmas said:
Bézier patches are only convenient when you need just a few of them. For complex models I think (interpolating) subdivision surfaces are much better.
Isn't this confusing the modelling issue with that of rendering?
I think one is connected to the other. If modellers want to use subdivision surfaces, it is very convenient to have their tessellation supported in hardware.
 
Xmas said:
I think one is connected to the other. If modellers want to use subdivision surfaces, it is very convenient to have their tessellation supported in hardware.
IIRC, one level of subdivision on Catmull-Clark (and probably Doo-Sabin) gets you to uniform BSpline surfaces which can be trivially converted to Beziers.

(Edit... except around the "extraordinary points" but those could be special cased)
 
Simon F said:
Xmas said:
I think one is connected to the other. If modellers want to use subdivision surfaces, it is very convenient to have their tessellation supported in hardware.
IIRC, one level of subdivision on Catmull-Clark (and probably Doo-Sabin) gets you to uniform BSpline surfaces which can be trivially converted to Beziers.

(Edit... except around the "extraordinary points" but those could be special cased)

Yes Catmull Clark are BSpline verts away from the extrordinary control points where curvature is "undefined".

My experience with all the curved surfaces I looked at, on more complex data than the obvious pipes and spheres, was that by the time you had a model that was well formed (no seams) and had enough detail to look good, the number of control points was so high that outside of closeups you might aswell just subdivide once and render the polygons.

And even after the subdivision the polygon representaion was actually more compact space wise.
 
I don't think that triangles is necessarily correct, but I think that statement is pretty close. REYES obviously tesselates down to micropolygons (quads), and IIRC, there is no good closed form solution to help with intersection tests above cubic. (and IIRC, cubic is really nasty)

Obviously, quadratics have a huge benefit in a ray tracer, but they have the disadvantage of adding multiple primitive processing paths.

-Evan
 
One issue with such techniques might be aliasing. Super-sampling will certainly work, but without it we're left with the same problems alpha masks face.
 
ERP said:
My experience with all the curved surfaces I looked at, on more complex data than the obvious pipes and spheres, was that by the time you had a model that was well formed (no seams) and had enough detail to look good, the number of control points was so high that outside of closeups you might aswell just subdivide once and render the polygons.

And even after the subdivision the polygon representaion was actually more compact space wise.
I guess you aren't describing subdivision surfaces here because I can't see how a (singly) subdivided mesh could be larger than the source mesh.

Pixar described some interesting extensions to Catmull-Clark to give varying degrees of "sharpness" but I have a strange feeling those extensions may be patented.

Ostsol said:
Is CG used in cinema all tesselated into triangles or does anyone actually use "true" curved surfaces?
As ehart said, they can be subdivided to 'micro polys' which are the size of ~1/2 a pixel, but in reality, it's probably not that different to 'directly' rendering the patches with, say, a numerical solution. You need to use something like Newton-Rhapson to find the intersection and, in effect, that is solving the problem by taking little linear approximations.
 
Simon F said:
Pixar described some interesting extensions to Catmull-Clark to give varying degrees of "sharpness" but I have a strange feeling those extensions may be patented.
Dunno if Pixar extensions are patented or not but there a lot of different externsions to Catmull-Clark subdivision surfaces (not from Pixar of course)
that add support for creases, darts,etc..
Various degrees of sharpness are achieved subdividing with the extended rule after a certain (definable) number of subdivisions.

IMHO it doesn't make much sense to let an artist provide a SS base model.
They should be free to use whatever tool they like then they should provide a dense mesh.
This mesh must be (automatically) remeshed to fit with proprietary 3D engine costraints (you can't support any vertex valence, any kind of topology, and so on..).
The difficult part is the remeshing phase, without this phase is a comlpetely waste of time to even try to support SS in a realtime engine.
 
Simon F said:
Pixar described some interesting extensions to Catmull-Clark to give varying degrees of "sharpness" but I have a strange feeling those extensions may be patented.
Dunno if Pixar extensions are patented or not but there a lot of different externsions to Catmull-Clark subdivision surfaces (not from Pixar of course)
that add support for creases, darts,etc..
Various degrees of sharpness are achieved subdividing with the extended rule after a certain (definable) number of subdivisions.

IMHO it doesn't make much sense to let an artist provide a SS base model.
They should be free to use whatever tool they like then they should provide a dense mesh.
This mesh must be (automatically) remeshed to fit with proprietary 3D engine costraints (you can't support any vertex valence, any kind of topology, and so on..).
The difficult part is the remeshing phase, without this phase is a comlpetely waste of time to even try to support SS in a realtime engine.
 
Simon F said:
ERP said:
My experience with all the curved surfaces I looked at, on more complex data than the obvious pipes and spheres, was that by the time you had a model that was well formed (no seams) and had enough detail to look good, the number of control points was so high that outside of closeups you might aswell just subdivide once and render the polygons.

And even after the subdivision the polygon representaion was actually more compact space wise.
I guess you aren't describing subdivision surfaces here because I can't see how a (singly) subdivided mesh could be larger than the source mesh.

Pixar described some interesting extensions to Catmull-Clark to give varying degrees of "sharpness" but I have a strange feeling those extensions may be patented.

Ostsol said:
Is CG used in cinema all tesselated into triangles or does anyone actually use "true" curved surfaces?
As ehart said, they can be subdivided to 'micro polys' which are the size of ~1/2 a pixel, but in reality, it's probably not that different to 'directly' rendering the patches with, say, a numerical solution. You need to use something like Newton-Rhapson to find the intersection and, in effect, that is solving the problem by taking little linear approximations.

This was true even with subdivs.
You need information on the mesh topology (3 indices/tri) and we added a sharpness value. Granted we could have organised the data differently to avoid the additional topology information at the cost of repeating sections.

The thing that actually stopped us going with subdiv surfaces was the patch density, and the shear number of extrordinary points, and secondarilly problems with consistent texture mapping (especially with the "hard edges").

Been a while since I looked at the models but we wrote a maya plugin to model subdiv surfaces (before maya had support), had an artist build a car model with instructions to avoid unnecessary high valence vertices. The final model was >2500 control points, and the quality was still questionable, and over 80% of the control points in the mesh were inside the 1 ring of a high valence vertex.
 
ERP said:
This was true even with subdivs.
You need information on the mesh topology (3 indices/tri) and we added a sharpness value. Granted we could have organised the data differently to avoid the additional topology information at the cost of repeating sections.
So your basic source polygon mesh was made of triangles rather than (mostly) quads?

The thing that actually stopped us going with subdiv surfaces was the patch density, and the shear number of extrordinary points, and secondarilly problems with consistent texture mapping (especially with the "hard edges").
I'm just trying to picture what you mean about the texturing at the "hard edge". Are you saying that you wanted a discontinuity in the texture mapping across the edge, or that you wanted "C0" continuity but the first deriv, say, would be discontinuous?

Been a while since I looked at the models but we wrote a maya plugin to model subdiv surfaces (before maya had support), had an artist build a car model with instructions to avoid unnecessary high valence vertices.
Out of curiousity, what sort of maximum valence did you feel was necessary?

Cheers
Simon
 
Simon F said:
ERP said:
This was true even with subdivs.
You need information on the mesh topology (3 indices/tri) and we added a sharpness value. Granted we could have organised the data differently to avoid the additional topology information at the cost of repeating sections.
So your basic source polygon mesh was made of triangles rather than (mostly) quads?

The thing that actually stopped us going with subdiv surfaces was the patch density, and the shear number of extrordinary points, and secondarilly problems with consistent texture mapping (especially with the "hard edges").
I'm just trying to picture what you mean about the texturing at the "hard edge". Are you saying that you wanted a discontinuity in the texture mapping across the edge, or that you wanted "C0" continuity but the first deriv, say, would be discontinuous?

Been a while since I looked at the models but we wrote a maya plugin to model subdiv surfaces (before maya had support), had an artist build a car model with instructions to avoid unnecessary high valence vertices.
Out of curiousity, what sort of maximum valence did you feel was necessary?

Cheers
Simon

Sorry your correct of course should have been 1 index/edge. The source was predominantly quads, but with triangles where necessary.

We did texturemapping the same way the early pixar papers described which is to treat the texture coordinate as an extra tuple to subdivide. When you introduce Darts or Creases in this model they stretch the texture in a non linear way towards the crease.

I think the largest valence in the model was 8 but this was close to 5 years ago and I'd have to look at it to verify. By far the most common valence (other than 4) was 5.
 
<---Bangs head against wall :rolleyes:

Ok again everyone keeps going back to triangles etc. My point is per pixel or spine etc. I know that the technology we have is well what we have. Im looking at the what if scenerio. (I like to call it thinking outside the box) Could we do a curved surface per pixel or similar with todays fp power (NOT USING TRIANGLES) for curved surfaces. I honestly think that at this point we could start migrating to such a technique (at least for curves). I know everyone is use to using todays norms and expanding it but doesnt anyone have an opinion or theory of the what if we could? Or is it possible with todays tech?
 
Back
Top