Year
2016
Units
4.5
Contact
1 x 1-hour lecture weekly
1 x 2-hour workshop weekly
1 x 2-hour practical weekly
Enrolment not permitted
COMP4711 has been successfully completed
Assumed knowledge
Intermediate level programming, preferably in C#, C++, or Java, as provided by COMP2711 Computer Programming 2 or COMP2741 Application Development.

Some experience using 2D or 3D computer graphics APIs, as provided by COMP3751 Interactive Computer Systems or COMP3752 Computer Game Development.

Basic understanding of matrix and vector arithmetic, and familiarity with physics concepts such as Newton’s Laws, momentum, and kinetic energy.
Topic description
This topic covers the computer graphics pipeline, graphics processing hardware, physics-based interactive computer simulation (including simple dynamics, friction, collision responses), computational geometry (including 3D model representations: shell meshes, implicit surfaces, NURBS and patches), collision detection and collision handling (including intersection algorithms, spatial partition schemes, narrow-phase and broad-phase), data-structures and algorithms (including bounding box hierarchies, shading algorithms, deferred shading), and real-time rendering considerations
Educational aims
This topic aims to introduce interactive physics as used in modern computer graphics simulation applications, addressing both the fundamental concepts and the programming techniques used in developing modern simulations. The topic aims to give students a detailed understanding of the graphics pipeline and the underlying hardware, and experience in building virtual reality simulations with realistic physics-based interactions. Theoretical concepts will be backed up by practical project work developing simulation software components.
Expected learning outcomes
At the completion of the topic, students are expected to be able to:

  1. Understand and be able to use the programmable graphics pipeline stages to render 3D graphics
  2. Understand different 3D object representations and use them appropriately
  3. Use collision detection algorithms to simulate realistic interactions between 2D and 3D objects
  4. Build applications that use real-time physics simulation tools to realistically simulate real-world systems
  5. Appreciate the role of interactive physical simulation in real world applications