OHJ-2700 Computer Graphics 6 cu spring 2012


Etusivu
Kirjallisuutta
Uutisryhmä tut.ot.tgraf

General Information

  • The course will be lectured in Finnish, but foreign students can still pass the course. Please contact the lecturer for more information.
  • The course is organized and lectured by
    Timo Kellomäki, timo.kellomaki@tut.fi, TF215
  • The course takes place in periods III and IV, spring 2012.

The course deals with techniques for efficiently transforming an imaginary world built inside a computer into a realistic physical image. The main focus is on general principles instead of implementation details or currently available hardware. Graphical user interfaces have their own course and are not included.

There are no English lectures for the course. However, there are several good books on computer graphics in English. For example:

  • Hearn, Baker & Carithers: Computer Graphics with OpenGL (fourth edition)
  • Shirley, Ashikhmin & Marschner: Fundamentals of Computer Graphics (third edition)
  • Akenine-Möller, Haines & Hoffman: Real-Time Rendering (third edition)
  • Angel & Shreiner: Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL (sixth edition)

An obligatory prerequirement for this course is Utilisation of Data Structures. Analysis of Algorithms is recommended.

In order to pass the course, one has to pass both an exam and some assignments. Details of the assignments are available in English here.

The course grade is determined as the better result of two alternative formulas. Both still require the two compulsory assignments to be passed.

  • Exam-based: exam is passed with 12 points out of 24 possible. The grades are scattered between those two, with 5 requiring almost all possible points.
  • Assignment-based: course passed with 15 points, of which at least 8 from the exam. Maximum is 24 + 17 = 41 points. Grade 5 practically requires both voluntary assignments but allows losing some points in the exam.

List of topics on the lectures for the exam (2011) to help international students prepare. These will probably not change too much for this year.

  • Geometry: points and vectors; lines, rays and segments, dot product, cross product, planes, normals, polygons
  • 2D intersection: intersection of lines, segment groups, point inside a convex/non-convex polygon
  • 3D intersection: line/plane intersection, line/polygon intersection, polygon/polygon intersection, line/sphere intersection, sphere/sphere, sphere/AABB
  • 2D raster graphics: segments to pixels: Bresenham's algorithm, circle to pixels, flood fill, scanline filling, clipping, scissoring, stencil buffer, clipping segments: Cohen-Sutherland and Cyrus-Beck, clipping polygons: Sutherland-Hodgman and Weiler-Atherton
  • Geometric transformations: Matrices, 2D transformations (translation, scaling, rotating, shear), changing the coordinate system, affine transformations, homogeneous 2D coordinates, transformations in homog. coordinates, combining transformations, 3D transformations, transforming normals
  • 3D graphics: pipeline: application, geometry and rasterization stages, model and camera transformations, classes of projections: parallel and perspective, viewing volume, projection equations, view frustum, frustum culling, perspective projection as 3D transformation, view volume normalization, clipping
  • Curves and surfaces: parametric representation of a curve, matrix representation, continuity, blending functions, drawing parametric curves, Hermite curves, Bezier curves, B-splines, non-uniform B-splines, rational curves, NURBS, Catmull-Rom splines, parametric surfaces (cubic)
  • Visible surfaces: hidden surface removal, back-face culling, depth sorting, Z-buffer, supersampling
  • Lighting and shading: diffuse reflection, ambient light, point lights, fading light, specular reflection, lighting interpolation, gouraud shading, phong shading, anisotropic lighting, BRDF, fog
  • Texturing and bump mapping: texturing, interpolating texture coordinate, perspective correction, bilinear filtering, aliasing, MIP-map, light mapping, billboarding, 3D textures, procedural textures, environment mapping (cube map), bump mapping, calculating bump mapping from a height map, specular map using cube map, normalizing using a cube map
  • Shadows, transparency, reflections: shadow volumes, shadow mapping, translucent objects, blending, Mammen's algorithm, volume modeling (splatting), planar reflections, motion blur
  • Polygon meshes: indices to vertex array, indices to edge array, triangle strips and fans, level of detail/simplifying triangle meshes
  • OpenGL: basic rendering using OpenGL legacy functions (not for the exam)
  • Programmable shaders: Non-real-time shaders, vertex shaders, fixed functions and interpolation, pixel/fragment shaders.
  • Spatial data structures: Bounding boxes, bounding box hierarchies, fixed portioning/division of space, PR-quadtree (finding a point, nearest point, add, delete), PR-octree, point quadtree, K-d tree, BSP tree (usage in visibility and culling), leafy-BSP, region quadtree
  • Visibility culling: Z-buffering, occlusion query, culling using octree
  • Indoor rendering: convex cells and portals, adjacency graph, portal stabbing, PVS (potentially visible set), portal rendering
  • Outdoor rendering: heightfields, adaptive meshes (e.g. ROAM, geomipmapping), geomorphing, level of detail
  • Ray tracing: forward vs backward ray tracing, ray tree, lighting (diffuse, specular, ambient), transparency and refraction, pros and cons, aliasing, supersampling, jittering, distributed ray tracing, motion blur, focus/blur, techniques for making ray tracing faster (culling rays, bounding boxes, spatial data structures)
  • POV-Ray: basics of this ray tracing software (not for the exam)
  • Light and color: intensity, luminence, lightness, gamma correction, color theory, CIE chromaticity diagram, color models: RGB, CMY(K), YIQ/YUV, HSV, alpha channel
  • Convex hulls: definition, naive algorithm for finding CH, faster algorithms: Graham's algorithm, Jarvis' march (aka. gift-wrapping algorithm), quickhull, mergehull, updating CH when adding new points
  • 2-dimensional point problems: Voronoi diagram (its usage: all nearest neighbors, nearest point, Delaunay triangulation)
  • Radiosity: Basics of radiosity