Computing for Graphics and Animation
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:
Understand and apply Object Oriented and Functional programming concepts and techniques to the design and implementation of CGI systems;
Analyse and select suitable data structures for program development;
Understand and implement computer animation related algorithms using OP;
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
‘Communications of the ACM’ monthly publication of Association of Computing Machinery
http://www.opengl.org/ (the OpenGL official site)
http://www.opengl.org/Documentation/Books.html (books on OpenGL)
http://www.research.att.com/~bs/C++.html (Bjarne Stroustrup C++)