Inleiding voor SeExpr¶
Nieuw in versie 4.4: Dit document zal bij u de uitdrukkingentaal SeExpr introduceren.
Wat is SeExpr?¶
SeExpr is een ingebedde uitdrukkings-taal, ontworpen door Disney Animation, waarmee het hoofdprogramma dynamisch gegenereerde content kan creëren. Pixar noemt het in zijn documentatie een “scriptable pattern generator and combiner”.
SeExpr is beschikbaar binnen Krita als een vullaag.
Achtergrond¶
Om te begrijpen wat SeExpr is, moeten we onderscheidt maken tussen twee soorten graphics, raster en procedurele.
De overgrote meerderheid van het door de computer gegenereerde spul dat u elke dag ziet behoort in tot het eerste type– afbeeldingen zoals foto’s, uw favoriete anime screenshots, memes, zijn allemaal een verzameling van kleine kleurenpuntjes, of pixels, in een raster geordend.
Raster graphics hebben twee nadelen. Ten eerste, nadat u ze heeft gecreëerd, ligt hun resolutie vast. U kunt niet inzoomen waarbij u op magische wijze meer details krijgt. En als u deze moet wijzigen, dan gaat u terug naar de bron en bemonstert het opnieuw (wat soms onmogelijk is), of u bewerkt het met een raster graphics programma, zoals Krita.
Een van de grootste problemen is, echter, dat we altijd worden beperkt door de ruimte dat onze programma’s kunnen gebruiken; dan wel secondaire opslag, zoals SD kaarten, dan wel RAM. Tenzij het gecomprimeerd is, is het nodigde geheugen voor een afbeelding het kwadraat van de afmetingen van de afbeelding. Als eenvoudig voorbeeld, het Nieuw document aanmaken dialoogvenster van Krita geeft u drie verschillende soorten informatie: zijn afmetingen in pixels, de grootte van de pixel zelf, en de totale hoeveelheid geheugen nodig.
Hier is een overzicht voor vierkante texturen. Merk op dat de benodigde geheugen voor alleen een laag is:
Grootte |
Benodigd geheugen |
---|---|
256 |
256 kB |
512 |
1 MB |
1024 |
4 MB |
2048 |
16 MB |
4096 |
64 MB |
Een alternatief is het gebruik van Vector afbeeldingen. Vector graphics, bijvoorbeeld SVGs, gebruiken wiskundige formules zoals splines en Bézier kromme om een vorm te beschrijven. Omdat ze wiskundig gedefinieerd zijn, kunnen ze naar wens wiskundig verschaalt worden zonder dat ze resolutie verliezen.
SeExpr hoort tot een andere klasse, procedurele graphics. Vergelijkbaar met vector graphics, procedurele graphics hebben alleen een paar KBs secondaire opslag nodig voor hun definitie . Maar ze worden niet gedefinieerd door wiskundige formules; u programmeert hoe de kleur van elke punt van de textuur wordt berekent. En, omdat het niet wordt beperkt in zijn nauwkeurigheid, kunt u op uw lagen complexe patronen renderen met een willekeurige resolutie.
Een script schrijven¶
In deze instructie, laten we u zien hoe u een script in SeExpr schrijft, hoe u het naar een laag rendert, en tenslotte hoe u het opslaat als voorinstelling.
We beginnen met door naar de Lagen te gaan, en daar een nieuwe vullaag toe te voegen. Vervolgens selecteren we in de lijst de SeExpr generator. U krijgt het volgende venster te zien:
Het SeExpr generator dialoogvenster is verdeelt in twee tabs. We blijven nu in Opties.
Notitie
Vullagen beschrijft deze tabs meer gedetailleerd.
Laten we beginnen met een laag een lichtblauwe kleur te geven.
Eerst moet SeExpr scripts een uitvoervariabele definiëren, laten we die $color
noemen. Omdat SeExpr aan kleuren denkt in de RGB kleurruimte, zijn kleurenvariabelen gedefinieerd met een drietal getallen bekend als een vector. We beginnen met het definiëren van de variabele $color
en geven die een waarde.
Ga naar het tekstvak, en maak het leeg als er nog tekst aanwezig is. definieer vervolgens $color
en wijs eraan toe zoiets als [0.5, 0.5, 1]
(half rood, half groen, compleet blauw):
$color = [0.5, 0.5, 1];
SeExpr moeten weten welke variabele de uiteindelijke kleurwaarde heeft. Dit wordt gedaan door het vermelden aan het eind, op zijn eigen regel, de naam van deze variabele:
$color
Het script zou er nu als volgt uit moeten zien:
$color = [0.5, 0.5, 1];
$color
Klik op OK, en u voert uw eerste script uit!
Waarschuwing
Om precies te zijn, SeExpr heeft geen kleurbeheer. het bewaart altijd texturen als 32-bit float, gamma gecorrigeerde, sRGB afbeeldingen. Krita converteert ze naar de kleurruimte van uw documenten met de hulp van het sRGB-elle-V2-srgbtrc.icc profiel.
Lees Werkmethode kleurbeheer voor wat dit inhoud.
Uw scripts beheren met widgets¶
Er is nog een andere manier om uw variabele te definiëren en te bewerken. Open de eigenschappen van de vullaag door rechts te klikken op Vul laag 1, en selecteer Laageigenschappen….
Ziet u het middelste vak? Op het moment dat het een correct script detecteert, schakelt SeExpr een hele rij knoppen in om de individuele variabelen te beheren. In ons voorbeeld hierboven, kunt u $color
op drie manieren wijzigen:
voer van rood groen of blauw de kanaalwaarden in de invoervelden
Verplaats de kleine gekleurde schuifknoppen om de respectievelijke kanalen te wijzigen.
klik op het voorbeeld-venstertje links van de vakken, om een compleet nieuwe kleur te selecteren.
De laatste knop van het middelste vak is altijd Nieuw variabele toevoegen. Klik erop en dit dialoogvenster zal openen:
In dit dialoogvenster ziet u alle typen variabelen die SeExpr accepteert:
- Curve en Color curve¶
Deze zijn de SeExpr versie van Kleurverloop-stops: zij verdelen een grafiek onder met een verzameling waarden.
Curves stellen 1D kleurverlopen voor, geven een enkel drijvende komma voor elke controlepunt.
Color curves stellen RGB kleurverlopen voor, en geven voor elke controlepunt een kleur.
- Integers en drijvende komma.¶
Getallen.
- Vector¶
Een drietal drijvende komma.
- Kleur¶
Een vector die een RGB kleur voorstelt.
- Kleurenstaal¶
Een lijst met kleuren.
- Tekenreeks¶
Meestal een enkel woord.
U kunt bijvoorbeeld $color
dupliceren in tab Vector:
Uw eerste instelling creëren¶
Nu uw script klaar is, kunt u het hergebruiken door een voorinstelling te maken
U kunt er een creëren via de tab Opties:
Selecteer Nieuwe SeExpr voorinstellingen opslaan… zodat het volgende dialoogvenster opent:
U kunt in het tekstvak bovenaan de naam van de voorinstelling wijzigen, en een pictogram kiezen voor makkelijker identificatie.
Hint
Het dialoogvenster zal “Copy” aan de naam toevoegen als het een kopie is van een bestaande naam. U kunt de naam naar wens wijzigen.
Het dialoogvenster heeft de volgende keuzemogelijkheden voor het kiezen van een pictogram:
- Bestaande miniatuur laden¶
Als de voorinstelling al een pictogram heeft (bijvoorbeeld, als u een kopie van een bestaande voorinstelling heeft gemaakt), dan zal deze knop het laden en gebruiken.
- Afbeelding Inlezen¶
Past een afbeelding vanuit het bestandssysteem als pictogram toe.
- Script renderen naar miniatuur¶
Voert uw script uit naar een 256x256 textuur, en past deze toe als pictogram.
- Miniatuur wissen¶
Past het pictogram niet meer toe. Merk op, als de voorinstelling een kopie is van een bestaande voorinstelling, dat u dit ongedaan gemaakt kan worden door te klikken op Bestaande miniatuur laden.
Bestaande voorinstellingen wijzigen¶
Als u een voorinstelling-script wijzigt, dan zal u merken dat er twee nieuwe knoppen in de bovenbalk van de tab Opties verschijnen:
De herlaad-knop zal de voorinstelling terugzetten naar zij originele waarden, terwijl als u klikt op Voorinstelling overschrijven uw wijzigingen opslaat.
U kunt daarbij de naam van de voorinstelling wijzigen door te klikken op de knop voor hernoemen, en een nieuwe naam in te voeren, om daarna te klikken op Opslaan:
Uw voorinstellingen bundelen¶
Uw scripts met anderen delen is makkelijk! SeExpr script voorinstellingen zijn net zoals elke andere hulpdata in Krita. Volg gewoon de instructie in Hulpdatabeheer om uw eigen bundels te creëren.