利用者:Testscreenings/Ivy port
< 利用者:Testscreenings
2010年7月31日 (土) 23:37時点におけるwiki>Mindronesによる版
目次
Concepts and progress on porting the Ivy generator over to Blender
A kind of log for porting the ivy generator over to blender.
What do we want
- get something that works like the ivy generator directly in blender.
- have the ivy growth be animatable? --> growing animations
- influenced by forcefields maybe?
- curve guides for growing directions
- immediate mode without animation --> paint gPencil strokes on surfaces and have the ivy branches generated approximately along them
- see if this can integrate with the tree generator made during BBB now in trunk, see http://www.bigbuckbunny.org/index.php/trees/
links
here are some links to related stuff:
- original ivy generator http://graphics.uni-konstanz.de/~luft/ivy_generator/
- overview of existing plant tools: http://www.vterrain.org/Plants/plantsw.html
- algorithmic botany papers http://algorithmicbotany.org/papers/
- basic collision detection: http://www.flipcode.com/archives/Basic_Collision_Detection.shtml and http://graphics.stanford.edu/courses/cs348b-98/gg/intersect.html
- general math, many usefull things http://www.math.umn.edu/~nykamp/m2374/readings/topicindex_mathml.html
- nice search engine for scientific papers http://citeseerx.ist.psu.edu/
- closest point to polygon http://www-compsci.swan.ac.uk/~csmark/PDFS/dist.pdf http://www.devmaster.net/forums/archive/index.php/t-103.html
original Algorithm
redesign
notes on the redesign
Coding stuff
reports
bug reports, comments, suggestions
First run
mainly pictures:
adhesion
the original adhesion:
The original algorithm for the adhesion has two problems:
- 1. There is no guarantee that an adhesion vector gets calculated because the adhesion vector gets calculated as the normal vector of the hyperplane of the face if and only if it hits the face. (see the implementation of adhesion2)
- 2. The translation to Pythons runs way to slow, mainly because the test is calculated for every face.
adhesion3
I have written adhesion3 as a compromise for speed, trading accuracy. As a first step the 4 closest faces are calculated. In a second step each face gets covered in sampling points which lie on the edges and the surface of the face in a regular pattern. The adhesion vector is then calculated from the NodePoint to the closest sampling point.
{{#dpl:
|debug=0 |skipthispage=no |mode=ordered |namespace=利用者 |titlematch=Testscreenings/Ivy port/% |shownamespace=false |format=Subpages,²{#ifeq:²{IsUpper¦²{SUBPAGENAME:%PAGE%}²}²¦1¦²{Multiply¦*¦²{#expr:1+²{PagetitlePartsAmount¦%TITLE%}²-²{PagetitlePartsAmount¦²{PAGENAME}² }² -1 }² }² ²{SUBPAGENAME:%TITLE%}²¦}²,,
}}