Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OpenGL SC: differences to OpenGL ES
Nakhoon Baek
CTO, Mobile Graphics Inc., Korea
Professor, Kyungpook National University...
OpenGL SC

© Copyright Khronos Group, 2012 - Page 2
Safety Critical – OpenGL SC 1.0
• targeted at safety-certified avionics and automotive displays
- minimum driver size and ...
Military & Avionics: the major market

© Copyright Khronos Group, 2012 - Page 4
OpenGL SC 1.0
• originally, OpenGL ES Security Critical Profile
- started as a variation of OpenGL ES
• spin out as OpenGL...
OpenGL SC features
• based on OpenGL 1.3
• extinguished features (w.r.t. OpenGL ES)
- glBegin / glEnd paradigm
- display s...
Relationships
• OpenGL 1.3

 OpenGL ES 1.0
 OpenGL SC 1.0

• OpenGL 1.5

 OpenGL ES 1.1

• OpenGL 2.0 + extra features
...
Certifications for Airborne
Systems
mobile graphics lab@KNU

8 Copyright Khronos Group, 2012 - Page 8
©
DO-178B
• DO-178B, Software Considerations in Airborne Systems and Equipment
Certification
- from RTCA, Inc. (Radio Techni...
DO-178B : software levels
• Catastrophic - Failure may cause a crash.
• Hazardous - Failure has a large negative impact on...
DO-178B : process
• from Software Engineering point of view,
• lots of documents !
• at Planning Stage,
- Plan for softwar...
DO-178B : process
• Development stage,
- Software requirements data (SRD)
- Software design description (SDD)
- Source cod...
DO-178B : process
• Configuration management
- Software configuration index (SCI)
- Software life cycle environment config...
SC components

© Copyright Khronos Group, 2012 - Page 14
OpenGL SC core features
• OpenGL SC core functions: totally 101 functions
- 32 functions are completely new features w.r.t...
Core Addition
• OES_single_precision extension
- DepthRangef(clampf n, clampf f)
- Frustumf(float l, float r, float b, flo...
Required Extension
• EXT_paletted_texture
- color-indexed texture + color table (or, palette)
- need COLOR_INDEX8_EXT exte...
Optional Extension
• EXT_shared_texture_palette
- several textures can share a single texture palette
- need some extensio...
Technical Issues
• new implementations are needed for:
- required extension: EXT_paletted_texture
- optional extension: EX...
API Features

© Copyright Khronos Group, 2012 - Page 20
2.5 GL Errors

mobile graphics lab@KNU

21

© Copyright Khronos Group, 2012 - Page 21
Geometric Primitives
• All geometric primitives are specified by vertices

GL_POINTS

GL_LINES
GL_LINE_STRIP

GL_LINE_LOOP...
2.6 Begin/End Paradigm
• drawing primitives:
- points
- line segment, line strip, line loop
- triangle, triangle strip, tr...
2.6 Begin/End Paradigm
• state machine approach
• not supported in OpenGL ES

• glBegin( GL_TRIANGLES );
- glColor4f( 1.0F...
2.7 Vertex Specification
• float version only

mobile graphics lab@KNU

25

© Copyright Khronos Group, 2012 - Page 25
2.8 Vertex Arrays
• float version only
• no stride : always tightly packed arrays

mobile graphics lab@KNU

26

© Copyrigh...
2.8 Vertex Arrays
• DrawArrays, DrawElements : similar to OpenGL ES

mobile graphics lab@KNU

27

© Copyright Khronos Grou...
2.10 Coordinate Transformations
• corresponds to OpenGL ES 1.1 features

mobile graphics lab@KNU

28

© Copyright Khronos ...
2.10 Coordinate Transformations
• no texture matrix

mobile graphics lab@KNU

29

© Copyright Khronos Group, 2012 - Page 2...
2.13 Colors and Coloring
• single material properties for front and back faces

mobile graphics lab@KNU

30

© Copyright K...
2.13 Colors and Coloring
• only 2 lights
• no spot light

mobile graphics lab@KNU

31

© Copyright Khronos Group, 2012 - P...
2.13 Colors and Coloring
• no two side lighting
• color material support

mobile graphics lab@KNU

32

© Copyright Khronos...
3.2 Antialiasing
• no multisampling support

mobile graphics lab@KNU

33

© Copyright Khronos Group, 2012 - Page 33
3.3 Points
• minimum requirement: only for point size = 1

mobile graphics lab@KNU

34

© Copyright Khronos Group, 2012 - ...
3.4 Line Segments
• line stipples are supported

mobile graphics lab@KNU

35

© Copyright Khronos Group, 2012 - Page 35
3.5 Polygons
• polygon stipples are also support

mobile graphics lab@KNU

36

© Copyright Khronos Group, 2012 - Page 36
3.8 Texturing
• supported image types: unsigned byte only

mobile graphics lab@KNU

37

© Copyright Khronos Group, 2012 - ...
3.8 Texturing
• texture image formats and types

mobile graphics lab@KNU

38

© Copyright Khronos Group, 2012 - Page 38
3.8 Texturing
• 2D texture only

mobile graphics lab@KNU

39

© Copyright Khronos Group, 2012 - Page 39
3.8 Texturing
• 2D texture only

mobile graphics lab@KNU

40

© Copyright Khronos Group, 2012 - Page 40
3.8 Texturing
• no texture release !
- no garbage collection
- i.e., only memory allocations

mobile graphics lab@KNU

41
...
3.8 Texturing
• texture environment support
- limited environment modes: MODULATE, REPLACE, DECAL, BLEND, ADD

mobile grap...
3.9 Fog
• no fog support

mobile graphics lab@KNU

43

© Copyright Khronos Group, 2012 - Page 43
Scissor
Test

Depth
Test

http://mobilegraphics.co.kr/

Alpha
Test

Blending

Dithering

Stencil
Test

Framebuffer

Fragme...
Scissor Box, Alpha Test
• Additional Clipping Test
glScissor( x, y, w, h )

- any fragments outside of box are clipped
- u...
Stencil Buffer
glStencilFunc( func, ref, mask )
glStencilOp( fail, zfail, zpass )

• controlled drawing based on values in...
Blending
• Combine pixels with what’s in already
in the framebuffer
glBlendFunc( src, dst )




Cr  src C f  dst C p
...
4.1 Per-Fragment Operations
• restricted alpha functions: LEQUAL, ALWAYS only

mobile graphics lab@KNU

48

© Copyright Kh...
4.1 Per-Fragment Operations
• restricted depth function support: LESS, LEQUAL, ALWAYS only

mobile graphics lab@KNU

49

©...
4.1 Per-Fragment Operations
• Blend Factor Combinations

• no other modes are supported

mobile graphics lab@KNU

50

© Co...
4.1 Per-Fragment Operations
• restricted blend function support

mobile graphics lab@KNU

51

© Copyright Khronos Group, 2...
4.2 Whole Frame-buffer Operations
• same to OpenGL ES

mobile graphics lab@KNU

52

© Copyright Khronos Group, 2012 - Page...
2.12 Current Raster Position
• specify the location for glBitmap, glDrawPixels, glCopyPixels

mobile graphics lab@KNU

53
...
3.6 Pixel Rectangles / 3.7 Bitmaps
• DrawPixels : RGBA image only
• Bitmap : B/W image, drawn with current raster color
- ...
4.3 Pixels
• ReadPixels : RGBA, unsigned byte only
• CopyPixels : specified region  current raster position

mobile graph...
5.4 Display Lists
• no release of allocated lists

mobile graphics lab@KNU

56

© Copyright Khronos Group, 2012 - Page 56
5.5 Flush and Finish

mobile graphics lab@KNU

57

© Copyright Khronos Group, 2012 - Page 57
5.6 Hints
• only hints, maybe not working

mobile graphics lab@KNU

58

© Copyright Khronos Group, 2012 - Page 58
6.1 Querying
• no double type support

mobile graphics lab@KNU

59

© Copyright Khronos Group, 2012 - Page 59
Core Extension: OES_single_precision

mobile graphics lab@KNU

60

© Copyright Khronos Group, 2012 - Page 60
Required: EXT_paletted_texture
• paletted texture

mobile graphics lab@KNU

61

© Copyright Khronos Group, 2012 - Page 61
Required: EXT_paletted_texture
• COLOR_INDEX8 are supported

mobile graphics lab@KNU

62

© Copyright Khronos Group, 2012 ...
Required: EXT_paletted_texture
• add new functions

mobile graphics lab@KNU

63

© Copyright Khronos Group, 2012 - Page 63
Optional: EXT_shared_texture_palette
• affected functions:

mobile graphics lab@KNU

64

© Copyright Khronos Group, 2012 -...
Closing Remarks
mobile graphics lab@KNU

65

© Copyright Khronos Group, 2012 - Page 65
Summary
• OpenGL SC : safety critical profile
- based on OpenGL 1.3
- similar to OpenGL ES 1.1
- but, some distinguished f...
Upcoming SlideShare
Loading in …5
×

OpenGL SC

2,136 views

Published on

Following our successful participation at SIGGRAPH Asia 2012 in Singapore, the Khronos Group is excited to demonstrate and educate about Khronos APIs at SIGGRAPH Asia 2013 in Hong Kong. This presentation covers the OpenGL SC (Critical Profile), by Nakhoon Baek

Published in: Technology, Art & Photos
  • Be the first to comment

OpenGL SC

  1. 1. OpenGL SC: differences to OpenGL ES Nakhoon Baek CTO, Mobile Graphics Inc., Korea Professor, Kyungpook National University, Korea © Copyright Khronos Group, 2012 - Page 1
  2. 2. OpenGL SC © Copyright Khronos Group, 2012 - Page 2
  3. 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 3 ©
  4. 4. Military & Avionics: the major market © Copyright Khronos Group, 2012 - Page 4
  5. 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 5 ©
  6. 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 6 ©
  7. 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 http://mobilegraphics.co.kr/  OpenGL ES 3.0 (Halti) Expected 7 Copyright Khronos Group, 2012 - Page 7 ©
  8. 8. Certifications for Airborne Systems mobile graphics lab@KNU 8 Copyright Khronos Group, 2012 - Page 8 ©
  9. 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 9 ©
  10. 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 10
  11. 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 11
  12. 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 12
  13. 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 13
  14. 14. SC components © Copyright Khronos Group, 2012 - Page 14
  15. 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 15
  16. 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 16
  17. 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 17
  18. 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 18
  19. 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 19
  20. 20. API Features © Copyright Khronos Group, 2012 - Page 20
  21. 21. 2.5 GL Errors mobile graphics lab@KNU 21 © Copyright Khronos Group, 2012 - Page 21
  22. 22. Geometric Primitives • All geometric primitives are specified by vertices GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_POLYGON GL_TRIANGLES GL_TRIANGLE_STRIP GL_QUADS GL_TRIANGLE_FAN http://mobilegraphics.co.kr/ GL_QUAD_STRIP 22 © Copyright Khronos Group, 2012 - Page 22
  23. 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 23
  24. 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 24
  25. 25. 2.7 Vertex Specification • float version only mobile graphics lab@KNU 25 © Copyright Khronos Group, 2012 - Page 25
  26. 26. 2.8 Vertex Arrays • float version only • no stride : always tightly packed arrays mobile graphics lab@KNU 26 © Copyright Khronos Group, 2012 - Page 26
  27. 27. 2.8 Vertex Arrays • DrawArrays, DrawElements : similar to OpenGL ES mobile graphics lab@KNU 27 © Copyright Khronos Group, 2012 - Page 27
  28. 28. 2.10 Coordinate Transformations • corresponds to OpenGL ES 1.1 features mobile graphics lab@KNU 28 © Copyright Khronos Group, 2012 - Page 28
  29. 29. 2.10 Coordinate Transformations • no texture matrix mobile graphics lab@KNU 29 © Copyright Khronos Group, 2012 - Page 29
  30. 30. 2.13 Colors and Coloring • single material properties for front and back faces mobile graphics lab@KNU 30 © Copyright Khronos Group, 2012 - Page 30
  31. 31. 2.13 Colors and Coloring • only 2 lights • no spot light mobile graphics lab@KNU 31 © Copyright Khronos Group, 2012 - Page 31
  32. 32. 2.13 Colors and Coloring • no two side lighting • color material support mobile graphics lab@KNU 32 © Copyright Khronos Group, 2012 - Page 32
  33. 33. 3.2 Antialiasing • no multisampling support mobile graphics lab@KNU 33 © Copyright Khronos Group, 2012 - Page 33
  34. 34. 3.3 Points • minimum requirement: only for point size = 1 mobile graphics lab@KNU 34 © Copyright Khronos Group, 2012 - Page 34
  35. 35. 3.4 Line Segments • line stipples are supported mobile graphics lab@KNU 35 © Copyright Khronos Group, 2012 - Page 35
  36. 36. 3.5 Polygons • polygon stipples are also support mobile graphics lab@KNU 36 © Copyright Khronos Group, 2012 - Page 36
  37. 37. 3.8 Texturing • supported image types: unsigned byte only mobile graphics lab@KNU 37 © Copyright Khronos Group, 2012 - Page 37
  38. 38. 3.8 Texturing • texture image formats and types mobile graphics lab@KNU 38 © Copyright Khronos Group, 2012 - Page 38
  39. 39. 3.8 Texturing • 2D texture only mobile graphics lab@KNU 39 © Copyright Khronos Group, 2012 - Page 39
  40. 40. 3.8 Texturing • 2D texture only mobile graphics lab@KNU 40 © Copyright Khronos Group, 2012 - Page 40
  41. 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 41
  42. 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 42
  43. 43. 3.9 Fog • no fog support mobile graphics lab@KNU 43 © Copyright Khronos Group, 2012 - Page 43
  44. 44. Scissor Test Depth Test http://mobilegraphics.co.kr/ Alpha Test Blending Dithering Stencil Test Framebuffer Fragment Getting to the Framebuffer Logical Operations 44 © Copyright Khronos Group, 2012 - Page 44
  45. 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 45
  46. 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 stencil area for the mirror http://mobilegraphics.co.kr/ 46 © Copyright Khronos Group, 2012 - Page 46
  47. 47. Blending • Combine pixels with what’s in already in the framebuffer glBlendFunc( src, dst )    Cr  src C f  dst C p Blending Equation Fragment (src) Blended Pixel Framebuffer Pixel (dst) http://mobilegraphics.co.kr/ 47 © Copyright Khronos Group, 2012 - Page 47
  48. 48. 4.1 Per-Fragment Operations • restricted alpha functions: LEQUAL, ALWAYS only mobile graphics lab@KNU 48 © Copyright Khronos Group, 2012 - Page 48
  49. 49. 4.1 Per-Fragment Operations • restricted depth function support: LESS, LEQUAL, ALWAYS only mobile graphics lab@KNU 49 © Copyright Khronos Group, 2012 - Page 49
  50. 50. 4.1 Per-Fragment Operations • Blend Factor Combinations • no other modes are supported mobile graphics lab@KNU 50 © Copyright Khronos Group, 2012 - Page 50
  51. 51. 4.1 Per-Fragment Operations • restricted blend function support mobile graphics lab@KNU 51 © Copyright Khronos Group, 2012 - Page 51
  52. 52. 4.2 Whole Frame-buffer Operations • same to OpenGL ES mobile graphics lab@KNU 52 © Copyright Khronos Group, 2012 - Page 52
  53. 53. 2.12 Current Raster Position • specify the location for glBitmap, glDrawPixels, glCopyPixels mobile graphics lab@KNU 53 © Copyright Khronos Group, 2012 - Page 53
  54. 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 54
  55. 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 55
  56. 56. 5.4 Display Lists • no release of allocated lists mobile graphics lab@KNU 56 © Copyright Khronos Group, 2012 - Page 56
  57. 57. 5.5 Flush and Finish mobile graphics lab@KNU 57 © Copyright Khronos Group, 2012 - Page 57
  58. 58. 5.6 Hints • only hints, maybe not working mobile graphics lab@KNU 58 © Copyright Khronos Group, 2012 - Page 58
  59. 59. 6.1 Querying • no double type support mobile graphics lab@KNU 59 © Copyright Khronos Group, 2012 - Page 59
  60. 60. Core Extension: OES_single_precision mobile graphics lab@KNU 60 © Copyright Khronos Group, 2012 - Page 60
  61. 61. Required: EXT_paletted_texture • paletted texture mobile graphics lab@KNU 61 © Copyright Khronos Group, 2012 - Page 61
  62. 62. Required: EXT_paletted_texture • COLOR_INDEX8 are supported mobile graphics lab@KNU 62 © Copyright Khronos Group, 2012 - Page 62
  63. 63. Required: EXT_paletted_texture • add new functions mobile graphics lab@KNU 63 © Copyright Khronos Group, 2012 - Page 63
  64. 64. Optional: EXT_shared_texture_palette • affected functions: mobile graphics lab@KNU 64 © Copyright Khronos Group, 2012 - Page 64
  65. 65. Closing Remarks mobile graphics lab@KNU 65 © Copyright Khronos Group, 2012 - Page 65
  66. 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 © Copyright Khronos Group, 2012 - Page 66

×