CD3403 Computer Graphics Syllabus:
CD3403 Computer Graphics Syllabus – Anna University Regulation 2021
COURSE OBJECTIVES:
To grasp the fundamental knowledge of implementing Computer Graphics in 2D
To get familiar with 3D Graphics
To learn the process of implementation of Computer Graphics through Vulkan API
To get familiarity with basic to advanced rendering techniques
To acquaint oneself with common data structures and procedural graphics
UNIT I 2D GRAPHICS PROCESSING
Display devices, Computer Graphics APIs, 2D output Primitives, attributes of output primitives, 2D Transformations, Viewing – Clipping.
UNIT II 3D GRAPHICS PIPELINE
3D Primitives, 3D Object representations – Mesh Modeling, parametric curves and surfaces, coordinate systems, Viewing, 3D Transformations, 3D Viewing pipeline, Projections – Parallel, Perspective, Clipping in 3D.
UNIT III VULKAN GRAPHICS API
Drawing Primitives, validation layers, resource management, Physical devices and queue families, logical devices and queues, Graphics pipeline, Input assembler, vertex shader, Tesselation, Geometry shader, Rasterization, Fragment shader, color blending. Vertex buffers, uniform buffers, Texture mapping, Depth buffering, Command buffer.
UNIT IV RENDERING and GPU
Lighting and Shading, Visible Surface Detection, Applying Textures, The Graphics Rendering Pipeline, Ray Tracing, Ray Tracing Graphics Hardware (GPU), Global Illumination and path tracing, Radiosity, Sampling and filtering, physically based rendering, shadows, Environment mapping, Bump mapping, mipmaps, volume rendering, isosurfaces and marching Cubes, Rasterization.
UNIT V DATA STRUCTURES AND PROCEDURAL GRAPHICS
Data Structures for Graphics – Triangle Mesh, Scene Graph, Spatial Data Structures, BSP Trees, Octrees Fractals, Particle Systems, point cloud, procedural textures, grammar-based models, Constructive Solid Geometry.
45 PERIODS
COURSE OUTCOMES:
On Successful completion of the course, Students will be able to
CO1:Implement 2D transformations and algorithms for generating primitives and attributes
CO2:Solve problems in 3D transformations and viewing
CO3:Implement and Render graphics using open source Vulkan API
CO4:Implement rendering techniques and Use GPU based rendering
CO5:Experiment with different procedural graphics and common data structures.
LABORATORY EXPERIMENTS: (Reference: https://vulkan-tutorial.com/) 30 PERIODS
Software Requirements: On Windows: Vulkan SDK, GLFW, GLM , C++ compiler and IDE like visual studio.
1. Install vulkan sdk with c++ in Visual Studio and set up the work environment.
2. Understand vulkan environment for setting up graphics experiment: setup, presentation, graphics pipeline commands, window surface, swap chain, image views, buffers.
3. Drawing 2D primitives (points, lines, polygons, triangle fan, triangle strip etc.,)
4. Setting up the camera, lights and performing viewing transformations. Demonstrate a Simple projection transformation for a primitive.
5. Drawing 3D primitive “Cube” and show the cube from different camera angles and perspectives.
6. Place lights and Shade the cube using any shading language or simple flat shading, with different colors for different surfaces of the cube.
7. Apply basic transformations on the cube including Translation, Rotation, Scaling.
8. Understand different types of shaders in Vulkan
9. Using different Buffers (Depth Buffer, Stencil Buffer)to implement different effects on the 3D model.
10. Applying textures on a Cube.
11. Perform the above steps on other geometric objects other than Cube.
12. Create a simple 3D scene with different objects and with different attributes
13. Perform Rendering with Environment and Bump maps and other rendering techniques
TOTAL : 75 PERIODS
TEXT BOOKS:
1. Donald D. Hearn, M. Pauline Baker, Warren Carithers, “Computer Graphics with OpenGL”, Pearson Education, Fourth Edition, 2011. (UNIT-I, II)
2. Steve Marschner, Peter Shirley, “Fundamentals of Computer Graphics”, 5th Edition, CRC Press/ Taylor and Francis Group, 2021. (UNIT-IV, V)
REFERENCES:
1. Edward Angel, Dave Shreiner,” Interactive Computer Graphics. A Top-Down Approach with WebGL”, 7th Edition, 2015. (UNIT- IV, V)
2. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V, 9th Edition, Addison Wesley, 2016.
3. Graham Sellers, John Kessenich, “Vulkan Programming Guide”, 1st Edition, Addison Wesley, 2016. (UNIT-III)
4. Francis S Hill Jr., Stephen M Kelley, ”Computer Graphics Using OpenGL”, PHI Learning, Third Edition, 2009.
5. John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley, “ Computer Graphics Principles and Practice”, Third Edition, Addison Wesley, 2013.
6. Samanta Guha, “Computer Graphics Through OpenGL: From Theory to Experiments”, Third Edition, Chapman and Hall / CRC Press, 2021.
7. Jung Hyun Han, “3D Graphics for Game Programming”, Delmar Cengage Learning, 2011.
Web References:
1. https://web.wlu.ca/science/physcomp/ikotsireas/CP411_notes/
2. https://vulkan.org/
3. https://web.engr.oregonstate.edu/~mjb/vulkan/Handouts/ABRIDGED.1pp.pdf
4. https://vulkan-tutorial.com/ (UNIT-III)
5. https://opengl.org/
6. https://openglbook.com/
