Current stable version: 0.1.1

Adrien Sulpice. Subject : Energy Redistribution Pathtracing

Personal Information:

  • Name. Adrien Sulpice
  • IRC  : #yafaray on irc.freenode.net. nickname : barbug

 


Idea to implement:



  • Synopsis and Goals.


The project is "Energy Redistributing Pathtracing" implementation. It is a new implementation of Pathtracing offering advantages of two approach : Monte carlo path tracing and Metropolis light transport. This new Pathtracing will be added in the list of pathtracing of Yafaray.


  • Detailed description.

 

The user decides of a number of mutations (between 100 and 1000 for a good result). The deposition energy is computed from the number of mutations.

The algorithm then creates several path for each pixel. For each path it compute the amount of energy deposited. If this amount is positive, the energy flow will be deposited throw a subpath. This subpath is created from consecutive mutations of the first path (linear markov chain that emanate from each Monte Carlo sample point). The number of mutations is given by the user. For each mutation, the probability that the flow occurs will be computed (acceptance probability). If this flow occur, energy will be deposited to the mutated point.

Two mutations strategies are possible. Caustic perturbation and Lens perturbations. They work both in same way but Caustic perturbation start at the light source and Lens from the eye.

ERPT algorithm creates noise in the final redered image. Two filters are proposed. The first consider the imbalance of flow for each pixel. It count the number of flow of each pixel and then the image is blurred to approximate the expected number of proposed mutations into each pixel. The second noise filter refuse to accumulate too much consecutive samples for each pixel when a lot of mutated paths has a small acceptance probability and the flow doesn't occur, the energy will not be deposited on the mutated point, it will be deposited on the current point.

The integrator will be added as a plugin in the project. It will register himself in the factory and will inherit of tiledIntegrator_t. The functions preprocess, integrate and cleanup will be overloaded and perhaps also render.

 

  • Workflow and Usabitily.
The user will choose the number of mutations for the quality of result (between 100 and 1000 is the better result).
  • Temptative schedule.
  • end of march (done) : 
  • Yafaray build
  • Yafaray integration in blender 2.49 (built version)
  • reading (and understanding of the three firsts chapter of pbrt book
  • pbrt sources build
  • april :
  • Finish to read pbrt book
  • Understanding a biggest part of Yafaray implementation and structure
  • may :
  • Understanding Yafaray code
  • Read about MLT
  • Understand Energy redistribution path tracing ([1] and [2])
  • Understanding of luxrender implementation of ERPT ([3])
  • June/july :
  • Conception during the 2 or 3 first weeks
  • Coding after the conception
  • Continue to read about ERPT (new references)
  • August
  • Debug
  • Tests
  • Write documentation

 


Bio:



I'm a french student. I'm currently in UWS (University of the West of Scotland). I'm in third year of "computers network" licence. Before, I was in France. I passed my DUT (University Diploma of Technology) in 2007 option "software developpement" in Aix-en-Provence (south of France). I finished first of the promotion (almost 150 students). I learn several languages like C/C++, C#, Java, PHP, HTML/CSS, Javascript/Ajax and SQL/PLSQL. This formation includes a lot of domains like linux system administration and security, network and database administration.

During this training course, I did a period of work experience in the CNRS (Scientific National Research Center) in the "speech and language" laboratory in Aix-en-Provence. The task was to insert a recorder named EVA (Assisted Vocal Evaluation used by doctors) in a software which shows a graphic representation of the recordings.

I like develop softwares and websites on my own. I like Blender but I have some difficulties with the 2.5 version yet. There are a lot of differences from the 2.4x inteface. During my first year in DUT, I did a 3D animation for a communication project with a friend. The result is not very good because we had not a lot of time and we had to learn alone how to use Blender. But this project has been very interesting for me. I'm actualy working on a new personnal 3D animation project using a french mp3 saga called "reflets d'acides" (more informations on http://www.synopsite.com/ website). It is a new project, I'm creating a website (http://siteperso.zzl.org) for this project. I'm working with the same friend that the first project. We are currently making the story board, a draftwsman should create the pictures this summer.

The second year of my DUT, I did an optional options which was 3D projection object in 2D and the second, rotations, etc. It really interested me.


Hobbies :

  • 3D animation
  • Music (I play drum and guitar)
  • Cinema
  • Computing

 

Work time :

 

I will work as a full time (35h per week). I will only need some days for interviews for next year studies. And just some days to go back in France from scotland with the car at end of may.



Adrien Sulpice.

 

References :

[1] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.63.5938&rep=rep...

[2] http://people.cs.ubc.ca/~batty/projects/ERPT-report.pdf

[3] http://src.luxrender.net/lux/file/43981caab6b9/samplers/erpt.cpp