Attribut

En attribut är en generisk term för att beskriva data som lagras per element i ett geometridatablock. Till exempel kan varje vertex ha ett associerat tal eller en vektor. Attribut kan ändras genom att ansluta ett värde till noden Group Output, men även många noder kan ändra värdena för specifika attribut.

Observera

Attributdatatyper och domäner konverteras implicit där så är möjligt, precis som nodsocklar.

Namngivna attribut

Namngivna attribut skapas och används i andra delar av Blender som shaders, målning och UV-mappning. I modifieringspanelen kan ett namngivet attribut användas som indata genom att klicka på ikonen till höger om värdeknappen. Med stränginmatningen kan du söka efter och välja befintliga attribut från modifierarens indatageometri.

../../_images/modeling_geometry-nodes_attribute-reference_search.png

Attributsökning.

Attributsökningen ger lite sammanhang om varje attribut. Till vänster i menyn visas attributets domän följt av attributets namn. Till höger i menyn visas attributets datatyp.

Anonyma attribut

../../_images/modeling_geometry-nodes_attribute-reference_attribute-field.png

Utgångarna Normal och Rotation är exempel på attributfält, som hänvisar till ett attribut som lagras på en geometri.

Ett anonymt attribut är en uppsättning generiska data som lagras på en geometri och som inte har något namn. Vanligtvis har alla attribut som exponeras i Blenders gränssnitt namn. I geometriska noder kan dock attribut skickas runt med noduttag. I dessa fall skapas en Attribute Field-utgång, som används av noder för att hitta attributdata i en inmatningsgeometri.

Anonyma attribut lagras fortfarande på geometrin som andra attribut, och de interpoleras till och med automatiskt när geometrin ändras med andra noder, utom i några få fall. Så om nodlänken fortfarande är tillgänglig kommer attributet som den refererar till också att vara tillgängligt. Anonyma attribut kan dock inte kopplas till en helt separat geometri som skapats från en annan källa. För att överföra attribut mellan separata geometrier kan Exempel på indexnod eller andra liknande noder som Prov närmaste ytnod användas.

Datatyper för attribut

Typen av ett attribut är den typ av data som lagras i varje element.

Flytande:

Enstaka värde i flyttal, används ofta för vikter eller intensitetsvärden.

Boolean:

Värde för sant eller falskt för binära villkor.

Heltal:

32-bitars heltal, används för index eller diskreta värden.

Vektor:

3D-vektor med värden i flyttal, som ofta representerar riktningar eller positioner.

Färg:

RGBA-färg med 32-bitars flyttalsvärden.

Byte Färg:

RGBA-färg med 8-bitars positiva heltalsvärden, användbar för kompakt färglagring.

Sträng:

Textsträng för lagring av namn eller etiketter.

2D vektor:

2D-vektor med värden i flyttal, används ofta för UV-koordinater.

8-bitars heltal:

Litet heltal med ett intervall från -128 till 127.

2D 16-bitars heltalsvektor:

Sekvenserad 16-bitars 2D-vektor för kompakt lagring av heltalspar.

2D heltalsvektor:

Sekvenserad 32-bitars 2D-vektor.

Kvaternion:

Flyttal Quaternion-rotation som används vid 3D-transformationer.

4x4 Matrix:

Matris med flyttal som används för transformationer eller lagring av rumsliga relationer.

Listan ovan är i ordning från minst till mest ”komplex” (ett heltal kan innehålla mer data än en boolean, så det är mer komplicerat). Vid sammanfogning av separata geometrier föredras den mer komplexa datatypen när det finns matchande namn. Detta är särskilt viktigt när man sammanfogar geometrier med namngivna attribut med Join Geometry Node.

För att lagra 2D-vektorer (UV-kartor) och bytefärger måste Lagra namngiven attributnod användas eftersom det inte finns några uttag för dessa typer.

Konvertering av data

Genom att använda Geometry Nodes kan data konverteras mellan olika typer.

Giltiga konverteringar:

  • Mellan färg och vektor – mappning mellan färgkanaler och vektorkomponenter.

  • Mellan färg och float – färgdata konverteras till motsvarande gråskala.

  • Mellan float och heltal – heltal blir helt enkelt float, float trunkeras.

  • Mellan float och vektor – när en float blir en vektor används värdet för varje komponent. När en vektor blir en float tas medelvärdet av komponenterna.

  • Mellan float och boolean – värden större än 0 är true, true motsvarar 1 och false motsvarar 0.

Attribut Domäner

Ett attributs domän avser vilken typ av geometrielement som attributet motsvarar. Det är viktigt att känna till ett attributs domän eftersom det definierar hur det kan interpoleras och användas i noder och skuggning. Du kan använda Spreadsheet Redigerare för att bestämma attributens domäner.

  • Point domänattribut är associerade med enskilda platser i rummet med en position:
    • Hörnpunkter i ett nät

    • Punkter i ett punktmoln

    • Kontrollpunkter för kurvor

  • Edge Domänattributen är kopplade till kanterna i ett nät.

  • Face domänattribut är associerade med ytorna i ett nät.

  • Face Corner domänattribut är associerade med hörnen på ytorna i mesh. Ett exempel är ett UV-kartattribut.

  • Spline domänattribut är associerade med en grupp av anslutna kurva kontrollpunkter.

  • Instance domänattribut finns på Instanser i en geometri. De kan användas för att lagra olika värden på kopior av geometridata. Instance-domänattribut stöds endast i geometriska noder.

  • Lager domänattribut är associerade med en Grease Pencil Layer.

Attribut interpoleras automatiskt till andra domäner. Till exempel, när Position Node är ansluten till valingången i Ställ in materialnod-noden interpoleras värdena från domänen Point till domänen Face. Normalt används enkla medelvärden för värden vid domänkonverteringar, men attribut av datatypen Boolean har särskilda regler för interpolering:

Interpolering av boolesk domän

Från

Till

Konvertering

Punkt

Linje

En kant är markerad om båda dess hörn är markerade.

Punkt

Ansikte

En yta är markerad om alla dess hörn också är markerade.

Punkt

Hörn

Varje hörns värde är helt enkelt en kopia av värdet i dess toppunkt.

Punkt

Spline

En spline är markerad om alla dess kontrollpunkter har markerats.

Linje

Punkt

En vertex är markerad om någon ansluten kant har markerats.

Linje

Ansikte

En yta är markerad om alla dess kanter är markerade.

Linje

Hörn

Ett hörn väljs om dess två intilliggande kanter har valts.

Ansikte

Punkt

En vertex är markerad om någon av de anslutna ytorna har markerats.

Ansikte

Linje

En kant väljs om någon ansluten yta har valts.

Ansikte

Hörn

Varje hörns värde är helt enkelt en kopia av värdet på dess framsida.

Hörn

Punkt

En vertex är vald om alla anslutna ansiktshörn var valda och det inte är en lös vertex.

Hörn

Linje

En kant är markerad om alla hörn på angränsande ytor har markerats.

Hörn

Ansikte

En yta är markerad om alla dess hörn är markerade.

Spline

Punkt

Varje punkts värde är helt enkelt en kopia av motsvarande värde i spline.

Inbyggda attribut

Inbyggda attribut finns alltid och kan inte tas bort. Deras datatyp och domän kan inte ändras.

Namn

Typ

Domän

Anteckningar

position

Vektor

Punkt

Inbyggt attribut som beskriver vertex- eller punktpositioner i det lokala utrymmet för en geometri. Alla noder som ändrar punkternas placering kommer att justera detta attribut, som Transform Geometry Node och Ställ in position Node.

radie

Float (flytande)

Punkt

Ett inbyggt attribut på punktmoln som används för att ställa in storleken på punkterna i visningsfönstret. Även inbyggt i kurvor, där det styr storleken på varje kurvkontrollpunkt när den konverteras till ett mesh eller för andra operationer.

id

HELTALSUPPSKALNING

Punkt

Skapas av Fördela punkter på ansikten för att ge stabilitet när formen på det ingående nätet ändras, och används på instanser för att skapa rörelseoskärpa. Värdena förväntas vara stora, utan inbördes ordning. Detta attribut används av noder som genererar slumpmässiga värden, t.ex. Nod med slumpmässigt värde. Till skillnad från andra inbyggda attribut är detta attribut inte obligatoriskt och kan tas bort.

material_index

HELTALSUPPSKALNING

Handlingsknappar

Används för att ange materialspår för varje yta i ett nät.

sharp_edge

Booleansk

Kantarbete

Attribut som avgör om en kant ska ha platt (snarare än jämn) skuggning aktiverad i visningsfönstret eller i en rendering.

sharp_face

Booleansk

Handlingsknappar

Attribut som avgör om ett ansikte ska ha platt (snarare än jämn) skuggning aktiverad i visningsfönstret eller i en rendering.

resolution

HELTALSUPPSKALNING

Spline (splines)

Bestämmer antalet utvärderade punkter mellan två kontrollpunkter i en spline. Endast NURBS- och Bézier-splines har detta attribut, för poly-splines är värdet alltid ett.

cyclic

Booleansk

Spline (splines)

Avgör om splinen har ett segment som förbinder dess första och sista kontrollpunkter.

handtag_vänster

Vektor

Punkt

Beskriver placeringen av det vänstra handtaget på en kurvkontrollpunkt, på sidan av kurvans start. Finns bara när kurvan innehåller en Bézier-spline.

handtag_höger

Vektor

Punkt

Beskriver placeringen av det högra handtaget på en kurvkontrollpunkt, på sidan av kurvans slut. Finns bara när kurvan innehåller en Bézier-spline.

Namngivningskonventioner

Dessa attribut finns inte som standard, men används implicit av vissa delar av Blender. Datatypen för dessa attribut kan ändras, precis som alla andra attribut förutom de inbyggda attributen. Det kan dock vara så att Blender förväntar sig att attributen har en viss typ.

Namn

Typ

Domän

Anteckningar

velocity

Vektor

Punkt

Används för att skapa rörelseoskärpa vid rendering av animationer.

rest_position

Vektor

Punkt

Håller positionen för punkter eller vertices från innan en geometri deformeras procedurellt. Kan skapas automatiskt innan Shape Keys och Modifiers utvärderas med alternativet Add Rest Position.

surface_uv_coordinate

2D-vektor

Kurva

Används för att beskriva kurvans fästpunkter på en maskyta, används vanligtvis för hårsystemet.

crease_vert

Float (flytande)

Punkt

Vertex-attribut som används av modifieraren Subdivision Surface. Värdena förväntas ligga inom intervallet 0 och 1.

crease_edge

Float (flytande)

Kantarbete

Kantattribut som används av modifieraren Subdivision Surface. Värdena förväntas ligga inom intervallet 0 och 1.

uv_seam

Booleansk

Kantarbete

True om en kant betraktas som en gräns mellan UV-öar vid uppackning.

bevel_weight_vert

Float (flytande)

Punkt

Används som vertexkontroll för avfasningsmodifieraren.

bevel_weight_edge

Float (flytande)

Kantarbete

Används som kantkontroll för fasmodifieraren.

sculpt_face_set

HELTALSUPPSKALNING

Handlingsknappar

Används av Sculpt Face Sets Feature.

sculpt_mask

Float (flytande)

Punkt

Används av Sculpt Masking Feature.

custom_normal

2D 16-bitars heltalsarray

Face Corner

Används av Anpassade delade normaler för mesh-objekt.

Anpassade attribut

Vertexgrupper, UV-kartor och färgattribut är tillgängliga som attribut i geometrinoder. De refereras till genom sitt namn. Namnkollisioner (t.ex. en vertexgrupp och en UV-mappning med samma namn) bör undvikas. Om det finns en namnkollision är endast ett av attributen tillgängligt i geometrinoderna.

Attribut med andra namn kan också skapas av noder, när namnet används för första gången.

Observera att geometrinoder inte alltid producerar t.ex. vertexgrupper om en nod som Join Geometry används. På samma sätt gäller att om datatypen för ett vertexgruppsattribut ändras från den ursprungliga typen ”Float”, kommer attributet inte längre att vara en vertexgrupp.

Operatör för attributkonvertering

../../_images/modeling_geometry-nodes_attribute-reference_convert.png

Med den här operatorn, som finns i panelen Attributes i egenskapsredigeraren, kan du ändra domänen eller datatypen för ett attribut.

På grund av den pågående utvecklingen inom attributområdet kan många delar av Blender ännu inte arbeta med de generiska (identifierade med ett namn, lagrade på valfri domän med valfri datatyp) attribut som används av geometrinoder. Det gör denna operatör till en viktig lösning i vissa fall där befintliga verktyg måste användas med data som genereras från geometriska noder.

Läge
Allmänt:

Interpolera och konvertera attributet mellan de domäner och datatyper som beskrivs på denna sida.

Vertex Group:

Skapa en Vertex Group från attributet, som motsvarar ett float-attribut på punktdomänen.

Observera

Denna operator fungerar endast på original objektdata, exklusive resultatet av modifieringar, så eventuella attribut som läggs till eller ändras av geometriska noder påverkas inte. För att ändra typen av ett attribut som genererats procedurmässigt måste modifierare användas.