Tomlinson, Gordon wrote:
Time to start the re-write...
Src: http://www.khronos.org/news/press/releases/khronos_releases_opengl_30_specifications_to_support_latest_generations_of/
See Spec @ http://www.opengl.org/registry/doc/glspec30.20080811.pdf
I saw this interesting comment from the ARB chairman on Slashdot ("OpenGL 3.0 Released, Developers furious")

Paul

<quote>
What happened to Longs Peak?

In January 2008 the ARB decided to change directions. At that point it had become clear that doing Longs Peak, although a great effort, wasn't going to happen. We ran into details that we couldn't resolve cleanly in a timely manner. For example, state objects. The idea there is that of all state is immutable. But when we were deciding where to put some of the sample ops state, we ran into issues. If the alpha test is immutable, is the alpha ref value also? If we do so, what does this mean to a developer? How many (100s?) of objects does a developer need to manage? Should we split sample ops state into more than one object? Those kind of issues were taking a lot of time to decide.

Furthermore, the "opt in" method in Longs Peak to move an existing application forward has its pros and cons. The model of creating another context to write Longs Peak code in is very clean. It'll work great for anyone who doesn't have a large code base that they want to move forward incrementally. I suspect that that is most of the developers that are active in this forum. However, there are a class of developers for which this would have been a, potentially very large, burden. This clearly is a controversial topic, and has its share of proponents and opponents.

While we were discussing this, the clock didn't stop ticking. The OpenGL API *has to* provide access to the latest graphics hardware features. OpenGL wasn't doing that anymore in a timely manner. OpenGL was behind in features. All graphics hardware vendors have been shipping hardware with many more features available than OpenGL was exposing. Yes, vendor specific extensions were and are available to fill the gap, but that is not the same as having a core API including those new features. An API that does not expose hardware capabilities is a dead API.

Thus, prioritization was needed, and we made several decisons.

1) We set a goal of exposing hardware functionality of the latest generations of hardware by this Siggraph. Hence, the OpenGL 3.0 and GLSL 1.30 API you guys all seem to love ;\)

2) We decided on a formal mechanism to remove functionality from the API. We fully realize that the existing API has been around for a long time, has cruft and is inconsistent with its treatment of objects (how many object models are in the OpenGL 3.0 spec? You count). In its shortest form, removing functionality is a two-step process. First, functionality will be marked "deprecated" in the specification. A long list of functionality is already marked deprecated in the OpenGL 3.0 spec. Second, a future revision of the core spec will actually remove the deprecated functionality. After that, the ARB has options. It can decide to do a third step, and fold some of the removed functionality into a profile. Profiles are optional to implement (more below) and its functionality might still be very important to a sub-set of the OpenGL market. Note that we also decided that new functionality does not have to, and will likely not work with, deprecated functionality. That will make the spec easier to write, read and understand, and drivers easier to implement.

3) We decided to provide a way to create a forward-compatible context. That is an OpenGL 3.0 context with all deprecated features removed. Giving you, as a developer, a preview of what a next version of OpenGL might look like. Drivers can take advantage of this, and might be able to optimize certain code paths in the forward-compatible context only. This is described in the WGL_ARB_create_context extension spec.

4) We decided to have a formal way of defining profiles. During the Longs Peak design phase, we ran into disagreement over what features to remove from the API. Longs Peak removed quite a lot of features as you might remember. Not coincidentally, most of those features are marked deprecated in OpenGL 3.0. The disagreements happened because of different market needs. For some markets a feature is essential, and removing it will cause issues, whereas for another market it is not. We discovered we couldn't do one API to serve all. A profile encapsulates functionality needed to meet the needs of a particular market. Conformant OpenGL products may implement one or more profiles. A profile is by definition a subset of the whole core specification. The core OpenGL specification will contain all functionality, including what is in a profile, in a coherently designed whole. Profiles simply enable products for certain markets to not ship functionality that is not relevant to those markets in a well defined way. Only the ARB may define profiles, individual vendors may not (this in contrast to extensions).

5) We will keep working on object model issues. Yes, this work has been put on the back burner to get OpenGL 3.0 done, but we have picked that work up again. One of the early results of this is that we will work on folding object model improvements into the core in a more incremental manner.

6) We decided to provide functionality, where possible, as extensions to OpenGL 2.1. Any OpenGL 3.0 feature that does not require OpenGL 3.0 hardware is also available in extension form to OpenGL 2.1. The idea here is that new functionality on older hardware enables software vendors to provide upgrades to their existing users.

7) We decided that OpenGL is not going to evolve into a general GPU compute API. In the last two years or so compute using a GPU and a CPU has taken off, in fact is exploding. Khronos has recognized this and is on a fast track to define and release OpenCL, the open standard for compute programming. OpenGL and OpenCL will be able to share data, like buffer objects, in an efficient manner.

There are many good ideas in Longs Peak. They are not lost. We would be stupid to ignore it. We spent almost two years on it, and a lot of good stuff was designed. There is a desire to work on object model issues in the ARB, and we recently started doing that again. Did you know that you have no guarantee that if you change properties of a texture or render buffer attached to a framebuffer object that the framebuffer object will actually notice? It has to notice it, otherwise your next rendering command will not work. Each vendor's implementation deals with this case a bit differently. If you throw in multiple contexts in the mix, this becomes an even more interesting issue. The ARB wants to do object model improvements right the first time. We can't afford to do it wrong. At the same time, the ARB will work on exposing new hardware functionality in a timely manner.

I want to ask you to take a deep breath, let this all sink in a bit, and then open up the OpenGL 3.0 and GLSL 1.30 specifications we just posted that have all new stuff clearly marked. Hopefully you'll agree with me that there's quite a lot of new stuff to be excited about.

http://www.opengl.org/registry/doc/glspec30.20080811.withchanges.pdf [opengl.org] http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.30.08.withchanges.pdf [opengl.org]

This is certainly not the end of the OpenGL API. OpenGL will evolve and will become better with every new revision. I welcome constructive feedback.

Regards,
Barthold Lichtenbelt
OpenGL ARB Working Group chair

</quote>


      Khronos Releases OpenGL 3.0 Specifications to Support Latest
      Generations of Programmable Graphics Hardware

/Strong industry support for state-of-the-art OpenGL 3.0 API and GLSL 1.30 shading language specifications on all major platforms; OpenGL evolutionary model to accelerate development of standard; Interoperability with OpenCL being defined/

*For more information:*
Elizabeth Riegel, Managing Director, Khronos Group
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
From outside US: +1 415 869 8627

/Strong industry support for state-of-the-art OpenGL 3.0 API and GLSL 1.30 shading language specifications on all major platforms; OpenGL evolutionary model to accelerate development of standard; Interoperability with OpenCL being defined /

*11th August, 2008 – SIGGRAPH, Los Angeles, CA *The Khronos™ Group announced today it has released the OpenGL® 3.0 specification with strong industry support to bring significant new functionality to the open, cross-platform standard for 3D graphics acceleration. OpenGL 3.0 includes GLSL™ 1.30, a new version of the OpenGL shading language, and provides comprehensive access to the functionality of the latest generations of programmable graphics hardware. The OpenGL working group has also defined a set of OpenGL 3.0 extensions that expose potential new functionality for the next version of OpenGL that is targeted for release in less than 12 months, and a set of extensions for OpenGL 2.1 to enable much of the new OpenGL functionality on older hardware. Additionally, OpenGL 3.0 introduces an evolutionary model to assist in streamlining the specification and to enable rapid development of the standard to address diverse markets. Finally, the OpenGL working group has announced that it is working closely with the emerging OpenCL standard to create a revolutionary pairing of compute and graphics programming capabilities. The new OpenGL 3.0 specifications are freely available at www.khronos.org/opengl <http://www.khronos.org/opengl/>.

The OpenGL 3.0 specification enables developers to leverage state-of-the-art graphics hardware, including many of the graphics accelerators shipped in the last two years both on Windows XP and Windows Vista as well as Mac OS and Linux. According to Dr. Jon Peddie of Jon Peddie Research, a leading graphics market analyst based in California, the installed base of graphics hardware that will support OpenGL 3.0 exceeds 60 million units. AMD, Intel and NVIDIA have made major contributions to the design of OpenGL 3.0 and today all three companies announced their intent to provide full implementations within their product families. Additionally, the OpenGL working group includes the active participation of leading developers such as Blizzard Entertainment and TransGaming that have played a vital role in ensuring that the specification meets the genuine needs of the software community.

“We are very pleased to see the release of OpenGL 3.0, which includes numerous features and extensions that will help us and other ISVs bring amazing gaming content to OpenGL-based platforms,” commented Gavriel State, founder & CTO of TransGaming, Inc.

OpenGL 3.0 introduces dozens of new features including:

    * Vertex Array Objects to encapsulate vertex array state for
      easier programming and increased throughput;
    * non-blocking access to Vertex Buffer Objects with the ability to
      update and flush a sub-range for enhanced performance;
    * full framebuffer object functionality including multi-sample
      buffers, blitting to and from framebuffer objects, rendering to
      one and two-channel data, and flexible mixing of buffer sizes
      and formats when rendering to a framebuffer object;
    * 32-bit floating-point textures and render buffers for increased
      precision and dynamic range in visual and computational operations;
    * conditional rendering based on occlusion queries for increased
      performance;
    * compact half-float vertex and pixel data to save memory and
      bandwidth;
    * transform feedback to capture geometry data after vertex
      transformations into a buffer object to drive additional compute
      and rendering passes;
    * four new texture compression schemes for one and two channel
      textures providing a factor of 2-to-1 storage savings over
      uncompressed data;
    * rendering and blending into sRGB framebuffers to enable faithful
      color reproduction for OpenGL applications without adjusting the
      monitor's gamma correction;
    * texture arrays to provide efficient indexed access into a set of
      textures;
    * 32-bit floating-point depth buffer support.

The new version of the OpenGL Shading Language, GLSL 1.30, provides front-to-back native integer operations including full integer-based texturing, integer input and outputs for vertex and fragment shaders and a full set of integer bitwise operators. It also improves compatibility with OpenGL ES, adds new interpolation modes, includes new forms of explicit control over texturing operations, provides additional built-in functions for manipulating floating-point numbers and introduces switch statements for enhanced flow control within shader programs.

The OpenGL working group has also released a set of extensions to OpenGL 3.0 that can be immediately used by developers and, after industry feedback, will potentially be included in the next generation of OpenGL targeted for release in less than 12 months. These extensions include geometry shaders, further instancing support, and texture buffer objects.

Khronos today also released a number of extensions to OpenGL 2.1 which enables some of the new features in OpenGL 3.0 to be used on older generations of hardware. These extensions include enhanced VBOs, full framebuffer object functionality, half float vertices, compressed textures, vertex array objects and sRGB framebuffers.

Additionally, OpenGL 3.0 defines an evolutionary process for OpenGL that will accelerate market-driven updates to the specification. The new OpenGL API supports the future creation of profiles to enable products to support specific market needs while not burdening every implementation with unnecessary costs. To avoid fragmentation, the core OpenGL specification will contain all defined functionality in an architecturally coherent whole, with profiles tightly specifying segment-relevant subsets. OpenGL 3.0 also introduces a deprecation model to enable the API to be streamlined while providing full visibility to the application developer community, enabling the API to be optimized for current and future 3D graphics architectures.

Finally, the OpenGL working group is working closely with the newly announced OpenCL working group at Khronos to define full interoperability between the two open standards. OpenCL is an emerging royalty-free standard focused on programming the emerging intersection of GPU and multi-core CPU compute through a C-based language forheterogeneous data and task parallel computing. The two APIs together will provide a powerful open standards-based visual computing platform with OpenCL’s general purpose compute capabilities intimately combined with the full power of OpenGL.

“OpenGL 3.0 is a significant evolutionary step that integrates new functionality to ensure that OpenGL is a truly state-of-the-art graphics API while supporting a broad swathe of existing hardware,” said Barthold Lichtenbelt, chair of the OpenGL working group at Khronos. “Just as importantly, OpenGL 3.0 sets the stage for a revolution to come – we now have the roadmap machinery and momentum in place to rapidly and reliably develop OpenGL - and are working closely with OpenCL to ensure that OpenGL plays a pivotal role in the ongoing revolution in programmable visual computing.”

More details on OpenGL 3.0 will be discussed at the OpenGL “Birds of a Feather” meeting at SIGGRAPH in Los Angeles at 6PM on Wednesday August 13th at the Wilshire Grand Hotel. More details at http://www.khronos.org/news/events/detail/siggraph_2008_los_angeles_california/.

*About OpenGL*
The OpenGL specification enables developers to incorporate a broad set of programmable 3D and 2D graphics rendering and visualization functions, and provides unfettered access to graphics hardware acceleration. Since its introduction by SGI in 1992, OpenGL has become the industry’s most widely used and supported programming interface and is available on all major computer platforms, including Windows, Linux and Mac OS. Controlled by the Khronos Group since 2006, and with broad industry support, OpenGL is a vendor-neutral, multiplatform graphics standard that is uniquely positioned to leverage and drive the continuing evolution of graphics hardware.

*About The Khronos Group*
The Khronos Group is an industry consortium creating open standards to enable the authoring and acceleration of graphics and dynamic media on a wide variety of platforms and devices. Khronos standards include OpenGL, OpenGL ES, OpenMAX™, OpenVG™, OpenKODE™, and COLLADA™. All Khronos members are able to contribute to the development of Khronos specifications, are empowered to vote at various stages before public deployment, and can accelerate the delivery of their cutting-edge media platforms and applications through early access to specification drafts and conformance tests. More information is available at www.khronos.org <http://www.khronos.org/>.

/Gordon/

__________________________________________________________
/Gordon Tomlinson
//Email / : gtomlinson @ overwatch.textron.com/
/

__________________________________________________________
//(C)//:/ (+1) 571-265-2612*
*(W)//:/ //(+1) 703-437-7651//

"Self defence is not a function of learning tricks
but is a function of how quickly and intensely one
can arouse one's instinct for survival"
- */Master Tambo Tetsura/*

------------------------------------------------------------------------

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to