What is ? Open Graphics Library A cross-language, multi-platform API for rendering 2D and 3D computer graphics. The API is used to interact with a Graphics Processing Unit (GPU) Achieve hardware-accelerated rendering. OpenGL was developed by Silicon Graphics Inc. For more information: http://en.wikipedia.org/wiki/OpenGL What is ? An application interface to access GPU. What can do?? Draw points, lines, and polygons. OpenGL.org Lambertian reflection Diffuse and specular reflection from a glossy surface, e.g. polished marble. What can do? Add lighting effect in the scene. Ambient light: gross approximation of light, which produces constant illumination on all surface. OpenGL.org What can do? Add lighting effect in the scene. Diffuse light: reflection of light from a surface that is reflected at many angles rather than at just one angle. OpenGL.org What can do? Add lighting effect in the scene. Specular light: mirror-like reflection of light from a surface with a single outgoing direction. OpenGL.org What can do?? With different lighting parameters for an object, the object have different appearances. No Ambient Gray Ambient Blue Ambient Diffuse Only Specular Higher Emission Shininess CG course in NCTU What can do? Map textures to the surface of an object. CG course in NCTU function pipeline Before OpenGL 2.0 Triangles/Lines/Points API Primitive Processing Vertices Vertex Buffer Objects Alpha Test Transform and Lighting Primitive Assembly Rasterizer Texture Environment Colour Sum Fog Depth Stencil Colour Buffer Blend Dither Frame Buffer Primitive Assembly Primitives are broken down into individual points, lines, and triangles. For example, triangle strip to be rendered. Then the triangle strip is converted into triangles. Fixed function pipeline Transformation & lighting Model, view, projection transformation Lighting computation Texture Environment Texture coordinate computation Colour Sum Fog Alpha Test For the transparent object in the scene function pipeline ES2.0 Programming Pipeline Triangles/Lines/Points API Primitive Processing Vertices Vertex Shader Vertex Buffer Objects Primitive Assembly Rasterizer Fragment Shader Depth Stencil Colour Buffer Blend Dither Frame Buffer OpenGL.org Programmable function pipeline Vertex Shader Handle Transformation & lighting part in fixed pipeline. Fragment Shader Handle the following parts in fixed pipeline Texture Environment Colour Sum Fog Alpha Test Additional Information OpenGL (Open Graphics Library) For more information: http://www.opengl.org/ Book: Donald D. Hearn, M. Pauline Baker, “Computer Graphics with OpenGL”, 3/E, Prentice Hall, 2004 What is ?? OpenGL ES ( OpenGL for Embedded System ) A subset of the OpenGL application programming interface (API) Designed for embedded systems mobile phones, Personal Digital Assistant(PDAs), and video game consoles. Lightweight interface Differences from OpenGL Programmers need to compute projection matrix & transformation matrix. No glBegin() and glEnd(). No GL_QUADS and GL_POLYGONS. Vertex information are attributes. For more information: http://en.wikipedia.org/wiki/OpenGL_ES What can do ? OpenGL ES Draw points, lines, triangles. Render meshes with textures and lighting effects, etc. Draw polygons Put a light in the scene Texturing the objects function pipeline In OpenGL ES 1.0/1.1 Use fixed function pipeline In OpenGL ES 2.0 Use programmable function pipeline Additional Information OpenGL ES For more information: http://www.khronos.org/opengles/ Android OpenGL ES lessons http://developer.android.com/training/graphics/opengl/inde x.html Learn OpenGL ES http://www.learnopengles.com/