Course objectives: This course will enable students to
- Explain hardware, software and OpenGL Graphics Primitives.
- Illustrate interactive computer graphic using the OpenGL.
- Design and implementation of algorithms for 2D graphics Primitives and attributes.
- Demonstrate Geometric transformations, viewing on both 2D and 3D objects.
- Infer the representation of curves, surfaces, Color and Illumination models.
Syllabus
Module 1
Overview: Computer Graphics and OpenGL: Computer Graphics: Basics of computer graphics, Application of Computer Graphics, Video Display Devices: Random Scan and Raster Scan displays, color CRT monitors, Flat panel displays. Raster-scan systems: video controller, raster scan Display processor, graphics workstations and viewing systems, Input devices, graphics networks, graphics on the internet, graphics software. OpenGL: Introduction to OpenGL ,coordinate reference frames, specifying two-dimensional world coordinate reference frames in OpenGL, OpenGL point functions, OpenGL line functions, point attributes, line attributes, curve attributes, OpenGL point attribute functions, OpenGL line attribute functions, Line drawing algorithms(DDA, Bresenhamâ??s), circle generation algorithms (Bresenhamâ??s).
Module 2
Fill area Primitives, 2D Geometric Transformations and 2D viewing: Fill area Primitives: Polygon fill-areas, OpenGL polygon fill area functions, fill area attributes, general scan line polygon fill algorithm, OpenGL fill-area attribute functions. 2DGeometric Transformations: Basic 2D Geometric Transformations, matrix representations and homogeneous coordinates. Inverse transformations, 2DComposite transformations, other 2D transformations, raster methods for geometric transformations, OpenGL raster transformations, OpenGL geometric transformations function, 2D viewing: 2D viewing pipeline, OpenGL 2D viewing functions.
Module 3
Clipping,3D Geometric Transformations, Color and Illumination Models: Clipping: clipping window, normalization and viewport transformations, clipping algorithms,2D point clipping, 2D line clipping algorithms: cohen-sutherland line clipping only -polygon fill area clipping: Sutherland-Hodgeman polygon clipping algorithm only.3DGeometric Transformations: 3D translation, rotation, scaling, composite 3D transformations, other 3D transformations, affine transformations, OpenGL geometric transformations functions. Color Models: Properties of light, color models, RGB and CMY color models. Illumination Models: Light sources, basic illumination models-Ambient light, diffuse reflection, specular and phong model, Corresponding openGL functions.
Module 4
3D Viewing and Visible Surface Detection: 3DViewing:3D viewing concepts, 3D viewing pipeline, 3D viewing coordinate parameters , Transformation from world to viewing coordinates, Projection transformation, orthogonal projections, perspective projections, The viewport transformation and 3D screen coordinates. OpenGL 3D viewing functions. Visible Surface Detection Methods: Classification of visible surface Detection algorithms, back face detection, depth buffer method and OpenGL visibility detection functions.
Module 5
Input& interaction, Curves and Computer Animation: Input and Interaction: Input devices, clients and servers, Display Lists, Display Lists and Modelling, Programming Event Driven Input, Menus Picking, Building Interactive Models, Animating Interactive programs, Design of Interactive programs, Logic operations .Curved surfaces, quadric surfaces, OpenGL Quadric-Surface and Cubic-Surface Functions, Bezier Spline Curves, Bezier surfaces, OpenGL curve functions. Corresponding OpenGL functions.
Lab Experiments:
Design, develop, and implement the following programs using OpenGL API
- Implement Brenhamâ??s line drawing algorithm for all types of slope.
- Create and rotate a triangle about the origin and a fixed point.
- Draw a colour cube and spin it using OpenGL transformation matrices.
- Draw a color cube and allow the user to move the camera suitably to experiment with perspective viewing.
- Clip a lines using Cohen-Sutherland algorithm
- To draw a simple shaded scene consisting of a tea pot on a table. Define suitably the position and properties of the light source along with the properties of the surfaces of the solid object used in the scene.
- Design, develop and implement recursively subdivide a tetrahedron to form 3D sierpinski gasket. The number of recursive steps is to be specified by the user.
- Develop a menu driven program to animate a flag using Bezier Curve algorithm
- Develop a menu driven program to fill the polygon using scan line algorithm
Course outcomes: The students should be able to:
- Design and implement algorithms for 2D graphics primitives and attributes.
- Illustrate Geometric transformations on both 2D and 3D objects.
- Apply concepts of clipping and visible surface detection in 2D and 3D viewing, and Illumination Models.
- Apply the concepts of computer graphics Implement computer graphics applications using OpenGL Animate real world problems using OpenGL