「利用者:Mirkil」の版間の差分

提供: wiki
移動先: 案内検索
(adding Status update)
 
(1版 をインポートしました)
 
(相違点なし)

2018年6月29日 (金) 02:47時点における最新版

Improved Hair System

COPIED FROM SOC 2006 PROPOSAL WITH SOME MINOR ADDITIONS

Benefits

  1. Easier to add hair to models.
  2. Better, simpler methods to animate hair.
  3. Simplified and unified interface to a hair system.

Deliverables

  1. A patch to blender adding an improved hair system- The final patch will include
    1. Simplified hair creation through control hairs
    2. Improved curve guide targeted for the control hairs
    3. Collision detection for hair
    4. A physics simulator for hair
  2. Developer and user documentation for the patch

Project Details

A hair system should handle four basic problems: hair creation, hair motion, collision detection involving hair, and hair rendering. This project will focus on the first three problems and use the current system for rendering.

  1. Creation: Hair creation will be based on control hairs as described in [1]. The hair itself will consist of a particle system or a collection of particle systems. Later versions may include other primitives such as meshes to model styles like flowing cartoon hair. Control hairs will behave like specialized curve guides. They will incorporate control hairs as described in [1] and the dual skeleton setup as described in [2]. To grow hair I shall utilize methods described in [1] to interpolate between regions.
  2. Motion: Hair motion will use a combination of various kinds of hair guides and physics simulations. Hair guides will enable the user to precisely control hair movement. For instance, a user can model and animate a girl tying her hair into a ponytail. The physics simulator will handle the inertia and external forces such as gravity, friction, and wind on the hair. The simulator will be based on the hair dynamics system described in [2] and [1] and [8].
  3. Collision detection: Specialized collision detection will incorporate hair-to-hair, hair-to-body, and hair-to-object collision detection and response as described in [3] and [4]. The underlying algorithm will either be from [5], [6], or [7].

Status

  1. Outside of blender, I have developed a rigid body simluator that has successfully simulated hair without collision detection. I've decided to use the liner spring model described in [8] due to its simplicity. Currently, I am working on adding collision detection and response using sphere swept surfaces. Once I have added the collision detection and response system, I will begin work within blender on the interface. I'll post the source code of the simulator this week. Right now the hair does not stay in its resting placewhen its under the influence of gravity. I shall work on correcting that soon too.

Competitive Analysis

Hair modules:

  1. Cinema 4D module: www.maxon.net/pages/products/c4d/modules/hair/hair_e.html
  2. Shave and a Haircut: www.pluginz.com/product/10231
  3. Shag: www.plugincentral.com/aHTM/Tools/Digimation/ShagHair/index.htm
  4. Ornatrix: www.ibmr.net/Ornatrix/
  5. Glasswork's FurShader

There are a number of method proposed to model and simulate hair. Explicit models simulate all strands of hair. Although they are the most simple and produce great results, the calculations are too time consuming for them to be a practical method as of this time. Various wisp models clump regions of hair together noting that regions of hair act similarly. Hair has also been modeled as if it were a fluid; however, some hair styles such as ponytails are not possible to model with those systems.

Some Alternative Systems described in Academic Papers:

  1. 'Modeling Dynamic Hair as a Continuum' Sunil Hadap, Nadia Magneat-Thalmann
  2. 'An Integrated System for Modeling Animating, and Rendering Hair' Agnes Daldegan. Nadia Magnenat Thalmann. Tsuneya Kurihara. Daniel Thalmann.
  3. 'Hair Paint' Banjamin Hernandez. Isaac Rudomin.

Project Schedule

  1. Planning: While I familiarize myself with the blender code, I shall review physical simulation programming book(s) and papers and examine projects such as OpenTissue to get a better understanding of the requirements of the simulator. By the beginning of June and with the help of the blender community, I shall have finished developing requirements from users for the interface and from developers for the hair engine code.
  2. Development: Till the middle of August, I shall focus on developing the code. I shall routinely release a patch for the community to review and comment on. If possible, I shall re-use portions of the existing hair system for hair creation and curve guides.
    1. First, I shall develop the interface and a skeleton of code for the control hairs.
    2. Next, I shall develop the control hair creation and manipulation code.
    3. Thirdly, I shall develop the interpolation code which will be used to grow the hair. Initially, I will use linear interpolation. Then I will implement the interpolation algorithm described in [1].
    4. Fifth, I shall develop curve guides to control the control hairs. I shall try to re-use and improve the current curve guide code.
    5. Lastly, I shall develop a physics simulator for the hair.
      1. First, I shall write the integrator code that uses the Runge-Kutta algorithm.
      2. Second, I shall write the collision detection code and incorporate it into the simulator as described in [2], [3], and [4].
  3. Documentation: By the middle of August, I shall work to provide user documentation, a tutorial, and sample blender files. Code documentation will be created during development, but during this period I will update and extend the documentation pertaining to the new hair system.

Bio

I'm an independent inventor attending school for a MBA. My technical background includes a degree in computer engineering with a minor in physics from the University of Maryland. A number of my projects (tied to inventions of mine) involve microcontrollers, image processing (for instance, video segmentation and video space-time completion,) and volumetric displays. I'm familiar with computer graphics (I spent way too much time writing my own game engines when I was younger and learning computer science theory and 3d mathematics in order to do so) and blender with a very cursory knowledge of blender's source code too. I compiled blender from cvs source code a number of times in linux- especially last summer and fall so that I could play with the new animation and hair system. The programming languages I know best are C, C++, and Python. I have over a decade of programming experience and can develop my own algorithms and models when necessary.

Here are some complex projects that I have completed.

"Home Automation Implementation Using Low-Cost Reconfigurable Architecture" Jonathan Hudson, Ryan Robucci, Amir Rowhanirad, Ernesto Staroswiecki Adviser Jim Plusquellic UMBC Review pp. 88-97, 2003. In this project I examined, conceptized, and designed embedded systems of Atlera and Xilinix FPGAs, various RAMs, and RF chips. In addition, I examined, conceptized, designed, and programmed embedded systems of microprocessors (in particular the 8051,) Altera FPGAs, RF chips, and various RAMs.

In class, I worked and finished a reverse polish calcuator at the VLSI level using CADENCE. Also, I have written differential equation solvers of pendulum and chaotic systems in matlab.

For Dr. Plusquellic I debugged a 16bit RISC processor my freshman year when I had no computer engineering expreince (only software programming experience.) I helped develop Transcient Signal Analysis which resulted in the published paper: "Predicting Device Performance From Pass/Fail Transient Signal Analysis Data" Jim Plusquellic, Amy Germida, Jonathan Hudson, Ernesto Staroswiecki, Chintan Patel. International Test Conference pp. 1070-1079, Oct 2000.

At NASA Goddard I learned and implemented several complex algorithms from academics papers to aid in signal processing of space irradiance data.

Mirkil 09:35, 9 May 2006 (CEST)

References

[1] "Fur and Hair: Practical Modeling and Rendering Techniques" A. Iones, A. Krupkin, S. Volodarsky, S. Zhukov

[2] "Modeling Hair Influenced by Water and Styling Products" Kelly Ward. Nico Galoppo. Ming C. Lin.

[3] "Adaptive Grouping and Subdivision for simulating Hair Dynamics" Kelly Ward. Ming C. Lin.

[4] "Modeling Hair using Level-Of-Detail Representations" Kelly Ward. Ming C. Lin Joohi Lee. Susan Fisher. Dean Macri.

[5] "Fast Proximity Queries with Swept Sphere Volumes" Eric Larsen. Stefan Gottschalk. Ming C. Lin. Dinesh Manocha.

[6] "OBBTree: A Hierarchical Structure for Rapid Interface Detection" S. Gottschalk. M. C. Lin. D. Manocha.

[7] "Efficient Collision Detection Using Bounding Volume Hierarchies of k-DOPs" Jame T. Klosowski. Martin Held. Joseph S. B. Mitchell. Henry Sowizral. Karel Zikan.

[8] "Physically-based Simulation of Hair Strips in Real-time" Hasan Dogu Taskiran and Ugur Gudukbay.