OpenGL SC
-
Upload
the-khronos-group-inc -
Category
Technology
-
view
1.076 -
download
0
description
Transcript of OpenGL SC
© Copyright Khronos Group, 2012 - Page 1
OpenGL SC: differences to OpenGL ES
Nakhoon Baek CTO, Mobile Graphics Inc., Korea
Professor, Kyungpook National University, Korea
© Copyright Khronos Group, 2012 - Page 2
OpenGL SC
© Copyright Khronos Group, 2012 - Page 3
Safety Critical – OpenGL SC 1.0 • targeted at safety-certified avionics and automotive displays
- minimum driver size and complexity
- DO-178B certification
•working group:
- Seaweed (now, Presagis)
- Barco
- ALT Software
- Diehl Aerospace
- Esmertec (now, Myriad Group)
- 3DLabs (now, ZiiLABS)
- Quantum3D
http://mobilegraphics.co.kr/ 3
© Copyright Khronos Group, 2012 - Page 4
Military & Avionics: the major market
© Copyright Khronos Group, 2012 - Page 5
OpenGL SC 1.0 • originally, OpenGL ES Security Critical Profile
- started as a variation of OpenGL ES
• spin out as OpenGL SC 1.0
http://mobilegraphics.co.kr/ 5
© Copyright Khronos Group, 2012 - Page 6
OpenGL SC features
• based on OpenGL 1.3
• extinguished features (w.r.t. OpenGL ES)
- glBegin / glEnd paradigm
- display support : a kind of script
• recently,
- OpenGL SC 1.0 conformance test suites
- discussions on the next version (F2F meeting in this Oct.) - OpenGL SC 1.1 ?
- OpenGL SC 2.0 ?
http://mobilegraphics.co.kr/ 6
© Copyright Khronos Group, 2012 - Page 7
Relationships
• OpenGL 1.3 OpenGL ES 1.0
OpenGL SC 1.0
• OpenGL 1.5 OpenGL ES 1.1
• OpenGL 2.0 + extra features
OpenGL ES 2.0
• OpenGL 3.x OpenGL ES 3.0 (Halti) Expected
http://mobilegraphics.co.kr/ 7
© Copyright Khronos Group, 2012 - Page 8
Certifications for Airborne Systems
8 mobile graphics lab@KNU
© Copyright Khronos Group, 2012 - Page 9
DO-178B • DO-178B, Software Considerations in Airborne Systems and Equipment
Certification
- from RTCA, Inc. (Radio Technical Commission for Aeronautics)
- FAA (Federal Aviation Administration) 인증
- goal: guidance to determine if the software will perform safely and
reliably, in an airborne environment
• also known as ED-12B
- from EUROCAE (European Organization for Civil Aviation Equipment)
mobile graphics lab@KNU 9
© Copyright Khronos Group, 2012 - Page 10
DO-178B : software levels • Catastrophic - Failure may cause a crash.
• Hazardous - Failure has a large negative impact on safety or performance
•Major - Failure is significant, but has a lesser impact than a Hazardous
failure
•Minor - Failure is noticeable, but has a lesser impact than a Major failure
• No Effect - Failure has no impact on safety, aircraft operation, or crew
workload.
mobile graphics lab@KNU 10
© Copyright Khronos Group, 2012 - Page 11
DO-178B : process • from Software Engineering point of view,
• lots of documents !
• at Planning Stage,
- Plan for software aspects of certification (PSAC)
- Software development plan (SDP)
- Software verification plan (SVP)
- Software configuration management plan (SCMP)
- Software quality assurance plan (SQAP)
- System requirements
- Software requirements standards
- Software design standards (SDS)
- Software code standards (SCS)
mobile graphics lab@KNU 11
© Copyright Khronos Group, 2012 - Page 12
DO-178B : process • Development stage,
- Software requirements data (SRD)
- Software design description (SDD)
- Source code
- Executable object code
• Verification stage,
- Software verification cases and procedures (SVCP)
- Software verification results (SVR):
- Review of all requirements, design and code
- Testing of executable object code
- Code coverage analysis
mobile graphics lab@KNU 12
© Copyright Khronos Group, 2012 - Page 13
DO-178B : process • Configuration management
- Software configuration index (SCI)
- Software life cycle environment configuration index (SECI)
• Quality Assurance
- Software quality assurance records (SQAR)
- Software conformity review (SCR)
- Software accomplishment summary (SAS)
mobile graphics lab@KNU 13
© Copyright Khronos Group, 2012 - Page 14
SC components
© Copyright Khronos Group, 2012 - Page 15
OpenGL SC core features
• OpenGL SC core functions: totally 101 functions
- 32 functions are completely new features w.r.t. OpenGL ES
- glBegin / glEnd paradigm
- glVertex functions
- display list support : a kind of script
http://mobilegraphics.co.kr/ 15
© Copyright Khronos Group, 2012 - Page 16
Core Addition
• OES_single_precision extension
- DepthRangef(clampf n, clampf f)
- Frustumf(float l, float r, float b, float t, float n, float f)
- Orthof(float l, float r, float b, float t, float n, float f)
- ClearDepthf(clampf depth)
- allowing float-type parameters, rather than double-type
http://mobilegraphics.co.kr/ 16
© Copyright Khronos Group, 2012 - Page 17
Required Extension
• EXT_paletted_texture
- color-indexed texture + color table (or, palette)
- need COLOR_INDEX8_EXT extension support for texturing functions
- need some extensions into the TexImage2D function
- ColorTableEXT
- ColorSubTableEXT
- GetColorTableEXT
- GetColorTableParameterivEXT
http://mobilegraphics.co.kr/ 17
© Copyright Khronos Group, 2012 - Page 18
Optional Extension
• EXT_shared_texture_palette
- several textures can share a single texture palette
- need some extensions to Enable, Disable, IsEnabled, GetBooleanv, GetFloatv,
GetIntegerv functions
- ColorTableEXT
- ColorSubTableEXT
- GetColorTableEXT
- GetColorTableParameterivEXT
http://mobilegraphics.co.kr/ 18
© Copyright Khronos Group, 2012 - Page 19
Technical Issues • new implementations are needed for:
- required extension: EXT_paletted_texture
- optional extension: EXT_shared_texture_palette
• since year 2004, there is no graphics card supporting the above extensions
- old NVIDIA chips such as GeForce 5 series can support it.
- no ATI chips support it.
• Conclusively, new implementations are required
http://mobilegraphics.co.kr/ 19
© Copyright Khronos Group, 2012 - Page 20
API Features
© Copyright Khronos Group, 2012 - Page 21
2.5 GL Errors
mobile graphics lab@KNU 21
© Copyright Khronos Group, 2012 - Page 22
Geometric Primitives • All geometric primitives are specified by vertices
http://mobilegraphics.co.kr/ 22
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
GL_POINTS GL_LINES
GL_LINE_LOOP GL_LINE_STRIP
GL_TRIANGLES
GL_QUADS GL_QUAD_STRIP
GL_POLYGON
© Copyright Khronos Group, 2012 - Page 23
2.6 Begin/End Paradigm • drawing primitives:
- points
- line segment, line strip, line loop
- triangle, triangle strip, triangle fan
mobile graphics lab@KNU 23
© Copyright Khronos Group, 2012 - Page 24
2.6 Begin/End Paradigm • state machine approach
• not supported in OpenGL ES
• glBegin( GL_TRIANGLES );
- glColor4f( 1.0F, 0.5F, 0.5F, 1.0F );
- glVertex2f( 0.0F, 0.0F );
- glVertex2f( 1.0F, 0.0F );
- glVertex2f( 0.0F, 1.0F );
• glEnd( );
mobile graphics lab@KNU 24
© Copyright Khronos Group, 2012 - Page 25
2.7 Vertex Specification • float version only
mobile graphics lab@KNU 25
© Copyright Khronos Group, 2012 - Page 26
2.8 Vertex Arrays • float version only
• no stride : always tightly packed arrays
mobile graphics lab@KNU 26
© Copyright Khronos Group, 2012 - Page 27
2.8 Vertex Arrays • DrawArrays, DrawElements : similar to OpenGL ES
mobile graphics lab@KNU 27
© Copyright Khronos Group, 2012 - Page 28
2.10 Coordinate Transformations • corresponds to OpenGL ES 1.1 features
mobile graphics lab@KNU 28
© Copyright Khronos Group, 2012 - Page 29
2.10 Coordinate Transformations • no texture matrix
mobile graphics lab@KNU 29
© Copyright Khronos Group, 2012 - Page 30
2.13 Colors and Coloring • single material properties for front and back faces
mobile graphics lab@KNU 30
© Copyright Khronos Group, 2012 - Page 31
2.13 Colors and Coloring • only 2 lights
• no spot light
mobile graphics lab@KNU 31
© Copyright Khronos Group, 2012 - Page 32
2.13 Colors and Coloring • no two side lighting
• color material support
mobile graphics lab@KNU 32
© Copyright Khronos Group, 2012 - Page 33
3.2 Antialiasing • no multisampling support
mobile graphics lab@KNU 33
© Copyright Khronos Group, 2012 - Page 34
3.3 Points •minimum requirement: only for point size = 1
mobile graphics lab@KNU 34
© Copyright Khronos Group, 2012 - Page 35
3.4 Line Segments • line stipples are supported
mobile graphics lab@KNU 35
© Copyright Khronos Group, 2012 - Page 36
3.5 Polygons • polygon stipples are also support
mobile graphics lab@KNU 36
© Copyright Khronos Group, 2012 - Page 37
3.8 Texturing • supported image types: unsigned byte only
mobile graphics lab@KNU 37
© Copyright Khronos Group, 2012 - Page 38
3.8 Texturing • texture image formats and types
mobile graphics lab@KNU 38
© Copyright Khronos Group, 2012 - Page 39
3.8 Texturing • 2D texture only
mobile graphics lab@KNU 39
© Copyright Khronos Group, 2012 - Page 40
3.8 Texturing • 2D texture only
mobile graphics lab@KNU 40
© Copyright Khronos Group, 2012 - Page 41
3.8 Texturing • no texture release !
- no garbage collection
- i.e., only memory allocations
mobile graphics lab@KNU 41
© Copyright Khronos Group, 2012 - Page 42
3.8 Texturing • texture environment support
- limited environment modes: MODULATE, REPLACE, DECAL, BLEND, ADD
mobile graphics lab@KNU 42
© Copyright Khronos Group, 2012 - Page 43
3.9 Fog
• no fog support
mobile graphics lab@KNU 43
© Copyright Khronos Group, 2012 - Page 44
Getting to the Framebuffer
http://mobilegraphics.co.kr/ 44
Blending Depth
Test Dithering Logical
Operations
Scissor
Test
Stencil
Test
Alpha
Test
Fra
gm
ent
Fra
meb
uff
er
© Copyright Khronos Group, 2012 - Page 45
Scissor Box, Alpha Test • Additional Clipping Test
glScissor( x, y, w, h )
- any fragments outside of box are clipped
- useful for updating a small section of a viewport
• Reject pixels based on their alpha value glAlphaFunc( func, value )
glEnable( GL_ALPHA_TEST )
- use alpha as a mask in textures
http://mobilegraphics.co.kr/ 45
© Copyright Khronos Group, 2012 - Page 46
Stencil Buffer glStencilFunc( func, ref, mask )
glStencilOp( fail, zfail, zpass )
• controlled drawing based on values in the stencil buffer
- Example: create a mask in stencil buffer
and draw only objects not in mask area
http://mobilegraphics.co.kr/ 46
stencil area
for the mirror
© Copyright Khronos Group, 2012 - Page 47
Blending • Combine pixels with what’s in already
in the framebuffer glBlendFunc( src, dst )
http://mobilegraphics.co.kr/ 47
Framebuffer
Pixel (dst)
Blending
Equation Fragment
(src)
Blended
Pixel
pfr CdstCsrcC
© Copyright Khronos Group, 2012 - Page 48
4.1 Per-Fragment Operations • restricted alpha functions: LEQUAL, ALWAYS only
mobile graphics lab@KNU 48
© Copyright Khronos Group, 2012 - Page 49
4.1 Per-Fragment Operations • restricted depth function support: LESS, LEQUAL, ALWAYS only
mobile graphics lab@KNU 49
© Copyright Khronos Group, 2012 - Page 50
4.1 Per-Fragment Operations • Blend Factor Combinations
• no other modes are supported
mobile graphics lab@KNU 50
© Copyright Khronos Group, 2012 - Page 51
4.1 Per-Fragment Operations • restricted blend function support
mobile graphics lab@KNU 51
© Copyright Khronos Group, 2012 - Page 52
4.2 Whole Frame-buffer Operations • same to OpenGL ES
mobile graphics lab@KNU 52
© Copyright Khronos Group, 2012 - Page 53
2.12 Current Raster Position • specify the location for glBitmap, glDrawPixels, glCopyPixels
mobile graphics lab@KNU 53
© Copyright Khronos Group, 2012 - Page 54
3.6 Pixel Rectangles / 3.7 Bitmaps • DrawPixels : RGBA image only
• Bitmap : B/W image, drawn with current raster color
- current raster color = current color when the last glRasterPos( ) called.
mobile graphics lab@KNU 54
© Copyright Khronos Group, 2012 - Page 55
4.3 Pixels • ReadPixels : RGBA, unsigned byte only
• CopyPixels : specified region current raster position
mobile graphics lab@KNU 55
© Copyright Khronos Group, 2012 - Page 56
5.4 Display Lists
• no release of allocated lists
mobile graphics lab@KNU 56
© Copyright Khronos Group, 2012 - Page 57
5.5 Flush and Finish
mobile graphics lab@KNU 57
© Copyright Khronos Group, 2012 - Page 58
5.6 Hints • only hints, maybe not working
mobile graphics lab@KNU 58
© Copyright Khronos Group, 2012 - Page 59
6.1 Querying • no double type support
mobile graphics lab@KNU 59
© Copyright Khronos Group, 2012 - Page 60
Core Extension: OES_single_precision
mobile graphics lab@KNU 60
© Copyright Khronos Group, 2012 - Page 61
Required: EXT_paletted_texture • paletted texture
mobile graphics lab@KNU 61
© Copyright Khronos Group, 2012 - Page 62
Required: EXT_paletted_texture • COLOR_INDEX8 are supported
mobile graphics lab@KNU 62
© Copyright Khronos Group, 2012 - Page 63
Required: EXT_paletted_texture • add new functions
mobile graphics lab@KNU 63
© Copyright Khronos Group, 2012 - Page 64
Optional: EXT_shared_texture_palette • affected functions:
mobile graphics lab@KNU 64
© Copyright Khronos Group, 2012 - Page 65
Closing Remarks
65 mobile graphics lab@KNU
© Copyright Khronos Group, 2012 - Page 66
Summary
• OpenGL SC : safety critical profile
- based on OpenGL 1.3
- similar to OpenGL ES 1.1
- but, some distinguished features - begin-end paradigm
- display lists
- texture palettes
• future works
- a new version is expected
- conformance test passed implementations are expected to be used widely