Campos
Fundamentalmente un campo es una función: un conjunto de instrucciones capaces de transformar una cantidad arbitraria de entradas en una única salida. El resultado de un campo podrá luego ser calculado muchas veces con diferentes datos de entrada. Son usados en los nodos de geometría para permitir cálculos que produzcan resultados distintos para cada elemento (por ej: los vértices, caras, etc. de una malla).
For example, in the figure above, the field connected to the «Set Position» node depends on two inputs, Position and Index, and transforms them into a vector using a single instruction.
Visualización de campos
La forma del conector será usada para indicar qué conectores corresponden a campos y cuáles a datos regulares. Existen tres formas posibles de conector, cada una de ellas ayudando a visualizar un «estado de campo» correspondiente:
- Círculo
El conector espera un valor real individual, no será capaz de aceptar una entrada de campo. Para los conectores de salida, esto significará que el nodo siempre producirá un valor individual.
- Rombo
El conector podrá aceptar como entrada un campo o producirá uno como salida. Un valor individual constante podrá ser conectado a estos conectores, pero en ese caso probablemente la salida no varíe por elemento.
- Rombo con punto
El conector podrá ser un campo, pero actualmente es un valor individual. Esto resulta útil dado que permitirá rastrear dónde se están calculando valores individuales, en vez de un campo con resultados distintos. También significará que durante una Inspección de conectores se mostrará el valor, en vez de los nombres de entrada del campo.
Truco
Often it is desired to extract a single value from a field. While it doesn’t make sense conceptually to simply change a field into a single value, the Transfer Attribute Node in Index mode or the Nodo Estadísticas de atributo can be used to retrieve a single value from a field evaluated on a geometry.
Cuando se realice una conexión entre conectores de dos nodos que soporten campos, la conexión será dibujada en forma de línea punteada. En caso de cometer el error de conectar un conector que no sea de campo con un conector de campo, la conexión será dibujada como una línea roja, para indicar la existencia de un error.
Tipos de nodo
Los nodos pueden ser separados en dos categorías: nodos de flujo de datos (que normalmente pasarán geometría hacia otros nodos) y nodos de campo (que operarán sobre cada uno de los elementos en esos datos). Los nodos de campo podrán ser nodos de entrada (que proporcionen datos al árbol de nodos) o nodos de función (que operen sobre esos datos).
Nodos de flujo de datos
Los nodos con una entrada de geometría y una salida de geometría casi siempre serán nodos de flujo de datos. Lo cual quiere decir que modificarán los datos de la geometría que será producida por el modificador Nodos de geometría.
Nodos de función
Nodes with diamond socket inputs and outputs are field nodes, and resemble the instructions that will be evaluated by data flow nodes. Examples of function nodes are the math nodes and also more complex nodes like the Nodo Proximidad a geometría.
Nodos de entrada
Input nodes provide data to the field evaluation process. By themselves, they mean nothing; they must be evaluated within the context of a data flow node (geometry) to actually output a value. Examples of input nodes are the built-in attribute input nodes like Position and ID, but also selection nodes like Endpoint Selection.
Las entradas de los campos también podrán provenir de otros nodos que procesen geometría como el Nodo Distribuir puntos en caras, en forma de Atributos anónimos.
Contexto de un campo
Todos los nodos de campo trabajarán en el contexto del nodo de flujo de datos al que se encuentren conectados. El contexto consistirá usualmente de un tipo de componente de una geometría (vértices, caras, etc.) y un dominio de atributo, de manera de determinar qué datos serán obtenidos desde los nodos de entrada.
Un malentendido común es pensar que el mismo árbol de nodos de campo usado en varios lugares distintos generará los mismos datos de salida. Esto no será necesariamente así, debido a que el árbol de nodos de campo será evaluado en forma independiente para cada nodo de flujo de datos, potencialmente obteniendo datos desde una geometría distinta o modificada.
Here, the Set Position node’s input field is evaluated once. To evaluate the field, the node traverses backwards to retrieve the inputs from the field input nodes.
Al agregar un segundo nodo Definir posición, el mismo árbol de nodos de campo será evaluado dos veces, una para cada nodo de flujo de datos. En el segundo nodo Definir posición, el resultado será distinto, dado que su entrada de geometría ya habrá cambiado de posición, con respecto a la entrada del primer nodo.
Sin embargo, en algunas ocasiones será necesario utilizar los mismos valores de campo, aún luego de que la geometría hubiera cambiado. El Nodo Capturar atributo evaluará un campo, copiando el resultado a un atributo anónimo en la geometría.
Aquí, un nodo Capturar atributo almacenará una copia de la posición inicial. Nótese que la evaluación de la entrada de campo del nodo Capturar atributo es un paso completamente diferente. Más adelante, las entradas de campo de los nodos Definir posición no usarán la posición real, sino la versión copiada en el atributo anónimo.