Taught next: Winter 2019/2020
This introductory course stands at the base of the vast Computer Graphics world, whose outcome we see in medical applications, industrial modeling, entertainment and many other fields.
- Basic rendering techniques
- Introduction to OpenGL
- Color theory
- Simple animation techniques
- Selected advanced topics
The course focuses on advanced topics in computer graphics and specifically photo-realistic rendering.
- Basics of sampling theory and applications to image manipulation
- Ray tracing
- Photon mapping
- Selected advanced topics in volumetric graphics
Taught next: Spring 2018, Spring 2019
Recent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models.
This course covers some of the latest developments in geometric representations, modeling and processing.
- Surface modeling based on triangle meshes
- Mesh generation
- Mesh fairing and simplification
- Parameterization and remeshing
- Subdivision schemes
- Mesh editing and deformation
Programming exercises will help translate theoretical concepts to practical applications.
A code framework will be provided that allows to experiment with various algorithms without having to bother about software infrastructure.
There will be a few modest programming assignments, and no final exam.
Introduction to Computer Graphics, experience with C++ programming.
Some background in geometry or computational geometry is helpful, but not necessary.
Taught next: Winter 2018/2019
In this seminar you will be introduced to the analysis and design of vector fields on discrete surfaces, by reading and discussing recent research papers on the topic.
The first few meetings will be dedicated to some basic background about vector calculus, and vector calculus on surfaces.
- Vector field representations
- Smooth vector field design
- Vector field visualization
- Vector field simplification
- Applications: texture synthesis
- Applications: curvature estimation
- Applications: quad meshing
- Applications: fluid simulation
- Each student will present a research paper in the seminar.
- The presentation is 50-70 minutes, and should include enough details to understand the paper, and where it stands in the context of other papers. You will need to read the paper carefully, implement a simplified version of it (e.g. one of the algorithms suggested), and discuss its pros and cons. Grading will be based on your ability to analyze the paper, and discuss the research results.
- Final grade: 60% presentation, 40% partial implementation of the paper.
- Attendance is mandatory.
Some background in geometry is helpful, but not necessary.
Taught by: Orestis Vantzos
A practical course on the various methods, challenges and applications of modelling the motion of physical objects and the evolution of physical processes in the computer, with a focus on the kinds of phenomena one encounters in graphics and animation. We will work through a number of interesting examples; from their mathematical modelling, to the discretisation and numerical solution of the resulting model, all the way to the visualisation and study of the results.
Potential topics, with examples, include:
- Particle systems: flame simulation, formation of snowflakes
- Rigid-Body Motion: Quadcopter simulation, Realistic spaceship flight
- (Inverse) Kinematics: Deformable & tearable cloth, Ragdoll physics
- Elliptic PDEs: Buckling of bars and shells, Radiosity, Fluid/gas flow through a maze
- Parabolic PDEs: Heating things up, Tiger stripes and giraffe spots formation
- Hyperbolic PDEs: All kinds of waves!
Most of the algorithms we will use can be found in Numerical Recipes: The Art of Scientific Computing by W. H. Press et al., Cambridge Uni Press.
Being comfortable with Linear Algebra (vector spaces, matrices, linear systems), Analytic Geometry (coordinate systems, equations of lines, circles) and Calculus (derivatives and integrals, preferably in many dimensions). A familiarity with linear systems and differential equations would be useful, but is not required. We will work with a relatively small subset of Python, so a basic knowledge of the language would be useful. A working knowledge of Matlab or Mathematica is not required but might be helpful with the exercises.
Some related courses are: Intro to Computer Graphics, Numerical Analysis, Visualisation and Animation (EE).
A number of exercises/mini projects will be suggested based on each topic, typically asking for the numerical simulation of a phenomenon via a given algorithm and the visualisation of the result.
The final grade will be a combination of:
- Solving a certain number of the exercises.
- Presenting in the class an animation video based on one of the exercises.
The language of instruction is English.