Computing for Graphics and Animation

AIMS

This Unit aims to introduce students to Object Oriented Programming (OOP) and functional concepts that are commonly used in computer graphics and animation. The various techniques and concepts are introduced in a way that demonstrates their relevance and application to computer graphics and animation.

INTENDED LEARNING OUTCOMES

Having completed this unit the student is expected to:

  1. Understand and apply Object Oriented and Functional programming concepts and techniques to the design and implementation of CGI systems;

  2. Analyse and select suitable data structures for program development;

  3. Understand and implement computer animation related algorithms using OP;

  4. Develop GUI based systems using a suitable API for animation.

Learning and teaching methods

This unit will be taught as a combination of lectures and workshops. The workshop sessions are designed to follow the lectures step by step. The workshops both complement and mirror the corresponding lectures with practical programming examples and exercises. Students are exposed to various strategies for designing, implementing, testing and documenting programs. Students are also encouraged to develop a personal approach to solving computer graphics and animation related problems based upon recognised practices of software engineering

Indicative unit content

  • Introduction to Object Oriented Programming Objects and classes
  • Data structures for CGI.
  • Real-time / Offline algorithms for CGI
  • GUI design and programming.
  • Inheritance and Runtime Polymorphism
  • Generic Programming with Templates STL Containers
  • Functional Techniques
  • Shading Models, OpenGL Lights, Materials
  • Software Engineering principles, lifecycle of software projects

INDICATIVE KEY LEARNING RESOURCES

Each student will have access to a workstation with an appropriate development environment. Budd, T. 2001. Introduction to Object-Oriented Programming Addison Wesley. Eckel, B. 2000.

Thinking in C++ volume 1 Prentice Hal Inc, 2000. Available online http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

Foley, J.D., vanDam, A., Feiner, S.K. & Hughes, J.F. 1996. Computer Graphics: Principles and Practice, Addison-Wesley, 2nd Edition in C

Hill F.S. 2005. Computer Graphics using OpenGL. 3 rd Edition Addison-Wesley

Parsons, D., 1997. Object Oriented Programming with C++. 2nd edition. Letts Educational

Shreiner, D., Sellers, G., Kessenich, J. M., Licea-Kane, B. M., 2016, OpenGL Programming Guide: The Official Guide to Learning OpenGL , Version 4.5 with SPIR-V, Addison-Wesley

Stroustrup, B., 1997. The C++ Programming Language, 3rd edition, Addison-Wesley

Watt, A., Watt, M., 1992. Advanced Animation and Rendering Techniques. Addison-Wesley

Woo, M., et al. 1999. OpenGL Programming Guide The official Guide to Learning OpenGL, Version 1.2 (3rd Edition) Addison-Wesley

Woo, M., et al., 1997. OpenGL Programming Guide. Version 1.1, Addison-Wesley

Journals

‘Communications of the ACM’ monthly publication of Association of Computing Machinery

Websites

http://www.opengl.org/ (the OpenGL official site)

http://www.opengl.org/Documentation/Books.html (books on OpenGL)

http://www.acm.org/siggraph

http://www.research.att.com/~bs/C++.html (Bjarne Stroustrup C++)