利用者:Sionix/SummerOfCode2006/Proposal

提供: wiki
移動先: 案内検索

Summer of Code Proposal

[ Back to the project ]

Project Title

EXTENDING BLENDER'S WORLD. Physic-based sky generator.

Synopsis

Sunlight and skylight together with cloud effects are widely used in 3d applications to provide beautiful and realistic views in outdoor scenes. Sky generator (SG) is a general name for functionality intended to enable these features. Although simulation can be computationally expensive, it can be approximated in order to receive enough quality in acceptable time.

Current Blender’s world object provides simple shading model allowing in some cases to substitute skylight. SG is intended to extend world object and provide accurate atmospheric effects in Blender, allowing users to avoid usage of external tools for these purposes.

Benefits to the Blender Community

Solid realistic SG tool will be available in Blender. Main goal of this functionality – to provide artists with flexible quick-access sky system allowing them to create modern sky simulation effects in their scenes.

Deliverables

The following features are to be developed in the SG project:

F1. Accurate physic-based simulation of skylight, sunlight and aerial perspective effects;

F2. Clouds;

F3. Automatic creation of scene objects (light sources) helping to construct lightning environment based on generated sky properties;

F4. Sky animation (sun, clouds).


Functionality Details

F1. Simulation will be based on inexpensive analytic model that approximates full spectrum daylight for various atmospheric conditions. User will be provided with controls allowing him to set proper parameters for each object in the simulation. [1]

F2. Clouds will be made on base of 3d cellular automata technique. This will help to apply physically-based ray scattering approximation together with more realistic animation. Noise maps will also be used in process – user may map them as hi-height fleecy clouds. [2]

F3. To create scene illumination according to the current sky scene will also need for additional light sources, so they will be properly installed in the scene.

F4. Animation logically completes offered model. Dynamic skies and clouds will be available for the user.

UI will be extended in order to give the user easy and intuitive access to the functionality.

Implementation Details

Generator will be represented in Blender as static C++ library with C interface. There, in the library, major part of implementation will take place.

SG will work with hi-res texture maps. The output will be applied as sky dome texture and also can be used for environmental texture mapping.

As it was noted above, special approximation algorithms allowing to receive reasonable balance between quality and performance will be used.

Development Methodology

Project divides into four large parts that should be developed in original order, but can be submitted separately. And it will be done as soon as a new feature is ready to use. This will help iteratively increase feature’s quality and help in bug fixing.

All new code will be submitted to an online CVS repository regularly.

On all stages contact with other developers will be supported.

Project Schedule

The first 2 weeks will be used for familiarization with Blender codes and building SG library prototype. To the mid-term of the program (end of June) I am planning to complete part F1. July and 1.5-2 weeks of August will be given to the rest (F2-F4) functionality, including: 2-2.5 weeks for F2, 1-1.5 for F3 and 2.5-3 for F4. Period before deadline (2-2.5 weeks) will be used for finishing code, debugging, testing and documenting.

Bio

I am 3rd year student of Belarusian State University, Faculty of Applied Mathematics and Informatics. I am 19. My area of interests is 3d computer graphics. My coding experience is about 8 years, and almost always creation of games where in my center of view. This sphere (especially in 3d) requires from programmer strong mathematical skills.

My experience in C/C++ is 8 years (first 1.5 years it was C, the rest is mostly C++), Python, Lua, Perl, Java – 1.5 years. Experience in 3d graphics – 3.5 years as a Blender user; in 3d graphics development - almost 3 years.

Also I have 1.7 years outsource working experience in the Integra [3] that specializes on 3d graphics. I have some experience of sky and cellular automata implementation from some of my own projects.

I am sure that SG project is really important for Blender. For me it will be an interesting challenge for my skills, real upgrade of them and, of course, a great pleasure from working with professionals.

References

[1] http://www.cs.utah.edu/vissim/papers/sunsky/sunsky.pdf

[2] http://www.eml.hiroshima-u.ac.jp/~doba/papers/sig00_cloud.pdf

[3] http://www.integra.jp