Project reference: 1713
The aim of this project is to create a computer render of a very simple scene using radiosity techniques. The rate at which energy leaves a surface is called its radiosity. This idea is the starting point for a method of near photo-realistic computer rendering. It produces images which model soft shadows and detailed colour interactions very well. It is determined via the ‘finite element method’ by solving a linear system of equations (i.e. an NxN matrix equation with N unknowns) which produces the radiosity of each element (polygon) in the scene. The entries of the matrix depend on the visibility between each pair of polygons, which is how the layout/geometry of the scene enters the equation. Once the solution is obtained, the light energy leaving each polygon is then projected to a viewing plane and the colour of each pixel in the render is determined. The determination of the matrix coefficients (called the ‘form factors’) and solution of the matrix equation can be accelerated via HPC methods such as parallelism, and a very fine subdivision of the scene into polygons (we will use squares) should be possible. If the number of polygons becomes very large, it may be faster to render by using a technique called ‘progressive refinement’, which gradually develops the image as light propagates. The project will consist of training/orientation, an implementation, a rendered scene and a final report.
This image shows the ‘Cornell Box’ rendered using near-photorealistic global illumination techniques, which include radiosity. (Copyright owner is Oisín Robinson@ICHEC)
Project Mentor: Oisín Robinson
Site Co-ordinator: Simon Wong
The student will develop an understanding how a problem with a physical relevance – simulation of light interaction in an environment – can be modelled by a linear system of equations.
The student will also see how this problem can be solved more quickly by employing a standard technique of HPC – exposing parallelism.
Student Prerequisites (compulsory):
Familiarity with solving a linear system of equations (i.e. inverting a matrix). Experience programming in c or c++ (not necessarily professional).
Student Prerequisites (desirable):
Comfort with higher-level mathematics such as taught in university in first year (e.g. linear algebra). Real vector spaces will be used to deal with geometry and it is an advantage to be familiar with this (e.g. how to compute dot product/vector products and more advanced tasks such as computing the intersection between a line and a plane). It will also be an advantage to have already used linux.
Read about radiosity online, https://www.siggraph.org/education/materials/HyperGraph/radiosity/overview_1.htm
(the second link gives the idea of the hemicube approximation method for determining form factors but we will go into more detail/cover the gaps).
Week 1, orientation/settle. Week 2, training – cover theory of radiosity/some mathematics to help with geometry, and cover the basics of working with linux/g++.
Week 3 outline milestones of project with particular emphasis on calculation of form factors via the hemicube method. We should be able to calculate the form factor Fij between any two patches Ai and Aj.
Weeks 4-7 implement algorithms in c++ and generate output, evaluating our incremental progress as we go – and finally present and write up final report in week 8.
Final Product Description:
Photo-realistic computer graphics have universal appeal and the subject produces imagery that is both striking and well-suited to academic study. The student can generate a number of stills that can be effectively used to showcase the project output, and the student may be able to generate a video (either a walk-through or propagation of light through the scene),encapsulating many different ideas from mathematics, physics, computer science and HPC, in the project output.
Adapting the Project: Increasing the Difficulty:
The difficulty could be increased by requiring a video to be produced as project output, either a walkthrough or showing the propagation of light. Also, adding a box to the scene complicates form factor calculation, since we have to account for surfaces being hidden, but would produce a more detailed image.
All software will be developed from firstprinciples using an open-source c++ compiler, g++. Any part of the project that requires a non-trivial amount of parallelisation will be facilitated by ICHEC through the Fionn cluster. All training will be provided by the mentor, and will be self-contained.