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.

../_images/Krita_newfile.png

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:

../_images/SeExpr_editor.png

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!

../_images/SeExpr_first_render.png

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….

../_images/SeExpr_prop_1.png

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:

../_images/SeExpr_add_variable.png

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:

../_images/SeExpr_add_variable_vector.png

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:

../_images/SeExpr_editor.png

Selecteer Nieuwe SeExpr voorinstellingen opslaan… zodat het volgende dialoogvenster opent:

../_images/SeExpr_save.png

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:

../_images/SeExpr_overwrite_preset.png

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:

../_images/SeExpr_rename_preset.png

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.