CGRA350 (2019) - Real-time 3D Computer Graphics

Prescription

This course addresses graphics programming for real-time 3D graphics. It covers graphics APIs, in particular OpenGL, and the graphics processing pipeline (including geometry processing, viewing, projection, transformation, illumination, texture mapping). It also addresses display hardware and graphics cards. Please note: this course will run for the first time in 2018

Course learning objectives

Students who pass this course should be able to:

  1. Explain and navigate the structure of the interactive 3D graphics pipeline, from 3D geometry input to final rendering images.
  2. Efficiently and effectively use a standard graphics API (e.g., OpenGL) for implementing real-time 3D graphics applications.
  3. Implement and modify programs that use important computer graphics algorithms to solve interactive computer graphics problems.

Course content

The course focuses on 3D computer graphics algorithms; it is not a course on creative content creation and manipulation.

We will explore how final images are produced once a 3D model has been created or acquired. Topics include: the graphics pipeline, shader programming in GLSL, hierarchical modelling, animation, lighting, illumination, textures, procedural modelling, simulation, and other computer graphics algorithms.

The course is based on the belief that computer graphics is best learned by doing. Implementing programs is a significant component of the course because many of the subtleties and difficulties encountered in computer graphics only become apparent when one actually tries to write programs and show the results on the display. The programming assignments and project serve both to increase your understanding of the relevant concepts and techniques, and also to give you confidence in being able to apply the techniques to real applications.

Required Academic Background

Students need to be confident in the programming language (C++) and mathematics (linear algebra) that was used in the prerequisite, CGRA 251.

Withdrawal from Course

Withdrawal dates and process:
https://www.victoria.ac.nz/students/study/course-additions-withdrawals

Lecturers

Neil Dodgson (Coordinator)

We expect to have one or two guest lectures from expert staff at Weta Digital.

Teaching Format

During the trimester there will are three scheduled slots per week. Two of those slots are for lectures. The third slot may be used for tutorials, labs, or student presentations.

Student feedback

Student feedback on University courses may be found at: http://www.cad.vuw.ac.nz/feedback/feedback_display.php

Dates (trimester, teaching & break dates)

  • Teaching: 04 March 2019 - 09 June 2019
  • Break: 15 April 2019 - 28 April 2019
  • Study period: 10 June 2019 - 13 June 2019
  • Exam period: 14 June 2019 - 29 June 2019

Class Times and Room Numbers

04 March 2019 - 14 April 2019

  • Tuesday 16:10 - 17:00 – 120, Easterfield, Kelburn
  • Wednesday 16:10 - 17:00 – 120, Easterfield, Kelburn
  • Friday 16:10 - 17:00 – 120, Easterfield, Kelburn
29 April 2019 - 09 June 2019

  • Tuesday 16:10 - 17:00 – 120, Easterfield, Kelburn
  • Wednesday 16:10 - 17:00 – 120, Easterfield, Kelburn
  • Friday 16:10 - 17:00 – 120, Easterfield, Kelburn

Required

There are no required texts for this offering.

Mandatory Course Requirements

In addition to achieving an overall pass mark of at least 50%, students must:

  • Obtain at least 40% on the final project.

If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.

Assessment

This course is assessed through assignments, project proposal, project presentation, and project report. Students will be required to give two oral presentations, submit three programming assignments, and submit all of the documents for the project (proposal, report, code, presentation slides).

 

Assessment ItemDue Date or Test DateCLO(s)Percentage
Programming Assignment 1week 4CLO: 1,2,320%
Programming Assignment 2week 6CLO: 1,2,315%
Project proposalin the mid-trimester breakCLO: 110%
Programming Assignment 3week 9CLO: 1,2,320%
Project submission and reportin the study and exam periodCLO: 1,2,335%

Penalties

  • Each assignment that is late (i.e., submitted on the submission system after the deadline) will be penalised by 25% for each day that it is late.
  • Each student will have 3 "late days" which can be used for any assignment or assignments during the course (except for the final project submission). There will be no penalty applied for these late days. You do not need to apply for these - any late days you have left will be automatically applied to assignments that you submit late. Late days are used up in fractions of a day, for example, using 0.1 of a day will leave you with 2.9 days.
  • The late days are intended to cover minor illnesses or other personal reasons for being late. You should ask for extensions only in the case of more significant or longer lasting problems and we reserve the right to ask you for documentation to support your case. Do not waste "late days" on procrastination.
  • All submitted code must be compiled and run on the ECS Linux system. You can work on any other platforms, but programs that do not compile and run on the ECS Linux system will not be marked. Since computer graphics is all about showing results on the screen, assignments and projects are marked based primarily on the final output on the display.

Extensions

Individual extensions will only be granted in exceptional personal circumstances, and should be negotiated with the course coordinator before the deadline whenever possible. Documentation (e.g., a medical certificate) may be required in some circumstances.

Submission & Return

All work is submitted through the ECS submission system, accessible through the course web pages. Marks and comments will be returned through the ECS marking system, also available through the course web pages.

Marking Criteria

Computer graphics is best learned by doing and showing the results. There will be three programming assignments, and a substantial programming projects. Work for marking should be submitted electronically using the ECS Submission System. The project consists of both individual and group tasks.

All submitted code must be compiled and run on the ECS Linux system. You can work on any other platforms, but programs that do not compile and run on the ECS Linux system will not be marked. Since computer graphics is all about showing results on the screen, assignments and projects are marked based primarily on the final output on the display.

The details of the assignments and projects will be provided in the lectures and on the course website.

Group Work

The project is group work in groups of 2 or 3 students. The number of group member depends on the total number of enrolled students and the project topics. Part of the project is done and marked as a group. Therefore, we strongly encourage students to engage with their group. Well-collaborated and integrated projects will receive more marks. However, most of the assessment is based on individual contributions. The group marks will be limited to a part of the project proposal (5 marks), the integrated system (5 marks), and presentation (5 marks) of the final project; the other parts of the project proposal (5 marks) and final submission (25 marks) will be assessed individually.

Workload

In order to maintain satisfactory progress in CGRA 350, you should plan to spend an average of 10 hours per week (including 1 week of mid-trimester break) on this paper. A plausible and approximate breakdown for these hours would be:

  • Lectures: 2 hours
  • Reading and online research: 3 hours
  • Assignments: 5 hours
You will need to work on the reading and online research for the project in parallel with working on the first two programming assignments.

Teaching Plan

See https://ecs.victoria.ac.nz/Courses/CGRA350_2019T1/LectureSchedule

Communication of Additional Information

All online material for this course can be accessed at https://ecs.victoria.ac.nz/Courses/CGRA350_2019T1/.

Offering CRN: 28400

Points: 15
Prerequisites: CGRA 251, COMP 261, NWEN 241
Duration: 04 March 2019 - 30 June 2019
Starts: Trimester 1
Campus: Kelburn