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 173 1231151101 ... LastLast
Results 1 to 10 of 1724

Thread: OpenGL 3 Updates

  1. #1
    Administrator Regular Contributor Khronos_webmaster's Avatar
    Join Date
    Apr 2007
    Location
    Montreal
    Posts
    151

    OpenGL 3 Updates

    You understandably want to know where the OpenGL 3 specification is. I have good news and some bad news. First the bad news. Obviously, the specification isn't out yet. The OpenGL ARB found, after careful review, some unresolved issues that we want addressed before we feel comfortable releasing a specification. The good news is that we've greatly improved the specification since Siggraph 2007, added some functionality, and flushed out a whole lot of details. None of these issues we found are of earth-shocking nature, but we did want them discussed and resolved to make absolutely sure we are on the right path, and we are. Rest assured we are working as hard as we can on getting the specification done. The ARB meets 5 times a week, and has done so for the last two months, to get this out to you as soon as possible. Getting a solid specification put together will also help us with the follow-ons to OpenGL 3: OpenGL Longs Peak Reloaded and Mount Evans. We don't want to spend time fixing mistakes made in haste.

    Here's a list of OpenGL 3 features and changes that we decided on since Siggraph 2007:
    • State objects can be partially mutable, depending on the type of the state object. These state objects can still be shared across contexts. This helps in reducing the number of state objects needed in order to control your rendering pipeline. For example, the alpha test reference value is a candidate to be mutable.
    • We set a *minimum* bar required for texturing and rendering. This includes:
      • - 16 bit floating point support is now a requirement for textures and renderbuffers. Supporting texture filtering and blending is still optional for these formats.
      • - S3TC is a required texture compression format
      • - Interleaved depth/stencil is a required format for FBO rendering
      • - At least one GL3-capable visual or pixel format must be exported which supports front-buffered rendering.
    • OpenGL 3 will not have support for the GL_DOUBLE token. This means it will not be possible to send double precision vertex data to OpenGL.
    • A format object has to be specified per texture attachment when a Program Environment Object is created. This helps minimize the shader re-compiles the driver might have to do when it discovers that the combination of shader and texture formats isn't natively supported by the hardware.
    • GL 3 will only cache one error, and that is the oldest error that occurred.
    • The OpenGL pipeline will be in a valid state once a context is created. Various default objects, created as part of the context creation, will have reasonable default values. These values are such that a simple polygon will be drawn into the window system provided drawable without having to provide a Vertex array object, vertex shader or fragment shader.
    • GLSL related changes:
      • - GLSL 1.30 will support a #include mechanism. The actual shader source for the #include is stored in a new type of object, A "Text Buffer" object. A text buffer object also has a name property, which matches the string name specified in a #include directive.
      • - Legacy gl_* GLSL state variables are accessible through a common block.

    More details will follow soon in an upcoming OpenGL Pipeline newsletter.

    Barthold Lichtenbelt
    OpenGL ARB Working Group chair
    Webmaster Khronos.org and OpenGL.org

  2. #2
    Senior Member OpenGL Pro Zengar's Avatar
    Join Date
    Sep 2001
    Location
    Germany
    Posts
    1,932

    Re: OpenGL 3 Updates

    To make it short, we shoudln't expect the spec untill about new year and first implementations even later... Still, it is good that they are trying to make a solid product. I guess I can wait.

  3. #3
    Advanced Member Frequent Contributor Mars_999's Avatar
    Join Date
    Mar 2001
    Location
    Sioux Falls, SD, USA
    Posts
    519

    Re: OpenGL 3 Updates

    Hey its better late than never! And if it takes abit longer to get something that is done correct, then yes lets wait.

    Why no double vertex data? Is this for speed reasons only? I see with DX10.1 precision of float data will have to be tighter on that hardware... Will this be good enough for everyone? From games to scientific purposes? I am not clear on the #include directive, is this a header file where you have your shaders coded at?

    e.g.
    #include "lightingVS.xxx"
    #include "lightingFS.xxx"
    #include "lightingGS.xxx"

    thanks for the update!!!

  4. #4
    Senior Member OpenGL Pro Zengar's Avatar
    Join Date
    Sep 2001
    Location
    Germany
    Posts
    1,932

    Re: OpenGL 3 Updates

    Double data never made sence as there are no implementations that actually use it. Something like this should be an extension. So IHMO it is a good move.

    As far as I understood, the include works just like in C (copy-pastes a text from another file), only that is works with named buffers instead of files. A very elegant solution!

  5. #5
    Administrator Regular Contributor
    Join Date
    Aug 2001
    Location
    NVIDIA, Fort Collins, CO, USA
    Posts
    184

    Re: OpenGL 3 Updates

    Remember, OpenGL 3 will be implementable on currently shipping hardware. The fast majority of that HW does not natively support double precision vertex data. In GL 2, where you can send double vertex data to the GL, that will likely get converted to floats by the driver or HW. Future hardware might fully support double vertex data, and then support for it can be added back into a future OpenGL 3.x version.

    Barthold

  6. #6
    Junior Member Regular Contributor
    Join Date
    Feb 2006
    Location
    greece
    Posts
    181

    Re: OpenGL 3 Updates

    I'm sure you're doing the best you can and surely these things require time. We'll keep using the already great feature set exposed by gl 2.1(plus extensions of course).
    Everyone is on their toes to use the new api so make it as good as you can!

  7. #7
    Member Regular Contributor
    Join Date
    Apr 2004
    Location
    UK
    Posts
    420

    Re: OpenGL 3 Updates

    Thanks for the update, it's good to know what is going on with it

  8. #8
    Senior Member OpenGL Guru
    Join Date
    Mar 2001
    Posts
    3,576

    Re: OpenGL 3 Updates

    16 bit floating point support is now a requirement for textures and renderbuffers. Supporting texture filtering and blending is still optional for these formats.
    Remind me of something. Do R300 (Radeon 9xxx) and NV30 (GeForce FX's) support 16-bit float textures/renderbuffers? I was hoping that these cards would be the minimum GL 3.0 compatible hardware.

  9. #9
    Member Regular Contributor
    Join Date
    Apr 2006
    Location
    Irvine CA
    Posts
    299

    Re: OpenGL 3 Updates

    The #include mechanism is intended to make partitioning of shader sources easier, but in GL3 is not going to provide a means to do either a callback or a real access to the file system.

    What it does let you do is submit individual buffers of text and attach names to them separately, and then make reference to those named text buffers from another section of text using the #include statement. However at compile time you must be able to provide all of the buffers to GL3 that can be referenced for that compile job, this allows for more than one buffer to have the same name but still let the application disambiguate everything at compile time.

    edit: why do it this way? It keeps all the work to do #include resolution on the server side. It is potentially not as flexible as a callback mechanism, but as we know callbacks do not translate well to a client/server model.

  10. #10
    Member Regular Contributor
    Join Date
    Oct 2006
    Posts
    353

    Re: OpenGL 3 Updates

    Quote Originally Posted by Korval
    16 bit floating point support is now a requirement for textures and renderbuffers. Supporting texture filtering and blending is still optional for these formats.
    Remind me of something. Do R300 (Radeon 9xxx) and NV30 (GeForce FX's) support 16-bit float textures/renderbuffers? I was hoping that these cards would be the minimum GL 3.0 compatible hardware.
    I'm 99% sure that R300 supports 16-bit float textures, but without filtering or blending. I never had a NV30, so I don't know about that.
    [The Open Toolkit library: C# OpenGL 4.4, OpenGL ES 3.1, OpenAL 1.1 for Mono/.Net]

Posting Permissions

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