Los modelos 3D utilizados en este tutorial:

  

¡Hola, todos!

Este es el segundo de dos videotutoriales introductorios sobre el modificador Geometry Nodes en Blender 2.92.

En el tutorial anterior examinamos los nodos del grupo Geometría (es decir, Transform y Join, para modificar y fusionar las geometrías dentro del modificador); la capacidad de crear sockets de entrada para Group Input con el fin de especificar parámetros en la pestaña del modificador, y el uso de algunos nodos de Vector y Utilities (Math, en particular) para realizar operaciones matemáticas y combinar información.

En este video veremos un uso diferente de los Geometry Nodes, ya que los usaremos como sistemas de partículas para la "dispersión", es decir, la distribución de instancias de objetos en la superficie de otros; sin embargo, todos los temas tratados en el primer videotutorial de esta miniserie serán útiles aquí.

B3D Geometry Nodes 2 of 2 01

El modificador Geometry Nodes nos permite transformar la geometría del objeto que lo utiliza en un generador de puntos, que se distribuirá en su superficie (es decir: en sus caras).

Estos puntos se pueden utilizar para organizar, en su correspondencia, instancias de otros objetos; Además, los Geometry Nodes también nos permiten asignar transformaciones (posición, rotación y cambio de tamaño) a cada uno de estos puntos, para introducir aleatoriedad.

Al enumerar estas operaciones, dije tres cosas en particular:

  1. transformar la geometría en un conjunto de puntos DISTRIBUIDOS en la superficie;
  2. INSTALACIÓN de los objetos en esos puntos;
  3. modificar las características (es decir, los ATRIBUTOS) de los puntos generados y así influir en las instancias creadas.

Estas tres operaciones se traducen en tantos nodos, que vemos de inmediato.

En la escena visible en la pantalla hay un Plano por defecto muy simple (por lo tanto formado por solo 4 vértices y una cara); además, usando APPEND importé los modelos 3D de algunos guijarros (los “Pebbles”), de una piedra (“Stone 1”) y de un objeto que contenía briznas de hierba.

Para mayor comodidad, estoy agrupando los guijarros en una colección y oculto todos estos elementos accesorios, desactivándolos en un editor de Outliner.

B3D Geometry Nodes 2 of 2 02

Puede encontrar el enlace a estos activos en la descripción del video; sin embargo, como en el caso del reloj del video anterior, ¡NO es necesario que estas modelos sigan el video y aprendan!

Selecciono el plano y agrego un modificador de Geometry Nodes al objeto.

B3D Geometry Nodes 2 of 2 03

Para realizar la primera operación, que es transformar el plano en un conjunto de puntos DISTRIBUIDOS en su superficie, agrego un nodo Point DISTRIBUTE en el medio del grupo.

B3D Geometry Nodes 2 of 2 04

En pantalla podemos ver que el Plano ha desaparecido, sustituido por un conjunto de puntos ... bueno, en realidad esa información de partida no se ha perdido, de hecho sigue ahí: la forma no destructiva de modelado de Geometry Nodes nos permite para agregar un nodo Geometry Join entre Point Distribute y Group Output y para conectar, a una de las dos entradas de Join, la geometría que llega de la Geometry Input (es decir, el plano original).

B3D Geometry Nodes 2 of 2 05

De esta forma tenemos tanto el Plano original (que podemos modificar y texturizar, por ejemplo para darle apariencia de terreno), como los puntos distribuidos en su superficie.

El nodo Point Distribute aporta algunos parámetros, entre los que destaca Density, que nos permite incrementar o disminuir de forma intuitiva la cantidad de puntos a distribuir en la superficie.

B3D Geometry Nodes 2 of 2 06

En el videotutorial anterior vimos cómo conectar la información de un nodo a Group Input, para poder modificar los valores en la interfaz del modificador; puede tener sentido hacer esto para el parámetro Point Distribute Density.

Luego pasamos a la segunda operación de las tres enumeradas anteriormente, que es INSTANAR otro objeto (o una Colección de objetos), colocando una copia para cada punto creado por Point Distribute: luego insertamos un nodo Point INSTANCE entre Point Distribute y Join.

B3D Geometry Nodes 2 of 2 07

El significado de la operación es claro: Distribute genera los puntos e Instance toma la información de estos puntos para crear copias de otro objeto ... sí, pero ¿qué objeto?

En el nodo Point Instance hay un selector que nos permite definir si queremos instanciar un solo objeto o una Colección de objetos; El modo elegido (Object, en mi caso), podemos hacer clic en la casilla vacía ubicada dentro del nodo y elegir el objeto que nos interese (“Stone 1”, en mi caso).

B3D Geometry Nodes 2 of 2 08

NOTA IMPORTANTE: para un resultado correcto, asegúrese de haber aplicado las transformaciones de Rotation y Scale de los objetos que desea instanciar; puede hacer esto seleccionándolos y presionando CTRL A, luego eligiendo “Rotation and Scale” en el menú Apply que aparecerá en la pantalla.

Luego ajustamos el parámetro Density de Point Distribute, como deseamos, hasta que alcancemos un resultado que nos convenga.

B3D Geometry Nodes 2 of 2 09

La tercera operación fundamental a realizar es modificar los parámetros de los distintos puntos (y, por tanto, de las instancias generadas); en realidad, es posible realizar diferentes tipos de operaciones, por lo que no estamos hablando de un solo nodo sino de los nodos de los grupos de Point y Attribute.

En ambos casos, los nodos de transformación se insertarán entre Point Distribute y Point Instance, ya que deberán modificar los PUNTOS creados, ANTES de generar las instancias a partir de esos puntos.

Por ejemplo, comencemos con la rotación, que se aplicará a todos los puntos: luego agregamos un nodo Point Rotate entre Point Distribute y Point Instance y modificamos los ángulos de rotación de las partículas.

B3D Geometry Nodes 2 of 2 10

El resultado ya es mejor que el obtenido sin este nodo, pero ¿cómo introducir aleatoriedad en la rotación y, por qué no, también en el tamaño de estas instancias?

Nos ayuda el nodo Attribute Randomize (de "Random": "aleatorio", por supuesto), que podemos conectar en cascada entre Point Rotate y Point Instance (de hecho, este flujo de procesamiento siempre tiene lugar en las geometrías, como es posible verificar observando el zócalos de Geometry enlazados entre los distintos nodos).

B3D Geometry Nodes 2 of 2 11

Attribute Randomize es un nodo que nos permite introducir aleatoriedad en un ATRIBUTO de los puntos, a especificar con precisión en el campo "Attribute" del nodo.

Entre los atributos fundamentales de una partícula tenemos, no hace falta decirlo, "Rotation" y "Scale", así que comencemos escribiendo "rotation" en este campo y modifiquemos el valor Max ...

B3D Geometry Nodes 2 of 2 12

El nodo en realidad introduce aleatoriedad en la orientación de las partículas, pero estas giran alrededor de todos sus ejes, lo que no es exactamente un resultado interesante: nos gustaría mantener la orientación base dada por Point Rotate y rotar las instancias aleatoriamente solo alrededor del eje vertical. .

Para resolver este problema, necesitamos cambiar el tipo de valor de operación de Float (que es un valor numérico con una coma actuando uniformemente en los tres ejes XYZ) a Vector, donde podemos poner 0 para todos los valores excepto para el MAX del eje que nos interesa modificar ...

B3D Geometry Nodes 2 of 2 13

Pero incluso esta operación trae consigo un problema: ¡hemos perdido la rotación dada por Point Rotate!

B3D Geometry Nodes 2 of 2 14

Es un problema de prioridad, en cierto sentido: entre Point Distribute y Point Instance, de hecho, primero debemos poner Attribute Randomize y luego Point Rotate.

B3D Geometry Nodes 2 of 2 15

Ahora duplique Attribute Randomize y agréguelo entre el original y Point Rotate para modificar también el parámetro Scale (que se escribirá, al igual que la rotación, completamente en minúsculas, de lo contrario Blender no lo reconocerá).

B3D Geometry Nodes 2 of 2 16

En este caso, sin embargo, tendremos que modificar todos los parámetros min y max XYZ, para obtener resultados interesantes (y quizás evitar poner 0 para los valores mínimos, de lo contrario los objetos perderán una o más dimensiones).

Con respecto al atributo Scale, puede que le resulte más conveniente volver al tipo Float, de modo que use solo un parámetro para el factor de escala mínimo y solo uno para el máximo ... la elección es suya.

Sin embargo, con solo estos dos nodos de Attribute, estamos obteniendo una cierta diversidad de un objeto que estaba formado por una sola geometría: Stone 1.

Si cambiamos el tipo de objeto para instanciar en Point Instance de Object a Collection y especificamos la colección de guijarros, ¡las cosas se vuelven mucho más interesantes!

B3D Geometry Nodes 2 of 2 17

Sin embargo, establezcamos Object de nuevo con Stone 1 en Point Instance, para examinar otra funcionalidad disponible con Geometry Nodes.

En los sistemas de partículas clásicos también podemos definir en qué partes de la geometría crear las partículas y en cuáles no; se hace, en particular, con Weight Painting, definiendo valores de densidad (de 0 a 1) en las distintas partes de una superficie ... bueno, ¡aquí también podemos hacerlo!

Antes de continuar, sin embargo, debemos aumentar el número de subdivisiones del Plano, porque la Weight Painting (para ser operada fuera del Geometry Node, sobre la geometría original) actúa sobre los vértices, por lo que los 4 vértices básicos del Plano no son suficientes. .

En una vista 3D, entonces, pasamos al modo Edit y subdividimos toda la superficie un buen número de veces; luego cambiemos al modo Weight Paint.

B3D Geometry Nodes 2 of 2 18

B3D Geometry Nodes 2 of 2 19

Por defecto, la superficie debería aparecer azul, es decir, "weight 0"; el nodo Point Distribute creará los puntos en las áreas con peso 1, por lo que tenemos que pintar en las áreas en las que queremos que aparezcan las instancias.

B3D Geometry Nodes 2 of 2 20

NOTA: si desea aplicar las instancias en todas partes excepto en lugares particulares, debe proceder a la inversa; en este caso, en particular, usamos el pincel en las áreas que queremos EXCLUIR de Point Distribute (y Blender creará automáticamente un Vertex Group, que debería tener "Group" como nombre predeterminado, pero también podemos renombrarlo a algo más significativo, como "Pebbles").

B3D Geometry Nodes 2 of 2 21

Al finalizar la operación, abrimos el menú Weight en la ventana 3D y pulsamos en “Invert”, para invertir los pesos: ahora, el área que pintamos tendrá peso 0, mientras que en el resto de la geometría tendremos peso 1 .

B3D Geometry Nodes 2 of 2 22

Obviamente, nada nos impide modificar los pesos en un momento posterior, variando el valor del parámetro Weight en la pestaña Tools en el modo Weight Painting y cepillando la superficie; solo tenemos que recordar que NO insertaremos instancias en áreas ponderadas con 0.

En el editor de Geometry Nodes, escribimos el nombre del Vertex Group en el campo Density del nodo Point Distribute ("Pebbles", en nuestro caso; preste atención a mayúsculas y minúsculas): la distribución de los puntos en la superficie original será proporcional a los Vertex Weights establecidos por nosotros.

B3D Geometry Nodes 2 of 2 23

Antes de concluir este videotutorial y, por lo tanto, la miniserie INTRODUCCIÓN a los nodos de geometría en Blender 2.92, veamos un ejemplo más de instanciación de objetos ... pero con un cambio más.

Dentro del esquema que hemos definido, insertamos un nuevo nodo de Point Density, conectándolo al zócalo de Geometría de Group Input, luego lo conectamos a una nueva Point Instance (vacía) y conectamos las dos Point Instances disponibles en la escena a una nueva Join Geometry nodo, que a su vez estará vinculado al nodo Join ya disponible en la escena; en la práctica, la geometría resultante vendrá dada por la original unida a la que llega por dos nodos Instance.

B3D Geometry Nodes 2 of 2 24

En el nuevo nodo Distribute establecemos el mismo atributo Density de “Stone 1”, pero en Point Instance configuramos el objeto High Grass como el que se instanciará.

B3D Geometry Nodes 2 of 2 25

Si es necesario, podemos insertar un nodo Point Rotate para orientar correctamente las briznas de hierba.

Insertemos también un nodo Point Scale (entre Point Rotate y Point Instance), configurando en particular el modo Vector, para que podamos especificar el factor de escala del tamaño de la hierba con un vector.

B3D Geometry Nodes 2 of 2 26

Insertemos un nodo Combine XYZ y conectemos su salida Vector a la entrada Factor (vector) de Point Scale; las briznas de hierba desaparecerán, porque los parámetros de Combine XYZ tendrán un valor predeterminado de 0.0, por lo que devolvemos XY a 1.0 (o, en cualquier caso, a un valor adecuado para estas dimensiones).

B3D Geometry Nodes 2 of 2 27

Luego conectamos la entrada Z de Combine XYZ a un nuevo puerto de Geometry Input; como habrás adivinado, la intención es ajustar la altura de las briznas de hierba en la interfaz del modificador ... pero ¿por qué limitarnos a un valor constante o tener que cambiar manualmente este valor?

B3D Geometry Nodes 2 of 2 28

Agreguemos un editor Timeline a la ventana de Blender y establezcamos un rango de fotogramas para una animación, por ejemplo, 240 fotogramas.

B3D Geometry Nodes 2 of 2 29

Vayamos al cuadro 1, luego establezcamos 0.0 para el parámetro Z (que podemos renombrar a voluntad, como se vio en el episodio anterior con los nombres de las manecillas del reloj); luego haga clic derecho en el valor de este parámetro y elija "Insert Keyframe" para grabar un fotograma clave de animación, de hecho.

B3D Geometry Nodes 2 of 2 30

Pasemos al fotograma 240 de la animación, cambiemos el valor de Z como desee e insertemos un fotograma clave para este parámetro en el último fotograma de nuestra animación también.

B3D Geometry Nodes 2 of 2 31

Solo tenemos que presionar Play en la Timeline y ver el resultado de nuestra animación.

B3D Geometry Nodes 2 of 2 32

B3D Geometry Nodes 2 of 2 33

¡Eso es todo por este tutorial también!

¡Nos vemos pronto!

B3D Geometry Nodes 2 of 2 34