Personal Information
Idea to implement
- Synopsis and Goals: The aim of this project is to implement texture baking of global illumination such as ambient occlusion, which will increase the speed of rendering. This will be achieved by creating the baked textures from loaded textures and use these instead when rendering. The light calculations made for the new textures would then be turned off from the renderer.
- Detailed description: The idea for the implementation is to have a rendering before the intended rendering where only the materials and lamps to be baked are present. For this render a special camera class needs to be made that is aware of the objects in the scene, and uses this information to iterate over each face of each object and record the rendered textures by shooting rays for each pixel. The camera would place itself in front of each face and use orthographic projection.
- To write the pixels back to the texture images conversions between coordinates will be done
- Workflow and Usabitily: The feature is either in effect automatically or it can be configured.
- Temptative schedule:
- The plan is to first familiarize with the code base, first figuring out how things are rendered, focusing on how textures are managed and how the camera works. The materials to be baked with textures need also be identified. A deeper understanding of how objects and UV-coordinates can be handled might also be necessary.
- I'm aiming to have a working camera that can iterate over each face and retrieve the pixels with some success before the mid-term evaluation. The following period will be dedicated to making sure the baked textures get properly written back. There will also be more rigorous testing that it works like it should and documentation will be prepared.
- Milestones for the project might include:
- * Camera able to move in front of each face.
- * Able to correctly retrieve the pixels from the face of an object.
- * Can correctly write back pixels to the texture image buffers.
- * Documentation and testing done.
Work can begin as soon as soon as I've gotten a basic understanding of how the YafaRay system works. I believe experimenting with the camera could start during the first week.
- Other commitments during summer:
* Software Engineering course:
April 23 - June 4: Project work
May 7: Exam
* Embedded Systems course:
May 3 - June 1: Project work
These two courses are taken in parallel, so they make up full-time studying together.
I'm also moving to a new apartment May 1.
Bio
My name is Rickard Westerlund and I study third year computer science going for a master's degree at Umeå University in Sweden. I am looking to specialize myself in computer graphics and physical simulations,. I have much experience in different languages, mainly C, C++, Java, Perl, Python and JavaScript. Currently I am working on the open source project VCMI (http://sourceforge.net/projects/vcmi/) which is written in C++ and SDL. I have no prior experience with raytracing.
My primary work experience with 3D graphics has been to write a simple game engine in high school using C and OpenGL. I've also had a two week intern at the high-speed computing department of the university I am studying at where I worked on an application for their virtual reality laboratory that allowed you to view the objects inside the simulation. The application was written in Lua using OpenSceneGraph and allowed the user to view the objects in a hierarchical fashion, grouped by certain locations in the simulation world.