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/