Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 5 of 5

Thread: OpenGL 3 and tessellation

  1. #1
    Junior Member Regular Contributor
    Join Date
    Nov 2004
    Location
    San Diego, CA, USA
    Posts
    122

    Question OpenGL 3 and tessellation

    I'm in the process of updating some OpenGL 2 code to use OpenGL 3.2 Core Profile. (I can't go all the way to 4.0 due to macOS support.) I'm wondering what to do about gluNewTess and friends, which apparently have gone away. Tessellation shaders, whatever they are, are not guaranteed to exist until OpenGL 4.0. Did they really remove tessellation without having any replacement ready? That seems almost unbelievable.

  2. #2
    Senior Member OpenGL Guru
    Join Date
    Jun 2013
    Posts
    3,006
    Quote Originally Posted by James W. Walker View Post
    I'm in the process of updating some OpenGL 2 code to use OpenGL 3.2 Core Profile. (I can't go all the way to 4.0 due to macOS support.) I'm wondering what to do about gluNewTess and friends, which apparently have gone away. Tessellation shaders, whatever they are, are not guaranteed to exist until OpenGL 4.0. Did they really remove tessellation without having any replacement ready? That seems almost unbelievable.
    OpenGL 4+ tessellation shaders are unrelated to the GLU tessellation functions.

    The GLU tessellation functions can still be used with 3+ core profile, although the callbacks are designed around glBegin/glEnd, so it's more effort to use them with glDrawElements(). The other GLU features (i.e. NURBS and quadrics) call deprecated OpenGL functions and are incompatible with the core profile.

  3. #3
    Senior Member OpenGL Lord
    Join Date
    May 2009
    Posts
    6,066
    Quote Originally Posted by James W. Walker View Post
    Did they really remove tessellation without having any replacement ready? That seems almost unbelievable.
    Why is that unbelievable? Those functions were CPU-based tessellation. The whole point of removing functionality from OpenGL was to get rid of stuff that you could do yourself, to make core OpenGL be a proper hardware abstraction. If you could do it just as effectively as the OpenGL implementation, or if the functionality didn't represent something that hardware was actually doing, then it got thrown out.

    The OpenGL 4.0 tessellation feature is hardware-based tessellation, not stuff you could do yourself.

    Also, pretty much nobody interested in performance used the `gluTess` functionality. So getting rid of something that was not widely used wasn't really hurting people.

    Lastly, `glu` is not really part of OpenGL at all; it's part of the GLU library, which is an ancillary system beside OpenGL. And since `gluTess` stuff works based on callbacks, there is nothing preventing you from still using it by providing callbacks that pipe the data into memory that gets uploaded to a buffer object.

  4. #4
    Junior Member Regular Contributor
    Join Date
    Nov 2004
    Location
    San Diego, CA, USA
    Posts
    122
    Quote Originally Posted by Alfonse Reinheart View Post
    Why is that unbelievable? Those functions were CPU-based tessellation. The whole point of removing functionality from OpenGL was to get rid of stuff that you could do yourself, to make core OpenGL be a proper hardware abstraction. If you could do it just as effectively as the OpenGL implementation, or if the functionality didn't represent something that hardware was actually doing, then it got thrown out.
    if there is some standard cross-platform library (hopefully open source) that does the same thing at least as well, I'd be happy to use that. I just don't know where to find such a thing.

    Quote Originally Posted by Alfonse Reinheart View Post
    Also, pretty much nobody interested in performance used the `gluTess` functionality. So getting rid of something that was not widely used wasn't really hurting people.
    I haven't been using it on a real-time basis, but to convert a "conceptual" representation of a polygon into a triangular mesh that is then cached.

  5. #5
    Junior Member Regular Contributor
    Join Date
    Nov 2004
    Location
    San Diego, CA, USA
    Posts
    122
    Quote Originally Posted by GClements View Post
    The GLU tessellation functions can still be used with 3+ core profile, although the callbacks are designed around glBegin/glEnd, so it's more effort to use them with glDrawElements(). The other GLU features (i.e. NURBS and quadrics) call deprecated OpenGL functions and are incompatible with the core profile.
    Thanks, that's a relief.

Tags for this Thread

Posting Permissions

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