Opengl SC: Differences to Opengl ES
Total Page:16
File Type:pdf, Size:1020Kb
OpenGL SC: differences to OpenGL ES Nakhoon Baek CTO, Mobile Graphics Inc., Korea Professor, Kyungpook National University, Korea © Copyright Khronos Group, 2012 - Page 1 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 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 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 SC 1.0 http://mobilegraphics.co.kr/ 5 © Copyright Khronos Group, 2012 - Page 5 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 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 7 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 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 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 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 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 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 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. 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 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 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 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 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 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_LINES GL_POINTS GL_LINE_STRIP GL_LINE_LOOP GL_POLYGON GL_TRIANGLES GL_TRIANGLE_STRIP GL_QUADS GL_QUAD_STRIP GL_TRIANGLE_FAN http://mobilegraphics.co.kr/ 22 © Copyright Khronos Group, 2012 - Page 22 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 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 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 © Copyright Khronos Group, 2012 - Page 26 2.8 Vertex Arrays • DrawArrays, DrawElements : similar to OpenGL ES mobile graphics lab@KNU 27 © Copyright Khronos Group, 2012 - Page 27 2.10 Coordinate Transformations • corresponds to OpenGL ES 1.1 features mobile graphics lab@KNU 28 © Copyright Khronos Group, 2012 - Page 28 2.10 Coordinate Transformations • no texture matrix mobile graphics lab@KNU 29 © Copyright Khronos Group, 2012 - Page 29 2.13 Colors and Coloring • single material properties for front and back faces mobile graphics lab@KNU 30 © Copyright Khronos Group, 2012 - Page 30 2.13 Colors and Coloring • only 2 lights • no spot light mobile graphics lab@KNU 31 © Copyright Khronos Group, 2012 - Page 31 2.13 Colors and Coloring • no two side lighting • color material support mobile graphics lab@KNU 32 © Copyright Khronos Group, 2012 - Page 32 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 - Page 34 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 - Page 37 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 © Copyright Khronos Group, 2012 - Page 41 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 3.9 Fog • no fog support mobile graphics lab@KNU 43 © Copyright Khronos Group, 2012 - Page 43 Getting to the Framebuffer Scissor Alpha Stencil Test Test Test Fragment Depth Logical Test Blending Dithering Operations Framebuffer http://mobilegraphics.co.kr/ 44 © Copyright Khronos Group, 2012 - Page 44 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/