[Bf-committers] Procedural generation for summer of code!

Dima Glibitsky dima.glib at gmail.com
Sat Apr 7 10:26:00 CEST 2012


Hmm, how about parametric modeling? Sort of like a blend of macro,
modifiers and drivers:
1. user records a sequence of operations (the end result must be one
or more objects)
2. user can change parameters of any constituent operator at any time
afterwards (thus regenerating the object(s))
3. user can modify the operator node graph (add/delete/reconnect
operator nodes) at any time afterwards (thus regenerating the
object(s))
4. user can declare "high-level parameters" that drive some parameters
of constituent operators

Implementing it as a Python addon currently is not feasible, for the
following reasons:
- from Python, there's no way (or at least I couldn't find one) to
monitor what operators are being successfully applied (if operator has
been canceled, it shouldn't be recorded; if operator has finished, we
must use values of arguments with which it finished)
- "parametric" object must be a special kind of Object which can be
modified only by changing the operator node graph and/or its
parameters (though user can convert "parametric" object to normal
object(s) in backwards-incompatible way, like in curve->mesh
conversion)
- regeneration of such object requires special handling of context --
to have reproducible results and to avoid side-effects in the main
scene, the operator node graph must be applied in a separate "pocket
dimension" with fixed initial conditions

Parametric modeling is probably most useful when you need many similar
objects with some variability (houses in a village, armada of pirate
airships, etc.), or when you want some animated complex fractal
effects in a video. Addons like sapling/ivygen/masonry can benefit
from such mechanism too, since it would allow to edit their parameters
not just immediately after creation.
Also, parametric generation may aid procedural generation.

It's just a rough description, but I hope the idea is clear :-)


More information about the Bf-committers mailing list