Introducció al SeExpr

Novetat de la versió 4.4: Aquest document presenta el llenguatge d'expressions SeExpr.

Què és el SeExpr?

El SeExpr és un llenguatge d'expressions incrustable, dissenyat per la Disney Animation, que permet a les aplicacions amfitriones que renderitzin contingut generat dinàmicament. Pixar l'anomena a la seva documentació un «generador i combinador de patrons que es pot crear amb scripts».

El SeExpr està disponible al Krita com a una Capa d'emplenament.

Rerefons

Per a entendre què és el SeExpr, cal diferenciar entre dos tipus de gràfics: ràster i procedimental.

La gran majoria dels elements generats per ordinador que es veuen cada dia pertanyen al primer tipus: imatges com fotos, captures de pantalla d'anime preferides, els mems, tots són una multitud de punts petits de color, o píxels, arranjats en una quadrícula.

Els gràfics ràster tenen dos inconvenients. Primer, un cop creats, la seva resolució fixa. No es pot fer zoom i màgicament aconseguir més detall. I si cal canviar-los, o es torna a l'origen i es torna a mostrejar (que a vegades és impossible), o s'edita amb un programa de gràfics ràster, com el Krita.

Tanmateix, un dels problemes més grans és que sempre estem limitats per l'espai que els programes poden usar: sigui l'emmagatzematge secundari, com les targetes SD o la RAM. Llevat que estigui comprimida, la memòria de la imatge necessita el quadrat de la mida de la imatge. Per a un exemple ràpid, el diàleg del Krita Crear un document nou dona tres dades d'informació: la seva mida en píxels, la mida del píxel mateix, i la memòria total necessària.

../_images/Krita_newfile.png

Aquí hi ha un resum per a textures quadrades. Cal tenir en compte que la memòria necessària és només per a una capa:

Mida

Memòria necessària

256

256 kB

512

1 MB

1024

4 MB

2048

16 MB

4096

64 MB

Una alternativa és usar Gràfics vectorials. Els gràfics vectorials, per exemple els SVG, fan servir fórmules matemàtiques com «splines» i corbes de Bézier per a descriure una forma. Com que estan definides matemàticament, es poden redimensionar per a ajustar-les a les vostres necessitats sense perdre resolució.

El SeExpr pertany a una classe diferent, gràfics procedimentals. De manera similar als gràfics vectorials, els gràfics procedimentals només necessiten pocs kB d'emmagatzematge secundari per a la seva definició. Però no es defineixen amb fórmules matemàtiques; realment es pot codificar com es calcula el color en cada punt de la textura. I com que no hi ha límit en la seva precisió, es poden renderitzar patrons complexos a les capes en resolucions completament arbitràries.

Escriure un script

En aquesta guia d'aprenentatge, veurem com escriure un script en SeExpr, renderitzar-lo a una capa, i després desar-lo com una predefinició.

Començarem anant a Capes per a afegir una Capa d'emplenament nova. Després se selecciona el generador de SeExpr de la llista. S'obrirà aquesta finestra:

../_images/SeExpr_editor.png

El diàleg del generador de SeExpr es divideix en dues pestanyes. Per ara, romandrem a Opcions.

Nota

Capes d'emplenament descriu aquestes pestanyes amb més detall.

Comencem pintant una capa amb blau clar.

Primer, els scripts en SeExpr cal que defineixin una variable de sortida, anomenem-la $color. Com que el SeExpr pensa els colors segons l'espai de color RGB, les variables de color es defineixen amb un triplet de nombres conegut com a vector. Començarem definint la variable $color i donant-li un valor.

Anem al quadre de text i el netegem si hi ha qualsevol text. Després, definim i assignem $color a quelcom semblant a [0.5, 0.5, 1] (mig vermell, mig verd, blau sencer):

$color = [0.5, 0.5, 1];

El SeExpr necessita conèixer quina variable contindrà el valor final del color. Això es fa escrivint al final, a la seva pròpia línia, el nom de la variable:

$color

Ara, l'script hauria de tenir aquest aspecte:

$color = [0.5, 0.5, 1];
$color

Feu clic a D'acord, i es renderitzarà el primer script!

../_images/SeExpr_first_render.png

Avís

Per a ser absolutament precís, el SeExpr no té gestió de color. sempre renderitza les textures com a imatges RGB de coma flotant de 32 bits, amb correcció de la gamma. El Krita les transforma a l'espai de color del document usant el perfil «sRGB-elle-V2-srgbtrc.icc».

Vegeu Flux de treball gestionant el color per al seu significat.

Gestionar els scripts usant ginys

També hi ha una altra manera de definir i editar les variables. Obriu les propietats de la capa d'emplenament fent clic dret a Capa d'emplenament 1, i seleccionar Propietats de la capa....

../_images/SeExpr_prop_1.png

Heu vist el quadre del mig? Un cop es detecta un script sintàcticament correcte, el SeExpr activa un conjunt de controls per a gestionar variables individuals. A l'exemple de més amunt, es pot canviar la variable $color de tres maneres:

  • introduïu el valor dels canals vermell, verd, o blau als camps d'entrada

  • moveu els petits controls lliscants acolorits per a canviar el canal respectiu

  • feu clic al quadrat de la vista prèvia a l'esquerra dels quadres, per a seleccionar un color completament nou.

El darrer botó del quadre del mig sempre és Afegeix una variable nova. Feu-hi clic i s'obrirà aquest diàleg:

../_images/SeExpr_add_variable.png

Aquest diàleg mostra tots els tipus de variables que accepta el SeExpr:

Corba i Corba de color

Són la versió del SeExpr dels Degradats amb aturades: interpolen una rampa indicada per un conjunt de valors.

Les corbes representen degradats en 1D, retornen un flotant senzill en cada punt d'avaluació.

Les corbes de color representen degradats RGB, retornen un color en cada punt.

Enters i de coma flotant

Nombres.

Vector

Un triplet de flotants.

Color

Un vector que representa un color RGB.

Mostra

Una llista de colors.

Cadena

Normalment paraules úniques.

Per exemple, es pot replicar $color a la pestanya Vector:

../_images/SeExpr_add_variable_vector.png

Crear la vostra primera predefinició

Un cop l'script estigui llest, es pot reutilitzar fent-lo com a predefinició.

Se'n pot crear un a través de la barra superior de la pestanya Opcions:

../_images/SeExpr_editor.png

En seleccionar Desa la predefinició nova de SeExpr... s'obrirà el diàleg següent:

../_images/SeExpr_save.png

Es pot editar el nom de la predefinició al quadre d'edició de la línia superior, i establir una miniatura per a una identificació fàcil.

Suggeriment

El diàleg afegirà «Copia» al nom de la predefinició si era una còpia d'una existent. Es pot canviar segons es desitgi.

El diàleg proporciona les possibilitats següents per a establir una miniatura:

Carrega la miniatura existent

Si la predefinició ja té una miniatura (per exemple, si s'ha creat a partir d'una predefinició existent), aquest botó el carregarà i l'aplicarà.

Carrega una imatge

Aplica una imatge des del sistema de fitxers com a miniatura.

Renderitza l'script a la miniatura

Renderitza l'script a una textura de 256x256, i aquesta l'aplica com a miniatura.

Neteja la miniatura

Suprimeix la miniatura. Cal tenir en compte que si la predefinició és una còpia d'una existent, això es pot revertir fent clic a Carrega la miniatura existent.

Canviar les predefinicions existents

Si es canvia l'script d'una predefinició, veureu dos botons nous a la barra superior de la pestanya Opcions:

../_images/SeExpr_overwrite_preset.png

El botó de recarregar restaurarà la predefinició a les seves propietats originals, mentre que en fer clic a Sobreescriu la predefinició desarà els canvis.

Addicionalment, es pot editar el nom de la predefinició fent clic al botó reanomena, introduint el nom nou, i fent clic a Desa:

../_images/SeExpr_rename_preset.png

Empaquetar les vostres predefinicions

És fàcil compartir els vostres scripts! Un script en SeExpr de predefinicions és com qualsevol altre recurs del Krita. Seguiu les instruccions de Gestionar els recursos per a crear els vostres propis paquets.