Docstoc

AUTHORING TOOL DESIGN DOCUMENT OUTLINE

Document Sample
AUTHORING TOOL DESIGN DOCUMENT OUTLINE Powered By Docstoc
					Advanced Topics in Computer Graphics and Animation



   AUTHORING TOOL DESIGN DOCUMENT OUTLINE


PROJECT SUMMARY
        Fluid solvers have traditionally been implemented as a CPU algorithm. These software
packages, however, can take relatively large time periods in order to do the calculations for the
simulation. Migrating the solver from the CPU to the GPU can provide a noticeable speedup by
utilizing the parallelization of the streaming processor. This is advantageous since there is an
inherent parallelism in having to solve Navier-Stokes equations for each particle in a particle
system. Therefore, our tool will include using the GPU to process the Navier-Stokes solver.
        Current fluid/smoke control systems available in commercial packages such as Maya
offer a limited amount of control over the motion of the simulation. The user is able to apply
basic forces to the simulation, such as wind, gravity, turbulence and other general effects. It is
difficult and time consuming, however, for users to provide a fine grained level of control of the
fluid elements. Recent algorithms, such as target driven methods, have addressed this problem
by providing a powerful and convenient level of control. These implementations work by either
explicitly defining a goal state into which the smoke/fluid is evolved, by constraining the
movement of the smoke within a certain predefined limit, or a combination of the two. This
allows the user to create complex fluid movements quickly and efficiently by defining
constraints in the form of images or models as opposed to individual forces.
        Our goal for this project is to implement a three dimensional fluid solver on the GPU, and
then to build a target driven smoke control system to control the simulation. We will be focusing
on smoke as opposed to fluid simulation; however, this tool could be used in the future as a base
upon which to build a control system for fluid simulation.
        This tool will be designed for users who wish to create highly specific smoke movements
and shapes. Though it will greatly simplify the process, this will remain an advanced tool meant
for experienced users. To facilitate its use, the final version of the tool will be integrated into
Maya as a plug-in. Users will create a particle based system using Maya’s preexisting system.
Furthermore, the tool will require users to provide target conditions in the form of voxel models,
which will be used for either the initial or final condition, or both.
        This project can be broken into two parts. The first half of the project will deal with
implementing the fluid solver on the GPU. We will be basing our efforts on the work previously
published by Mark Harris. Our goal will be to extend his work to three dimensions. Secondly,
we plan to create the control system for the target driven smoke method. We plan to implement
portions of this system on the GPU when appropriate and use C++ otherwise. The GUI for the
Maya plug-in portion of the tool will be implemented using MEL scripting.
        Our intention is to have the first section of the project along with a basic visualization
implemented for the Alpha. The control system and the basic Maya interface will be available
for the Beta version. Debugging and integration into the final Maya plug-in will be completed
by the end of the project term.
CIS660: Advanced Topics in Computer Graphics and Animation                                 2/16/05




1. AUTHORING TOOL DESIGN

1.1. Significance of Problem or Production/Development Need
        Fluid solvers have traditionally been implemented as a CPU algorithm. These software
packages can take relatively large time periods in order to simulate the fluid. Migrating the
solver from the CPU to the GPU can provide a noticeable speedup by utilizing the parallelization
of the streaming processor. This is advantageous since there is inherent amount of parallelism in
solving Navier Stokes equations for modeling fluid flow. This tool will take advantage of these
speedups by using the GPU to process the Navier Stokes solver.
        Current smoke authoring tools available in commercial packages such as Maya have
limited control systems. The modeler is able to provide basic forces such as wind, gravity,
turbulence and other general effects. It is difficult and time consuming for users to provide a fine
grained control of the fluid elements. Recent algorithms have addressed this problem by
providing methods to create target driven smoke. These implementations work by either
explicitly defining a goal state or by constraining the movement of the smoke. This allows the
user to create complex fluid movements quickly and efficiently by defining constraints in the
form of images or models as opposed to individual forces.




1.2. Technology
We will be referencing two papers to complete this tool. Mark Harris’s paper, “Real-Time
Cloud Simulation and Rendering” (Harris 2003) will be used to as a basis for the GPU
implementation of the Navier Stokes equations. The target driven smoke will be based off the
2004 paper by Fattal and Lischinski, “Target-Driven Smoke Animation” (Fattal 2004).



1.3. Design Goals
        1.3.1 Target Audience.
This tool will target the experienced Maya user who has a familiarity with Maya’s pre-existing
particle systems and is looking to provide extra control to create highly specific smoke
movements and shapes.

        1.3.2 User goals and objectives
The user will be able to create traditional particle based systems and provide a unique layer of
control allowing users to make smoke form patterns and shapes.

       1.3.3 Tool features and functionality
The tools feature set will include easy interaction between traditional Maya particle systems in
the form of an integrated submenu into Maya.


                                                 2
CIS660: Advanced Topics in Computer Graphics and Animation                                 2/16/05

        1.3.4 Tool input and output
Users will be able to provide a voxel volume as the smoke target state and specify the particle
system that the smoke simulation should be applied to. Users will be able to specify other
parameters such as the number of time steps, the force smoothing parameter, the force
coefficient, the momentum attenuation coefficient and the gathering coefficient. The tool will
provide the new particle positions as an output for each time step.


1.4. User Interface
        1.4.1 GUI Components and Layout
The user will open our sub-menu through Maya’s traditional plug-in interface. The plug-in will
then create a particle system for that system. The user can then alter and move the particle
system inside the workspace. The GUI will provide inputs for the specified parameters.

        1.4.2 User Tasks
The user will need to have some knowledge of creating basic models inside of Maya. In addition
the user will need to be familiar with Maya’s particle systems and voxels volumes. The user will
be able to select the voxel volume and alter the particle system once it is created by our software.
The user will also be able to alter the parameters listed above to specify how the smoke will
form.


        1.4.3 Work Flow
The user must begin by providing a 2d image containing the shape that the smoke should form
into. Next the user is able to open the Maya plug-in and load the 2d image into the plug-in. The
plug-in will create a particle system that the smoke simulation will be applied to. The user can
then move and alter the particle system to suit their needs. Next the user can alter the default
parameters inside the plug-in before letting the smoke simulation run. During render time the
smoke simulation will alter the positions of the particles to create a smoke effect. This process
will provide a manageable interface for users to create target driven smoke.




                                                 3
CIS660: Advanced Topics in Computer Graphics and Animation                               2/16/05




2. AUTHORING TOOL DEVELOPMENT

2.1. Technical Approach
        2.1.1 Algorithm Details
The fluid simulation will be based off of Mark Harris’s 2d implementation of the Navier Stokes
equations on the GPU. We will be transforming his provided algorithm from two dimensions to
three dimensions. Next, we will be implementing the target smoke algorithm described in the
Fattal. This algorithm will concentrate on simulating the smoke and gathering it according to the
voxel model given. It will not concentrate on the creation of the voxel model.

        2.1.2 Maya Interface and Integration
The algorithm will mainly be written in C++ and CG. MEL will be used for the creation of the
particle system and the plug-in GUI. CG will be used for the creation of the fluid simulator and
for parallel portions of the target driven method. C++ will be used for the remaining portions of
the target driven method and to encapsulate the CG.

        2.1.3 Software Design and Development
This section will be implemented once Harris’s original code has been analyzed. At that point in
time a class diagram will be drawn outlining how Harris’s code will be altered and how target
driven smoke will be implemented.

2.2. Target Platforms
       2.2.1 Hardware
             Target Graphics Card: GeForce6800 Ultra
             Target Processor:    Pentium 3 or faster processor, must be able to run Maya 6.0
             Target Memory:       512 MB

       2.2.2 Software
             Windows 2000 or XP
             Maya 6.0
             OpenGL libraries
             CG libraries


2.3. Software Versions
       2.3.1 Alpha Version Features (first prototype)
The alpha version shall contain a 3d fluid simulation. This simulation does not need to be
incorporated into Maya.




                                                4
CIS660: Advanced Topics in Computer Graphics and Animation                                 2/16/05

        2.3.2 Beta Version Features
The beta version will contain a working simulation and target driven algorithm. The software
will be incorporated into Maya but all of the controls and the error checking mechanisms may
not be functioning.

       2.3.3 Description of any demos or tutorials
The software shall provide one working demo and a short tutorial for creating the smoke effect.


3. WORK PLAN

3.1. Tasks
List all the tasks necessary to build your authoring tool. Provide separate descriptions of each
task, which members of the group are assigned to it, and the expected task duration.

       3.1.1 Alpha Version
             1. Get Mark Harris’s original 2d fluid solver working on the GPU.
                    Approx time 3 hours.
             2. Convert Harris’s GPU algorithm to 3d
                    Approx 3 weeks
             3. Begin implementation in Maya’s MEL interface
                    As time permits

       3.1.2 Beta Version
             1. Create voxel model loader
                     Approx 10 days
             2. Implement Target Driven Smoke algorithm
                     Approx 3 weeks
             3. Create MEL GUI
                     Approx 1 month (worked on concurrently with the rest of project)
             4. Integrate MEL GUI with C++ API
                     Approx 1 week

       3.1.3 Final Version
             1. Test plug-in
                     Testing will be performed as time permits
             2. Fix any bugs
                     As time permits
             3. Retest plug-in
             4. Fix any bugs
             5. Create demo
                     Approx 3 hours
             6. Create Tutorial
                     Approx 4 hours



                                                 5
CIS660: Advanced Topics in Computer Graphics and Animation   2/16/05

3.2. Schedule




                                       6
7
Advanced Topics in Computer Graphics and Animation