Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: subdivision surfaces

  1. #1
    Junior Member Newbie
    Join Date
    Jan 2006
    Location
    San Francisco, California
    Posts
    21

    subdivision surfaces

    Does anyone know of an easy to use C/C++ open source library for rendering subdivision surfaces efficiently (e.g. Stam's SIGGRAPH 98 paper) w/o a GPU?

    If I can't find one, I'm considering writing a library with a GLU-ish C interface, something like: sds.h

    thoughts? (thanks!)

  2. #2
    Senior Member OpenGL Pro
    Join Date
    Sep 2004
    Location
    Prombaatu
    Posts
    1,401

    Re: subdivision surfaces

    Have you tried a google for Catmull-Clark/Loop subdivision? I know there's a bunch of code out there, if that's what you're looking for.

  3. #3

  4. #4
    Junior Member Newbie
    Join Date
    Jan 2006
    Location
    San Francisco, California
    Posts
    21

    Re: subdivision surfaces

    Hi, yeah I've googled around quite a bit. Most of the code people have posted does explicit subdivision, which is too slow for my purposes (interactive modeling).

    There is an implementation for this paper: http://www.multires.caltech.edu/pubs/fastsubd.pdf but it uses uniform sampling.

    I've considered ripping an implementation from an existing subdivision modeler (blender, etc), but their implementations are tied to their respective architectures.

  5. #5
    Junior Member Newbie
    Join Date
    Jan 2006
    Location
    San Francisco, California
    Posts
    21

    Re: subdivision surfaces

    Hi Mikkel, didn't see your post. I mentioned the first link above and the second two use explicit subdivision. Also, the second two don't have documented APIs.

  6. #6
    Junior Member Newbie
    Join Date
    Jan 2006
    Location
    San Francisco, California
    Posts
    21

    Re: subdivision surfaces

    Just want to ensure I'm not re-inventing the wheel before I set out to write a nice SDS library. Would anyone like to see a lib with an api like GLU NURBS?

  7. #7
    Senior Member OpenGL Pro
    Join Date
    Sep 2004
    Location
    Prombaatu
    Posts
    1,401

    Re: subdivision surfaces

    Most of the code people have posted does explicit subdivision, which is too slow for my purposes (interactive modeling).
    Not sure what you mean here. Most if not all of the papers describing subdivision surfaces are presented in the context of interactive modelling. Even a fairly naive implementation of Catmull-Clark subdivision is adequate for many character modelling applications.

    What'll be interesting to me is subdivision algorithms implemented on the GPU as geometry shaders become available in the coming year. There you'll have the ability to save lots of bandwidth by streaming a fairly simple control mesh and subdividing to arbitrary complexity on the GPU.

    But I don't see why anyone would object to a subdivision library, in the finest tradition of the OpenGL API :-)

  8. #8
    Junior Member Regular Contributor
    Join Date
    Jan 2004
    Location
    .dk
    Posts
    123

    Re: subdivision surfaces

    Hi Taylor.

    The "FastSubd"-implementation is immensely fast. It uses tables to accelerate the calculations. There is also a paper describing hardware-implementation using render-to-vertexarray functionality. I believe a similar method is used to implement the "turbosmooth"-modifier in 3dsmax.

    One of the advantages of this method is that you can do single-triangle subdivision - ie. you do not need to calculate the entire mesh to view or re-view a subset of the mesh. This is ideal in regards to interactive modelling - all you need is local connectivity (1-ring) information for the area you wish to subdivide. Of course, you should render the entire mesh at the same subdivision level (or take care of the cracks otherwise), but you don't need to calculate the entire mesh when modifying locally.


    Kind regards,

  9. #9
    Junior Member Newbie
    Join Date
    Jan 2006
    Location
    San Francisco, California
    Posts
    21

    Re: subdivision surfaces

    Hi Leghorn, what I mean by explicit subdivision is that individual facets of finer meshes are dynamically allocated. I've implemented subd's this way and its pretty slow. An array-based implementation is faster.

    best

  10. #10
    Junior Member Newbie
    Join Date
    Jan 2006
    Location
    San Francisco, California
    Posts
    21

    Re: subdivision surfaces

    Here's a very early draft of a spec for the library I'm thinking of: http://wtholliday.org/software/src/sds.pdf

    Any suggestions would be greatly appreciated. I'm thinking of starting a sourceforge project for it.

    thanks!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •