Dev:Source/Physics/Particles/Fur
This page is outdated | |
The Peach project (Big Buck Bunny) is from 2007, however this page may still be useful. If you have questions, ask in #blendercoders at IRC |
目次
Fur Development for Peach
For Project Peach we need good fur editing, animation and rendering tools. The Particles Rewrite project is already improving the particle system a lot as a whole, this page is a about issues, solutions and development specific to fur for Peach.
-- Brecht
Grooming
Usage Notes
- The default segments can be lowered from 10 to about 5. That's both faster, and there's less keys that need to be controlled. Changing this amount can also be done while editing with the Rekey tool.
- Steps (in the particle mode and visualisation panel) can be lowered to improve speed.
- It might be best to edit with subsurf enabled, at level 1 or 2, because the direction of the particles changes somewhat when changing subsurf level, and for particle editing performance subsurf does not make much difference anyway.
- Random and Even distribution should probably be enabled to respectively make the Disp value work properly, and to get an even distribution of child particles (these could become separate options for children?).
Issues
The Disp value works different than it did before, now all particles are generated, but only a subset is displayed. This both slows down editing and uses a lot of memory. It would be good to either make this work like it did before, only generating all the particles when rendering, or add a separate option to do this.Child particle distribution is still slow with millions of child particles, due to the kdtree nearest neighbour search. Is there some way to speed this up? Multithreading could probably be added reasonably simple for child distribution and path caching.
Features Requests
These are some features that are not high priority, but would be nice to have.
- A twist/swirl/vortex brush to rotate hairs around the mouse position.
- Inside and outside particle edit mode, (child) strand shading could be improved, by for example blending in the normal at the surface. In particle mode parent particles could be forced do draw on top (draw children first with depth write disabled?).
- Hiding of faces and particles on them, make the old faceselect mode work with particle mode like it does now for the paint modes?
- Hotkeys for brushes.
- Interactive changing of the brush size and strength like sculpt mode F and shift-F.
Animation
Rendering
Issues
Memory usage is very high due to tesselation of all strands into faces.A strand primitive should be added to directly rasterize hair without tesselation, or tesselation should be done per tile.in svn
Rendering performance: ztransp, ..Solution: use painter's algorithm drawing segments back to front.in svn
- Shadows.
- Deep Shadow Maps from the summer of code project are designed to work for hair rendering.
- Subpixel faces and anti-aliasing, fixed strand width in pixels.
Resources
- Rythm & Hues hair rendering: http://www.rhythm.com/~ivan/hairRender.html
- Pixar level of detail for ratatouille: http://graphics.pixar.com/StochasticSimplification/index.html
- Siggraph course notes: http://portal.acm.org/citation.cfm?id=1103910
- ED blog: http://orange.blender.org/blog/hairy-issues
- Survey on (long) hair techniques: http://www-evasion.imag.fr/Publications/2007/WBKMCL07/
- Video of Maya/Renderman fur implementations: http://www.digitaltutors.com/digital_tutors/video.php?v=795