Metaballs en Blender v. 2.32

Les metaballs (o metaobjectes o blobs) són isosuperficies (en 3D) d'una funció f:R³->R. És a dir, es defineixen en la forma implícita  f(x)=k. A la constant k se la sol anomenar threshholdSi prenem com a funció f un camp (elèctric, gravitatori) amb una sèrie de centres (punts de càrrega, astres), cadascun amb una distància (càrrega, massa), de forma que la funció decreix amb la distància, obtindrem les metaballs. Habitualment no es pren exactament una funció inversament proporcional a la distància, sinó al quadrat de la distància (més ràpid de calcular) o es fan d'altres simplificacions. Les metaballs properes s'uneixen formant una sola superfície connexa. Un exemple:



Enlloc de prendre càrregues puntuals, podem prendre'n amb d'altres formes (generadors), com segments de recta, cubs, etc. Blender ofereix metaballs amb forma d'esferes (generats a partir de punts), tubs (segments de recta), plans (quadrats), el.lipsoides i cubs.

També podem fer que els generadors tinguin "càrregues negatives", és a dir, restin enlloc de sumar. En aquest cas, la metaball només "treu" material de la superfície, no en genera ("fa forats").

Les metaballs en Blender es visualitzen poligonalitzant la superfície (probablement utilitzant marching cubes o un mètode similar; proveu de moure una metaball visualitzada en filferros).


 

Significat dels paràmetres que ofereix Blender per a les metaballs

Stiffness radi de la metaball (valor de la càrrega, massa). Individuals per a cada generador

(només en EditMode)
Ball/Tube/PlaneElipsoid/Cube forma de la metaball, és a dir, tipus de generador.
dx, dy, dz, etc.
(depenent del tipus seran uns o altres)
longituds que deteminen la mida de la forma generadora (llargada del segment, llargada de les arestes del cub, etc).
Negative
Indica si la càrrega és positiva o negativa
Wiresize precisió amb què es poligonalitza la superfície en visualitzar-la (nombre de triangles). Únics per a tota la isosuperfície
Rendersize ídem, per a la visualització realista.
Threshold
valor de la constant k ("nivell" de la isosuperfície).
Update Alway/Half res/Fast determina quan recalcular la isosuperficie.


Podem escalar/rotar/moure les metaballs?

Sí, però no és el mateix fer-ho en EditMode que en ObjectMode (fins aquí, com sempre: no és el mateix moure els vèrtex d'un objecte tipus malla que canviar la matriu de transformació associada a l'objecte). En ObjectMode transformem (escalem/rotem/movem) la malla resultant, en EditMode  estem canviant la posició/mida del generador, i per tant la malla resultant canviarà (es recalcula la poligonalització).  Ara bé, fixem-nos que en EditMode les rotacions no tenen efecte, i els escalats només en la direcció Y o Z tampoc... Raó: les metaballs en Blender són objectes procedurals mitjanament ben implementats (per exemple, els botons Set Smooth/Set Solid no hi serveixen, no es pot canviar el seu centre (punt de referència), etc.). Per tant, per rotar o escalar metaballs, millor fer-ho en ObjectMode; i millor que cada metaball sigui un objecte diferent.

Podem tenir més d'una isosuperfície?

Si, però no depèn, com semblaria, de si són diferents metaballs dins del mateix objecte (diverses metaballs es poden afegir en EditMode al mateix objecte), sinó de la família a la qual pertanyen. La família ve determinada pel prefix (el nom sense el número) del nom de l'objecte (per exemple, Mball, Mball.001 i Mball.238 són de la mateixa família). Ep!, estem parlant del nom de l'objecte, no pas el nom del datablock (el nom de l'objecte porta OB: davant, el del datablock porta MB:).
Un dels objectes de la família fa de base de la família, és a dir, determina els paràmetres globals de la isosuperfície (els de la part de sota de la taula anterior) i també les propietats assignades (material, bàsicament). L'obecte base és el que no té número, només prefix.
Quan seleccionen un objecte metaball clicant sobre la malla, es selecciona tota la família. Per seleccionar un sol objecte metaball, hem de clicar sobre el "cercle de referència" que es dibuixa de color vermell fosc o rosat (en EditMode), segons si està seleccionat o no.

Atencio! Canviar el prefix d'un objecte, intentant canviar-lo de família, és perillós, ja que si canviem el nom de l'objecte base de la família, els altres de la família queden "fantasmes" (no tenen l'objecte base i no se'n visualitza la malla). Per arreglar-ho, cal que a la nova família li posem un nou objecte base, triant-ne un qualsevol de la família i esborrant el número de darrera del seu nom (deixant només el prefix).

Podem colorejar diferentment parts d'una mateixa isosuperfície?

No. Tinguem en compte que les propietats venen determinades per les de l'objecte base. El que sí que podem fer és tenir diferents isosuperfícies de colors diferents, ja que cada família pot tenir un color diferent. Si diversos objectes de tipus metaball de la mateixa família tenen assignats materials diferents, només es fa cas del material de l'objecte base de la família.

Exercicis proposats

  1. Crear una forma determinada amb metaballs (per exemple, un aneguet de plàstic o una mar agitat)
  2. Inspeccionar com guarda Blender les metaballs (quines entitats hi ha a la "base de dades"), triant la vista OOPS Schematic i activant el botó per poder veure les entitats tipus metaball.
  3. Afegir textures, reflexions, transparències a les metaballs (podem aconseguir molt bons efectes).
  4. Transformar un objecte metaball a un objecte tipus malla.
  5. Fer el tutorial de metaballs "liquidmetal" (liquidmetalA4.pdf).
  6. Fer una petita animació amb metaballs que es moguin, creixin, etc. Per exemple, una pilota "rebotant" sobre una superfície líquida.


Alguns links