opengl 2.0 update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... ·...
TRANSCRIPT
![Page 2: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/2.jpg)
Overview• What’s probably in…• What’s probably not in…• review of functionality
Caveat: The ARB has not reached a final decision on the exact 2.0 feature set, so things could change.
![Page 3: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/3.jpg)
What’s probably in…• shading lanugage• floating point pipeline• pixel buffer object (PBO)• sprites• texture dimensions• accum enhancements• multiple draw buffers• two-sided stencil• blend func/equation separate• extension query
![Page 4: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/4.jpg)
What’s probably not in…
• uber buffers• texture mirror clamp• assembly vertex programs• assembly fragment programs
![Page 5: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/5.jpg)
Shading Language
• Bill Licea-Kane covered these details in his presentation.
![Page 6: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/6.jpg)
Floating Point Pipeline
• Allow general-purpose rendering to and texturing from fp buffers and textures
• Incorporates several extensions:– ARB_pixel_format_float– ARB_texture_float– ARB_half_float_pixel– ARB_color_clamp_control
![Page 7: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/7.jpg)
ARB_pixel_format_float
• Allow specification of float components for PFD
• unclamped clear value
![Page 8: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/8.jpg)
ARB_texture_float
• floating point internal formats
• Also supports queries to determine component type
• RGBA32F• RGB32F• ALPHA32F• INTENSITY32F• LUMINANCE32F• LUMINANCE_ALPHA32F
• RGBA16F• RGB16F• ALPHA16F• INTENSITY16F• LUMINANCE16F• LUMINANCE_ALPHA16F
![Page 9: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/9.jpg)
ARB_half_float_pixel• “external format” for fp16 pixel data from
the CPU• s1e5m10
– 1 sign bit– 5 exponent bits (bias of 15)– 10 mantissa bits– special numbers undefined– denorms defined
![Page 10: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/10.jpg)
ARB_color_clamp_control
• for fp rendering, clamps usually unwanted
• but OpenGL specifies clamping due to its fixed-point heritage
• this extension allows the app to explicitly disable those clamps
![Page 11: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/11.jpg)
Pixel Buffer Object (PBO)• VBO “buffer objects” are just arrays of bytes
managed by the driver• PBO uses same API, but has binding points
for – PIXEL_PACK_BUFFER
• glReadPixels(), glGetTexImage(), etc.
– PIXEL_UNPACK_BUFFER• glTexImage*(), glDrawPixels(), etc.
• Caveat: Currently only an EXT extension!
![Page 12: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/12.jpg)
Sprites
• Points with varying texture coordinates• Nothing especially new here, though the
question of t coordinate still being discussed– most hardware supports upper-left origin– import from Direct3D
![Page 13: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/13.jpg)
Texture Dimensions
• (EXT,NV)_texture_rectangle– no power-of-two constraints– but, no mipmapping, no repeat, no borders– coordinates are not normalized
• (0..w, 0..h)
– lots of hardware support
![Page 14: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/14.jpg)
Texture Dimensions
• ARB_texture_non_power_of_two– just conventional texture targets without
the requirement that dimensions be power-of-two
– mip level dimensions use “floor” convention• wi = floor( w0 / 2i )
– some concern about support• may be limited to 2D targets in OpenGL 2.0
![Page 15: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/15.jpg)
Accum Enhancements
• Modern consumer hardware finally accelerates accum! ☺
• Some additional functionality– SUN_slice_accum
• dst alpha lerp into accumulation buffer
– ARB_accum_composite
![Page 16: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/16.jpg)
ARB_accum_composite
• Augments the accum operations– OVER– UNDER– PREMULT_OVER– PREMULT_UNDER
• analogous to glBlendFuncSeparate for accum
![Page 17: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/17.jpg)
Multiple Draw Buffers
• From ATI_draw_buffers• In the C code:
GLenum buffers[] = { GL_AUX0, GL_AUX1 };glDrawBuffers( 2, buffers );
• In the shader:OP result.color[0], src0, src1, …;OP result.color[1], src0, src1, …;
![Page 18: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/18.jpg)
Two-Sided Stencil
• Some unified form of the functionality in– EXT_stencil_two_side or– ATI_separate_stencil
• Helpful for single-pass stenciled shadow volume rendering.– front faces incr, back faces decr happens
simultaneously
![Page 19: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/19.jpg)
Blend Equation Separate
• EXT_blend_func_separate– separate srcFactor and dstFactor for RGB
and A
• EXT_blend_equation_separate– separate blend equations for RGB and A
![Page 20: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/20.jpg)
Extension Query
• ARB_extension_query– boolean IsExtensionSupportedARB(const GLubyte *name);
– Nothing fancy, just a clearer way for apps to ask about extension support
– Seems we always have apps that copy the extensions string into a fixed-size buffer!
![Page 21: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/21.jpg)
Stuff that’s not in…
• uber buffers– Rob Mace will be talking about the status
of the superbuffers work group
• texture mirror clamp– ARB not convinced that this is important
enough to be “core”
![Page 22: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/22.jpg)
Stuff that’s not in…(2)
• ARB_vertex_program & ARB_fragment_program– general lack of interest in making the ASM
interfaces core
![Page 23: OpenGL 2.0 Update - http.download.nvidia.comhttp.download.nvidia.com/developer/presentations... · OpenGL 2.0 Update Cass Everitt cass@nvidia.com. ... Caveat: The ARB has not reached](https://reader034.vdocuments.us/reader034/viewer/2022043003/5f8172984286784c147e96c6/html5/thumbnails/23.jpg)
Parting Queries• Where does the ARB need to focus
efforts?– demos, whitepapers?– more rapid spec revs?– developer conference?
• How do ISVs provide feedback?– Is something less formal than the
participant undertaking desirable?