JacquesLucke / animation_nodes

Node based visual scripting system designed for motion graphics in Blender.
Other
2.29k stars 342 forks source link

Issue and Proposal: Animation Node L-Systems has a huge potential! #1780

Closed psypiens closed 3 years ago

psypiens commented 3 years ago

Hello Jacques and Omar, first of all I want to thank you for making this amazing tool, I always enjoy working with it . In the last years I have been doing some research on L-Systems because I wanted to learn how to create generative plants, I explored the possibilities and limitations of different software that features L-System, like Touch Designer, Cinema 4D, and Blender, and found that your L-System is the most flexible and scalable of all, because it very intuitive and it works beautifully with the other nodes, but I found there are some issues when generating geometry with taper for seamless transition between branches. I use the node “spline from edges” with the following configuration to achieve this:

Captura de Pantalla 2021-08-25 a la(s) 23 20 29

then tried different methods to generate geometry but i always get this result:

Captura de Pantalla 2021-08-25 a la(s) 22 16 26

Some of the vertex radius of the final branches somehow are wider, I do not know why this happens. I hope that there is a solution to this, or get fixed in future updates. Despite of that i kept on trying other methods to generate geometry and I found that skin modifier is great in combination with L Systems to generate even more seamlessly and aesthetically appealing looking tree, but I have to adjust each vertex radius manually to get the look I want. It would be awesome to integrate skin modifier`s radius to AN, also i think there are some features that Touch Designer has that could make AN L Systems the ultimate tool for generative nature. Here is one of my explorations using the skin modifier: treeBlender If you want more feedback on this, I would be happy to help, thanks you!

OmarEmaraDev commented 3 years ago

Can you share the full node tree or a minimal file that reproduces the issue? This seems more related to how you compute radii.

OmarEmaraDev commented 3 years ago

An easy way to control the skin modifier probably requires some work in Blender itself. In the mean time, maybe check the following answer: https://blender.stackexchange.com/a/101137

psypiens commented 3 years ago

https://www.dropbox.com/s/50sznagr8tc677y/lsystemissue.blend?dl=0 Here is a sample file using two methods, in both I get the issue. Thanks you

Gerstmann-Bradley commented 3 years ago

I can't download the file, the link is not reachable. If you are looking for growth, perhaps you want to try "find shortest path" node and trim spline afterwards. Or maybe I understood you wrong about what you want.

OmarEmaraDev commented 3 years ago

The Edges output of the Lsystem is defined per edge. The radius of the splines per edge is expected to be per vertex. So you are mixing two different domains. A possible workflow is to take the average of the connect edges as follows:

20210831-091036

psypiens commented 3 years ago

Thanks you for the help !

psypiens commented 3 years ago

I can't download the file, the link is not reachable. If you are looking for growth, perhaps you want to try "find shortest path" node and trim spline afterwards. Or maybe I understood you wrong about what you want.

I tried it that way too, but it generates more geometry.