Campos¶
Fundamentalmente, um field é uma função: um conjunto de instruções que pode transformar um número arbitrário de entradas em uma única saída. O resultado de um field pode ser calculado várias vezes com diferentes dados de entrada. Eles são usados em todo geometry nodes para permitir cálculos que tem diferentes resultados para cada elemento (vértice da malha, faces, etc.).
Por exemplo, na figura acima, o field conectado ao nó «Set Position» depende de duas entradas,`Position </modeling/geometry_nodes/geometry/read/position>`e Index, e os transforma em um vetor usando uma única instrução.
Visualização de Field¶
O formato de soquetes são usados para comunicar quais soquetes são fields e quais são dados regulares. Existem três formas de soquete possíveis, cada uma visualizando seu «field status».
- Círculo:
O soquete requer um única valor real, não pode aceitar uma entrada de campo. Para soquetes de saída, isso significa que o nó sempre gera um único valor.
- Diamond:
O soquete pode aceitar uma entrada de campo, ou gera um campo. Um valor único constante pode ser conectado a esses soquetes, mas a saída geralmente não varia por elemento.
- Diamante com Ponto:
O soquete pode ser um campo, mas atualmente é um valor único. Isso é útil porque permite rastrear onde valores únicos são calculados, em vez de um campo com muitos resultados diferentes. Isso também significa que a Inspeção de Soquetes irá mostrar o valor em vez dos nomes de entrada de campo.
Dica
Frequentemente deseja-se extrair um único valor de um campo. Embora conceitualmente não faça sentido simplesmente transformar um campo em um único valor, o Sample Index Node ou o Attribute Statistic Node podem ser usados para obter um único valor de um campo calculado em uma geometria.
Quando uma conexão é feita entre dois soquetes de nós que suportam campos a conexão do nó será desenhada como uma linha tracejada. Se você cometer o erro de conectar um soquete não de campo a um soquete de campo, a conexão será desenhada como uma linha vermelha sólida indicando que há um erro.
Tipos de nós¶
Nós podem ser separados em duas categorias: nós de fluxo de dados que usualmente passam geometria, e nós de campo que operam em dados por elemento. Nós de campo podem ser nós de entrada que trazem dados de geometria na árvore de nós, ou nós de função que operam nesses dados.
Nós de Fluxo de Dados¶
Nós com uma entrada geometria e uma saída geometria irão quase sempre ser nós de fluxo de dados. O que significa que eles realmente alteram os dados de geometria que serão gerados pelo modificador Geometry Nodes.
Nós Função¶
Nós com soquetes de entrada e saída diamante são nós de campo, e se assemelham às instruções que serão calculadas pelos nós de fluxo de dados. Exemplos de nós função são os nós math e também nós mais complexos como o Geometry Proximity Node.
Input Nodes¶
Nós de entrada fornecem dados ao processo de cálculo do campo. Por si só, eles não significam nada; eles devem ser calculados dentro do contexto de um nó de fluxo de dados (geometria) para realmente produzir um valor. Exemplos de nós de entrada são os nós de entrada de atributos integrados como Position, mas também nós de seleção como Endpoint Selection.
Entradas de campo também podem vir de outros nós que processam geometria como o Distribute Points on Faces, na forma de Anonymous Attributes.
Contexto de Campo¶
Todos os nós de campo trabalham no contexto do nó de fluxo de dados que eles estão conectados. O contexto geralmente consiste em um tipo de componente de geometria em um domínio de atributo, portanto determina quais dados são recuperados dos nós de entrada.
Um mal-entendido comum é que a mesma árvore de nó de campo usada em vários locais produzirá os mesmos dados. Isso não é necessariamente verdade, porque a árvore de nó do campo será calculada para cada nó de fluxo de dados, potencialmente obtendo dados de uma geometria diferente ou alterada.
Aqui, o nó de entrada de campo Set Position é calculado uma vez. Para calcular o campo, o nó percorre para trás para recuperar as entradas dos nós de entrada de campo.
Quando um segundo nó Set Position é adicionado, a mesma árvore de nós é calculada duas vezes, uma para cada nó de fluxo de dados. No segundo nó Set Position, os resultados serão diferentes já que a geometria de entrada já terá a posição alterada pelo primeiro nó.
No entanto, muitas vezes é necessário usar os mesmos valores de campo mesmo depois de alterar a geometria. O Capture Attribute Node calcula um campo, copiando o resultado a um anonymous attribute na geometria.
Aqui, um nó Capture Attribute armazena uma cópia da posição inicial. Note que calcular a entrada de campo do nó Capture Attribute é uma etapa totalmente diferente. Posteriormente, os campos de entrada para os nós Set Position não usam a posição atual, mas a cópia de atributo anônimo dele.