EPL426: Computer Graphics

Instructor: Andreas Aristidou
Type: Undergraduate (Restricted Choice)
Prerequisite: EPL232 - Programming Tools and Applications
Lectures A: Tuesday & Friday, 10:30-12:00 (ΘΕΕ01 #202)
Recitations: Wednesday, 10:00-11:00 (ΧΩΔ01 #002)
Laboratory: Wednesday, 18:00-19:30 (ΘΕΕ01 #Β121)
Teaching Assistants: Andreas Andreou


The course teaches the basic principles of computer graphics. The course familiriazes students with the concepts of scene construction, scene hierarchies, camera specification, projections of primitives, clipping, visible surface determination, polygon rasterisation (z-buffer), texture mapping, local and global illumination, shadows, ray tracing, radiosity, real-time acceleration techniques. Provision of both the theoretical foundations as well as practical skills through the use of industry standards, such as OpenGL and the Unity game engine.
You can download the syllabus of the course here...


Sign-up now to Moodle using code handed out in class!

Course Schedule and Lectures

  1. Introduction to Graphics: Syllabus & Basics Course Objectives and Syllabus.
    [PDF | 8.24 MB] [PPT | 15.65 MB]
  2. Math Preliminaries: Linear Algebra Coordinate systems, points, vectors, lines, planes, circles, spheres, matrices, matrix operations.
    [PDF | 1.62 MB] [PPT | 2.16 MB]
  3. Math Preliminaries: Geometric Transformations 2D and 3D Translation, Scaling, Rotations, Homogeneous Transformations, Gimbal Lock, Inverse Transformations, Pivot Rotations.
    [PDF | 1.19 MB] [PPT | 1.20 MB]
    Notes from Adries van Dam on Transformations [PPT | 0.51 MB]
  4. Scene Graph Transformations and the scene graph.
    [PDF | 0.68 MB] [PPT | 1.06 MB]
  5. Revision Questions [PDF | 0.21 MB]
  6. Camera World Coordinates, Object Coordinates, Camera Coordinate System, Specifying The View Coordinates, Transformation From World To Viewing Coordinates.
    [PDF | 0.73 MB] [PPT | 0.76 MB]
  7. Viewing, Projections Viewing, The Synthetic Camera, History of projection in art, The pinhole model, View Volumes, The film plane, Projections: Parallel Projections, Perspective Projections, The viewport, Constructing the view volume, Aspect Ratio, View Angle, Near and Far Clipping Planes, Focal Length.
    [PDF | 2.78 MB] [PPT | 3.85 MB]
  8. Clipping 2D Clipping, Polygons Clipping, 3D Clipping.
    [PDF | 1.31 MB] [PPT | 1.53 MB]
  9. Scan Conversion: Lines, Circles and Polygons Line Drawing Algorithms, The DDA Algorithm, The Bresenham Line Algorithm, Circle Drawing Algorithms Mid-Point Circle Algorithm, Spline Representations, Bézier curves, Filling Polygons, Scan-Line Polygon.
    [PDF | 1.43 MB] [PPT | 1.46 MB]
  10. Polygons: 3D Object Representations, Polyhedra, Quadric surfaces, Sweep representations, Constructive solid geometry methods.
    [PDF | 1.3 MB] [PPT | 2.35 MB]
  11. Revision Questions [PDF | 0.34 MB]
  12. Visible Surface Determination Back-face culling, Visible Surface Determination, Depth-Buffer (Z-buffer, A-buffer), Depth-Sorting Method (Painter’s Algorithm).
    [PDF | 1.01 MB] [PPT | 1.12 MB]
  13. Local Illumination Light Sources, Material Properties, Illumination Model, Direct Illumination Indirect Illumination, Full Illumination, Point Light Sources, Radial Intensity Attenuation, Directional Light Sources & Spotlights, Angular Intensity Attenuation, Surface Lighting Effects, Diffuse Reflection, Specular Reflection, Ambient Light, Phong Shading Model, Transparency.
    [PDF | 2.74 MB] [PPT | 3.76 MB]
  14. Polygonal Rasterization Rendering Techniques Flat surface rendering, Gouraud surface rendering, Phong surface rendering.
    [PDF | 1.71 MB] [PPT | 2.26 MB]
  15. Colors & Rayshoot Colors, Vision, Visual processing of perception, Human Visual System, Relative Luminous Efficiency, Color representation, RGB, CMYK, HSL. Introduction to Ray Shooting / Casting, Pinhole, Painting metaphor.
    [PDF | 2.90 MB] [PPT | 4.44 MB]
  16. Revision Questions [PDF | 0.30 MB]
  17. Ray Tracing Ray tracing overview, Shadow feeler rays, Recursive Ray tracing, Refraction Ray, Ray tracing Tree, Bounding Volume, Ray-Object Intersection, Soft Shadows, Examples
    [PDF | 3.36 MB] [PPT | 4.40 MB]
  18. Acceleration Algorithms Bounding Volumes, Hierchical Bounding Volumes, Regular Grid, Octrees, kd-tree, BSP-tree, Fractal Geometry
    [PDF | 2.09 MB] [PPT | 2.40 MB]
  19. Texture Mapping / Antializing Principles of Texture Mapping, How to Produce a UV Mapping, Texture Mapping Technique, Tiling, Stretching, Texture Mapping Complex Geometry, Complex Geometry in Real Applications, Normal Mapping, Bump Mapping, Displacement Mapping, Environment Maps, Aliasing - Antialiasing, Supersampling, Stochastic Sampling, Adaptive Sampling, Texture Minification, MIP map, Trilinear and Anisotropic Filtering.
    [PDF | 4.56 MB] [PPT | 5.88 MB]
  20. Shadows / Transparency Introduction, Soft and Hard Shadows, Simplest Hack, Fake Shadows, Shadow Texture, Shadow Mapping, Shadow Volumes, Light Mapping, Transparency, Alpha Blending, Stochastic Transparency.
    [PDF | 4.44 MB] [PPT | 6.61 MB]
  21. Radiocity Introduction to Radiocity, Radiosity Measure, Form-factors, Progressive Refinement, Meshing Adaptive Subdivision of Patches, Discontinuity Meshing, Raytracing vs Radiosity.
    [PDF | 3.58 MB] [PPT | 4.91 MB]

Lab Schedule

  1. Introduction: Introduction, Ray Tracing, Setup Miro [PDF | 0.80 MB]
    Code: MIRO Base Code [ZIP | 32 MB]
  2. Miro: Overview [PDF | 0.66 MB]
    Code: MIRO Extended Code [ZIP | 105 MB]
    Code: MIRO Extended Main only [ZIP | 3 KB]
  3. Shading: Phong Shading [PDF | 0.79 MB]
    OpenGL: Introduction [PDF | 0.26 MB]
    Code: OpenGL Sample Code [ZIP | 0.33 MB]
    Code: OpenGL Sample Code - VS2019 [ZIP | 0.24 MB]
    Code: OpenGL Sample Code - Extended main file [ZIP | 4 KB]
  4. OpenGL: Transformations [PDF | 1.13 MB]
    Code: OpenGL Sample Code - Extended main 2 file [ZIP | 4 KB]
    1st Assignment OpenGL [Moodle]
  5. OpenGL: OpenGL – Camera, Lights and more [PDF | 1.07 MB]
    Code: OpenGL Sample Code + GML Library + Extended main [ZIP | 40.58 MB]
    Code: Extended main file only (Using GML Library) [ZIP | 5 KB]
    Code: GML Library [ZIP | 5.54 MB]
  6. Unity: Intro [PDF | 0.3 MB]
    Unity: Scripting [PDF | 0.13 MB]
    Unity Page
    Unity Download
    Unity Store
  7. Unity: Materials [PDF | 0.19 MB]
    Unity: Physics [PDF | 0.87 MB]
  8. Project: Details [PDF | 0.98 MB]
    Unity: Lectures project file [ZIP | 32.7 MB]
    1st Assignment: Presentations (31/03/21) [PDF | 0.09 MB]
  9. Unity: Other [PDF | 0.45 MB]
  10. Project: Deadline [PDF | 0.96 MB]


All Assignments will be announced in Moodle. Sign-up using the code handed out in class!

Text Book and Bibliography

Links and Manuals

To be uploaded soon...

© 2017 Andreas Aristidou