Languages

Menu
Sites
Language
Introduction of OpenGL graphics pipeline on Tizen

Although Tizen 2.3 claims it support OpenGL ES 1.1, it indeed deprecated those OpenGL ES 1.1 tool functions design for the OpenGL ES 1.1 graphics pipeline.

So Tizen 2.3 in fact only support OpenGL ES 2.0. Then let's have an intorduction on the graphics pipeline for OpenGL ES 2.0.

In fact OpenGL ES 2.0 graphics pipeline inherited the concepts of the pipeline for OpenGL ES 1.1. It just mapped the pipeline onto modern GPU pipelines. These vertices then undergo transformation and per-vertex lighting. At this point in modern GPU pipelines, a custom vertex shader program can be used to manipulate the 3D vertices prior to rasterization. Once transformed and lit, the vertices undergo clipping and rasterization resulting in fragments. A second custom shader program can then be run on each fragment before the final pixel values are output to the frame buffer for display.

There is a figure show this pipeline from GPU perspective.

And below are sample of the rendering process corresponding to above pipeline.

As above pictures, the OpenGL rendering pipeline works in the following order(refrence from OpenGL wiki: Rendering Pipeline Overview):

1. Prepare vertex array data, and then render it

2. Vertex Processing:

      Each vertex is acted upon by a Vertex Shader. Each vertex in the stream is processed in turn into an output vertex.

3. Vertex Post-Processing, the outputs of the last stage are adjusted or shipped to different locations.

      1) Transform Feedback happens here.

      2) Primitive Clipping, the perspective divide, and the viewport transform to window space.

4. Primitive Assembly

5. Scan conversion and primitive parameter interpolation, which generates a number of Fragments.

6. A Fragment Shader processes each fragment. Each fragment generates a number of outputs.

7. Per-Sample_Processing:

      1) Scissor Test
      2) Stencil Test
      3) Depth Test
      4) Blending
      5) Logical Operation
      6) Write Mask

We can simplify the process for OpenGL ES 2.0 as following.

 

 

 

 

 

 

Responses

1 Replies
Jean Yang

Sorry, my mistatke!

Tizen 2.3 support both OpenGL ES 1.1 and OpenGL ES 2.0.

Defaultly, if you do not explicity declare the glview version to OpenGL-ES 1.1 as below sentence, the OpenGL version is deemed as OpenGL-ES 2.0.

   /* Create a GLView with an OpenGL-ES 1.1 context */
   obj = elm_glview_version_add(ad->win, EVAS_GL_GLES_1_X);

And defaultly, you create the GLView by following codes.

    /* Create and initialize GLView */
    gl = elm_glview_add(ad->conform);