TD Akvarell
TouchDesigner · GLSL · tesztelve: TouchDesigner 2025.33070, NVIDIA GPU · In English
Akvarell, ami magától festődik meg egy felvételből. Nem elmosás-visszacsatolás trükk: a videó a festő, a többit egy kis folyadék-szimuláció végzi. A festék és a víz csak nedves papíron mozog, a saját tempójában szárad, a lavír szélén összegyűlik, leül a papír völgyeibe, és ott marad, ahol megszáradt. Mozgó kamerás felvételnél a festmény együtt utazik a képpel, és újrafesti magát ott, ahol már nem egyezik vele.


Ez a lap elmagyarázza, milyen akvarell-fogásokra épül az effekt, végigveszi a két rész (prep és wc_engine) összes beállítását, megadja a tesztjeinkben legjobbnak bizonyult értékeket, és leírja, hogyan lehet videót renderelni vagy egy állóképet menteni.
Az akvarell dióhéjban
A beállítások azt követik, amit egy akvarellfestő csinál. Ezek a mögöttük lévő fogalmak, és hogy az effektben melyik csúszka felel meg nekik.
A festék áttetsző: ezért halad minden a világostól a sötét felé
Az akvarellben nincs fehér festék. A fény átmegy a pigmenten, visszaverődik a papírról, és újra átmegy a pigmenten. Két réteg egymáson mindig sötétebb színt ad, mint két színes üveglap egymáson, ezért a festményt sötétíteni lehet, világosítani alig. Az akvarell fehérjei a papír, amit sosem festettek be. Ezért dolgozik a festő a világostól a sötét felé, és ezért tervezi meg a fehéreket már az elején.
Az effekt ugyanígy működik. Optikai sűrűségben számol: egy pigmentréteg mennyi fényt nyel el. A sűrűségek összeadódnak, a fény összeszorzódik (Beer–Lambert-törvény), és a festmény csak sötétedni tud ott, ahová festék kerül. Az effektben a fehéreket a prep maszkja adja: amit a maszk kihagy, az nyers papír marad.
Lavír (wash)
A lavír egyszerre, nedvesen felvitt, hígított festékréteg egy nagyobb felületen. A belsejében a szín sima, a karakterét az adja, ami a szélein és száradás közben történik.
Lazúr (glaze)
A lazúr áttetsző festékréteg, amit egy korábbi rétegre visznek fel, miután az már megszáradt. Az új réteg nem keveredik a régivel: ráfekszik, és szűrőként sötétíti. A festő néhány lazúrból építi fel a képet: egy világos első lazúr az alapszínekhez, aztán sötétebbek csak ott, ahol a képnek mélység kell. Ahol egy lazúr száraz papíron ér véget, éles szélt hagy, így az egymásra rakott lazúrokból rétegzett, éles szélű formák lesznek.
Az effektben a Progress 0-tól 1-ig fut, és közben egymás után felviszi a lazúrokat (Glazes, alapból 3). Minden lazúr egy nedves front, ami végigsöpör a képen. Az első csak világos sűrűségig mehet (First glaze max density), a későbbiek egyre sötétebbek, és egy későbbi lazúr csak ott nedvesíti a papírt, ahol a képnek még sötétednie kell. Ettől lesznek meg a valódi lazúrozás rétegzett, éles szélű formái.



Hová ér előbb a nedves front? Alapból egy zajminta dönti el, melyik részt éri el előbb egy lazúr, ezért az első lavírok véletlenszerű, felhőszerű foltokban jelennek meg. A Glaze order from the picture csúszkával ezt a felvétel dönti el: vagy a festékmaszk formái nőnek a belsejükből kifelé, vagy előbb a világos részek festődnek meg, ahogy a festő is előbb a fényt teszi le, és utána dolgozik köré. A kész festmény ugyanaz lesz, csak másként születik meg.


Nedves a nedvesbe, nedves a szárazra
A nedves papírra cseppentett festék puhán szétterül és összemosódik: ez a nedves a nedvesbe technika. A száraz papírra vitt festék ott marad, ahová tették, és éles szélt tart: ez a nedves a szárazra. Az akvarell karakterének nagy része a puha és az éles szélek keveréke.
Az effektben az, hogy a festék mennyire mozoghat, a papíron lévő víz mennyiségén múlik (Mobility starts at water, Full mobility at water). Nedves papíron a festék szétfut és folyik, száraz papíron megáll. A száraz szomszéd falként viselkedik.


Virágzás (bloom, backrun)
Ha víz fut vissza egy már száradó lavírba, kitolja a pigmentet, és világos közepet hagy, szakadozott, sötétebb peremmel. Ez a virágzás (backrun, „karfiol”). A festők félnek tőle és szeretik is.
Az effektben: Wet to dry push (a víz a nedves felől a száraz papír felé áramlik) és Uneven paper sizing (egyes foltok később száradnak).


Szélsötétedés
Száradás közben a víz a lavír széle felé áramlik, és viszi magával a pigmentet, ezért a megszáradt lavír széle sötétebb, mint a közepe, mint egy kávéfolt pereme.
Az effektben: Edge darkening és Edge radius a Look oldalon.
Granuláció
Egyes pigmentek nehezebb szemcsékből állnak. Nem maradnak lebegve, hanem leülnek a papír völgyeibe, és pöttyös, homokos textúrát adnak.
Az effektben: Granulation (a látvány) és Settle in valleys (a pigment a papír völgyeiben gyorsabban ül le).

Kiemelés (lifting)
Nedves ecsettel vagy nyirkos papírzsebkendővel a pigment visszaszedhető, akár megszáradás után is, ha még nem festette meg a papírt. Így puhít a festő egy szélt, vagy így hoz vissza egy csúcsfényt.
Az effektben: Lift wet pigment és Lift dried pigment. Mozgó felvételnél a festmény is így világosodik ott, ahol a felvétel világosabb lett.
Papír és enyvezés
Az akvarellpapír érdes. A hidegen préselt (cold press) papír felülete dombocskás: a dombok megfogják az ecsetet (a száraz ecset átugorja a csúcsokat), a völgyek pedig összegyűjtik a granuláló pigmentet. Az enyvezés a papírban és a felületén lévő enyv, ami azt szabályozza, milyen gyorsan szívja be a vizet. Az egyenetlen enyvezés miatt egyes foltok később száradnak, és ez virágzáshoz vezet.
Az effektben: a Paper oldal (procedurális, hidegen préselt papír, vagy a saját szkenned a 3. bemeneten), valamint a Dry brush, az Uneven paper sizing és a Fibre feathering.
Optical flow (mozgó felvétel)
A papírra festett kép nem mozog, a kamera viszont igen. Az optical flow minden pixelre megméri, merre mozdult el két kocka között. Az effekt ezzel viszi együtt a nedves és a megszáradt festéket a felvétellel, és újrafesti azokat a részeket, amik már nem egyeznek.
Hogyan működik
Egy képkocka, sorrendben:
- A prep a felvételből festékmaszkot készít: fényesség szerinti küszöb (világosak, sötétek vagy mindkettő), zajjal tördelve, elmosott, szakadozott képszéllel. A szín változatlanul megy tovább, a maszk az alfacsatornában utazik.
- A source (a wc_engine-en belül) a festő: a felvételből cél-pigmentsűrűséget számol, és eldönti, hol jár a nedves ecset ebben a kockában.
- A velocity → divergence → pressure (×20) → project egy kis 2D folyadék a felbontás negyedén. A víz csak ott mozog, ahol a papír nedves.
- A state a nedves réteg (mozgó pigment és víz), a fixed a száraz réteg (a papírba leült pigment).
- A display a sűrűségből szín lesz a papíron (Beer–Lambert), szélsötétedéssel, granulációval, papírdomborzattal és nedves fénnyel.
Mozgó kameránál a festményt a felvétel optical flow-ja viszi magával, és az újrafestő foltok frissítik fel azokat a részeket, amik már nem egyeznek a videóval.

A wc_engine.tox használata
A wc_engine.tox maga a szimuláció, önállóan: a shaderek bele vannak ágyazva, semmilyen fájl nem kell mellé. Húzd be egy hálózatba, kösd a felvételt az 1. bemenetre (és ha kell, a mozgásvideót a 2.-ra, egy papír-szkennelést a 3.-ra), és animáld a Paint → Progress-t. Benne egy README DAT sorolja fel a bemeneteket és a gyors kezdést.
- A festékmaszk az 1. bemenet alfájából jön. Prep-lánc nélkül a felvétel általában átlátszatlan, így minden megfestődik. Ha fehér papírt akarsz hagyni, tegyél egy thresholdot vagy bármilyen matte-ot az alfába.
- A Reset a .tox-ban sima kapcsoló. Rendereléshez tedd rá a
me.time.frame <= 2kifejezést, ahogy a rig is. - Az optical flow (mozgó felvétel) NVIDIA GPU-t igényel.
- TouchDesigner 2025.33070-ből exportálva. Export után ellenőrizve: visszatöltve és az eredeti motor mellett futtatva a 60. kocka pixelre azonos volt.
A prep.tox a festékmaszk-lánc önállóan, szintén mindent tartalmaz. Kösd a felvételt az 1. bemenetére (és ha kell, egy key-ágat a 2.-ra), a kimenetét pedig a wc_engine 1. bemenetére: felvétel → prep → wc_engine. Benne egy README DAT magyarázza az oldalakat. Ugyanígy ellenőrizve: az eredetivel azonos, az automatikus küszöbbel együtt.
Nevek és a rig
| Név | Mi ez |
|---|---|
wc_engine |
A szimuláció (Base COMP). Minden festő-beállítás az ő paraméteroldalain van. Ebből lesz a .tox. |
prep |
Az előkészítő lánc: küszöb, festékmaszk, képszél. |
watercolor_rig |
A videós összeállítás: video → zoom → prep → wc_engine → OUT, mellette az export (Movie File Out). |
still_test |
Ugyanez a lánc egyetlen képre: still → prep → wc_engine → OUT. |
A wc_engine bemenetei
- paint: a felvétel, amiből a festmény lesz. Az alfája a festékmaszk (0 = nyers papír, lágy érték = vékonyabb lazúr).
- motion (nem kötelező): a felvétel, amiből az optical flow számolódik. A tiszta, nem zoomolt felvétel kerüljön ide. Ha üres, az 1. bemenetet használja.
- paper (nem kötelező): papír-szkennelés vagy -fotó, ha a Paper → Use paper input be van kapcsolva.
A prep bemenetei
- A felvétel. Ennek a színe festődik meg.
- key (nem kötelező): ha be van kötve, a küszöb ebből számol. Ide jöhet egy levels/deszaturáció ág: a maszkot formálja, a festett színeket nem változtatja.
Presetek
A watercolor_rig és a still_test Presets oldalán:
| Beállítás | Mit csinál |
|---|---|
| Preset file | A JSON-fájl, a projektmappához képest (presets/…) vagy abszolút útvonallal. |
| Load | Betölti a presetet a wc_engine-be és a prep-be. |
| Save | A mostani állapotot a fájlba menti. Új presethez előbb írj be egy új fájlnevet, különben a meglévőt írja felül. |
| Status | Mi történt utoljára, pl. loaded video_export.json: 95 values. |
A preset a fix értékeket és a kifejezéseket is menti (például a Progress animációját). Nem kerül bele a Reset és a Width / Height / Sim FPS, mert ezek a bemenetből jönnek. Amit egy preset nem tartalmaz, az betöltéskor megtartja a mostani értékét.

prep: a festékmaszk
A prep dönti el, hol marad fehér a papír. A festő a téma legvilágosabb részeit festetlenül hagyja, a prep ugyanezt csinálja egy, a felvétel fényességére tett küszöbbel. Ami a maszkon kívül esik, nyers papír marad, a lágy maszkértékek vékonyabb lazúrt adnak, a szakadozott, elmosott képszél pedig nem engedi a festményt a kép széléig futni, mintha egy nagyobb lapra készült vázlat lenne.

Mask

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Paint coverage | 0.3 | A kép hányad részét festi a fő kulcs (0.3 = kb. 70% nyers papír marad). Bekapcsolt Auto threshold mellett a fényesség-küszöb kockánként úgy áll be, hogy ezt a lefedettséget adja. |
| Opposite key coverage | 0.15 | Ugyanez az ellentétes kulcsra, ami a tónusskála másik végét fogja meg. |
| Key mix | 0 | 0 = csak a fő kulcs, 0.5 = mindkét kulcs (a középtónusok lyukadnak), 1 = csak az ellentétes kulcs. |
| Auto threshold | be | A lefedettség-értékeket követi. Kikapcsolva a lenti kézi küszöbök érvényesek. |
| Threshold / Opposite threshold | 0.35 / 0.75 | Kézi fényesség-küszöbök, kikapcsolt Auto threshold mellett. |
| Paint darks | be | A fő kulcs a sötéteket festi (invertált küszöb), az ellentétes a világosakat. Kikapcsolva fordítva. |
| Softness | 0.06 | A lágy vágás szélessége, fényességben. |
| Mask smoothing | 8 px | A kulcs elmosása, hogy a maszk formákat kövessen, ne egyes pixeleket. |
| Auto threshold lag | 0.5 s | Időben simítja az automatikus küszöböt, hogy a maszk ne villogjon. |
| View mask | ki | A kép helyett a maszkot mutatja. |
| Bypass | ki | Maszk nélkül engedi tovább a képet. Amíg ez be van kapcsolva, a prep többi beállításának nincs látható hatása. |
Miért nem elég egy fix küszöb? Egy drónfelvétel a világos, naplementés tengertől a sötét dzsungelig megy. Egy fix vágás az egyik jelenetből 90%-ot lyukasztana ki, a másikból 20%-ot. A Paint coverage ehelyett a kép egy részarányát kéri, és a küszöb minden kockán újraszámolódik.
Az Auto threshold a pixelek rangsorán dolgozik. A „fesse meg a kép 30%-át” csak azon múlik, melyik pixel sötétebb a másiknál. A kulcson végzett levels-, gamma- vagy kontrasztállítás ezt a rangsort megtartja, így a küszöb egyszerűen velük együtt csúszik, és a maszk ugyanaz marad. A deszaturáció is csak annyiban változtat a maszkon, amennyiben a színek egymáshoz viszonyított világosságát módosítja. Ha levels-szel akarod formálni a maszkot, kapcsold ki az Auto threshold-ot, és a küszöböket kézzel állítsd.
Két kulcs. Egy küszöb a tónusok egyik végét festi. Egy vízeséses képen, ha csak a sötétek festődtek (lefedettség 0.45), a vízesés, a köd és a sziklafal nagy része egyetlen nyers-papír lyukká olvadt. Key mix 0.5-tel és 0.15-ös ellentétes lefedettséggel a vízesés, a köd és a hab is maszkot kapott, a középtónusú sziklafal lyukadt, és a vízesés formája újra kirajzolódott (festett terület 26% → 37%). Mivel ezek fehérek, csak halvány lazúrt kapnak.

Noise

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Noise amount | 0.15 | Mennyire tolja el a zaj a küszöböt: ettől törik ecsetszerű formákra a maszk széle. |
| Noise scale | 5 | Zajcellák száma a képmagasságon. |
| Noise drift | 0.05 /s | Milyen gyorsan sodródik a zaj. |
| Seed | 0 | Másik zajminta. |
Edge

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Border feather width | 0.08 | Elmosott képszél, képmagasság-egységben: a kép szélén 0, ilyen távolságban befelé 1. 0 = nincs képszél. |
| Border tearing | 0.6 | Mennyire szaggatja a zaj a képszélt. |
| Border noise scale | 6 | A szakadások mérete. |
A rig zoom-ja a prep előtt fut, így a képszél a végső kereten belül marad.

wc_engine: Paint
Ez az oldal a festő terve: hány lazúrban kerül fel a kép, mennyire lehet sötét mindegyik, milyen sorrendben éri el az ecset a részeket, és mozgó felvételnél hogyan festődik újra a kép ott, ahol már nem egyezik a felvétellel.

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Progress | 0 | A festés előrehaladása, 0 → 1. Animáld: a min(1, max(0, (me.time.frame - 1) / 150)) 150 kocka alatt fest végig. Mozgó felvételnél kb. 24 kocka legyen: a hosszú feltárás több másodpercig halvány, befagyott képnek hat. |
| Glazes | 3 | Hány lazúr kerül fel, amíg a Progress fut (lásd fent: Lazúr). |
| First glaze max density | 0.45 | Az első lazúr legnagyobb sötétsége: előbb a világosak, a végén a sötétek. |
| Light to dark order | 0.85 | 0 = bármelyik lazúr mehet teljesen sötétig, 1 = szigorúan világostól a sötétig. |
| Max density | 4 | A legsűrűbb pigment. A sötét felvételt lágyan összenyomja, mert a valódi pigment sosem ér el feketét. 2.5-nél a sötétek nem feketednek be, és megtartják a színüket. |
| Density gain | 1 | A cél teljes pigment-erőssége. |
| Wash levels / Wash level mix | 4 / 0.35 | A lavír erősségét néhány lapos szintre bontja, ahogy a festő is pár tónussal dolgozik (0 = ki), ennyi keveréssel. |
| Brush order scale | 2.5 | Annak a zajnak a mérete, ami eldönti, melyik részt éri el előbb a nedves front: az ecsetformák mérete. |
| Wet front width | 0.15 | A haladó front mögötti nedves sáv szélessége. |
| Dry brush | 0.06 | A papír domborzata megtöri a nedves szélt, ahogy a száraz ecset átugorja a papír csúcsait. |
| Directional sweep / Sweep direction | 0.3 / (0.7, −0.7) | 0 = a front csak a zajt követi, 1 = ebben az irányban söpör végig a képen. |
| Last glaze water | 0.3 | Az utolsó lazúr vize az elsőhöz képest: a végén szárazabb, részletező vonások. |
| Glaze order from the picture | 0 | Melyik részt éri el előbb egy lazúr. 0 = zajminta (véletlen foltok), 1 = a kép dönti el (lásd Picture order). A kész festmény nem változik, csak az, ahogyan megszületik. |
| Picture order | 0.5 | 0 = a festékmaszk formái nőnek a belsejükből kifelé, 1 = előbb a világos részek festődnek meg, köztük keverék. |
| Picture order smoothing | 48 px | A kép elmosása, mielőtt a sorrendet adja. Nagyobb = szélesebb, nyugodtabb növekedés. |
| Repaint changes | 0 | Mozgó felvételhez: mennyire erősen festi újra a felvétellel már nem egyező részeket. Drónfelvételnél 0.8. |
| Repaint dab coverage | 0.35 | A kép mekkora részét fedi egy újrafestő minta. A drónfelvételünkön 0.35-nél nagy festetlen lyukak maradtak, 0.5-nél nem. |
| Repaint dabs per second | 4 | Milyen gyakran vált a minta. A minták átúsznak egymásba, nem ugranak. |
| Repaint dab scale | 3 | A zajból vágott foltok mérete. Nagyobb érték = kisebb foltok. |
| Repaint dab structure | 0.5 | 0 = zajból vágott (pacás) foltok, 1 = a felvétel tónussávjaiból vágott foltok: az újrafestés egy, a képben már meglévő tónushatáron ér véget, ahogy a festő is tónusonként lazúroz. |
| Repaint tone bands | 3 | Tónussávok száma feketétől fehérig a tónusfoltokhoz. |
| Repaint band noise | 0.3 | Zaj, ami vonásokra töri a sávot. |
| Repaint tone smoothing | 12 px | A felvétel elmosása a sávokra bontás előtt. |
| Repaint error threshold | 0.15 | Mennyire kell eltérnie a festménynek a felvételtől, hogy újrafestődjön. |


wc_engine: Water
A víz az akvarell lelke. Itt állítod, mennyi vizet visz az ecset, meddig marad nedves a papír, milyen messzire és milyen vadul folyik a festék, amíg nedves, és hogyan szívja be a papír a vizet.

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Dry time | 4 s | Ennyi idő alatt szárad meg nagyjából egy lavír. Hosszabb = több idő a folyásra. |
| Brush water | 0.7 | Az ecsettel felvitt víz mennyisége. |
| Capillary creep | 1 | A víz a papíron át beszivárog a szomszédba: a tócsa lassan terjed. |
| Pigment bleed | 0.1 | A pigment szétterülése a nedves részeken belül. A száraz szomszéd falként viselkedik. |
| Colour separation | 0.3 | A színcsatornák eltérő sebességgel futnak szét (a cián messzebbre megy, mint a narancs), ahogy a pigmentkeverék is szétválik a vízben: színes udvarok. Nagy nyers-papír felületek mellett 0.3-nál szivárványos szegély látszik, 0.1 egy leheletnyit hagy belőle. |
| Pigment advection / Water advection | 1 / 0.6 | Mennyire viszi magával a folyó víz a pigmentet, illetve a vizet. |
| Wet to dry push | 0.004 | A víz a nedves felől a száraz papír felé áramlik: virágzás, visszafolyás, kávéfolt-perem. |
| Brush front push | 0.003 | A nedves front kifelé tolja a vizet. |
| Vorticity | 1 | Életben tartja a kis örvényeket. |
| Turbulence / Turbulence scale | 0.05 / 4 | A víz lassú, „lélegző” örvénylő mozgása. |
| Velocity damping | 1.5 | Milyen gyorsan csillapodik a víz mozgása. Kisebb = élénkebb. |
| Gravity | (0, 0) | Lefolyás és csorgás, mint a megdöntött papíron. Negatív y = lefelé. |
| Mobility starts at / Full mobility at water | 0.03 / 0.5 | Az a vízmennyiség, ahol a festék elkezd mozogni, illetve ahol szabadon mozog (nedves a nedvesbe). Kisebb „full mobility” = több folyás. |
| Uneven paper sizing | 0.5 | A papír egyenetlenül szív: egyenetlen száradás és virágzás. |
| Fibre feathering | 1 px | A szétfutás a papír rostjait követi. |
Víz állóképen és mozgó felvételen. A drón-preset élénkebb vize (turbulencia 0.15, vorticity 2, gravitáció −0.04, csillapítás 0.8) videón azért működik, mert az újrafestés folyamatosan visszahúzza a képet a felvételhez. Állóképen semmi nem húzza vissza, és tíz másodperc alatt a víz mindent márványos örvényekké kever. Állóképhez a fenti alapértékeket használd.

wc_engine: Pigment
Mit csinál a pigment, amikor már a papíron van: milyen gyorsan éri el a színét, hogyan ül le a papírba, ahogy a víz szárad, és hogyan lehet újra kiemelni.

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Deposit rate | 20 | Milyen gyorsan hozza az ecset a papírt a cél-sűrűségre (másodpercenként). Lassabb = világosabb, kevésbé telített, inkább a víz alakítja. |
| Settling rate | 1.5 | Milyen gyorsan ül le a pigment a papírba száradás közben. A leült pigment már nem mozog a vízzel. |
| Settle in valleys | 0.5 | A papír völgyeiben gyorsabban ül le a pigment: granuláció. |
| Lift wet pigment | 1 | A nedves ecset kiemeli a pigmentet, ahol a papír sötétebb a célnál. |
| Lift dried pigment | 0.3 | Újranedvesítéskor a megszáradt pigment is kiemelhető. Mozgó felvételnél 2. |
| Lift tolerance | 0.05 | Mennyivel lehet sötétebb a célnál, mielőtt kiemelés kezdődik. |
| Forget dried pigment | 0 s | A megszáradt pigment ennyi idő alatt elhalványul (0 = soha). Mozgó felvételnél 5 s, hogy a régi jelenetek ne rakódjanak sárrá. |
wc_engine: Look
Hogyan jelenik meg a papíron lévő pigment: mennyire sötét és áttetsző a festék, mennyire látszanak a szélek és a papír textúrája.

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Paper colour | (0.96, 0.94, 0.89) | A papír fehérje. Az ilyen színű pixel a felvételben nyers papír lesz. |
| Ink strength | 1 | A pigment összesített sötétsége. 0.75-nél áttetszőbbnek hat. |
| Edge darkening / Edge radius | 0.6 / 2 px | A pigment összegyűlése a lavír szélén (lásd fent: Szélsötétedés). |
| Granulation | 0.25 | Pigment a papír völgyeiben, a rostoktól pöttyözve. |
| Paper relief | 0.25 | A papír dombjai, balról felülről megvilágítva. |
| Paper tone | 0.5 | A papír tónusának változatossága. |
| Wet sheen | 0.5 | A nyirkos részek kicsit sötétebbnek és hidegebbnek hatnak. |
| Blend original | 0 | Visszakeveri az eredeti felvételt. |
| Linear light | be | A pigment lineáris fényben keveredik (helyes Beer–Lambert). |
| View | painting | Hibakereső nézetek: mozgó pigment, leült pigment, víz, papír, eredeti. |





wc_engine: Paper

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Paper bump scale | 110 | A hidegen préselt papír dombjainak száma a képmagasságon (procedurális papír). |
| Fibre scale | 420 | A rostok sűrűsége. |
| Use paper input | ki | A procedurális domborzat helyett a 3. bemeneten lévő szkennelést használja. |
| Scan contrast | 3 | A szkennelésből vett domborzat mélysége. Előbb a kép helyi átlaga levonódik, így a fotó egyenetlen megvilágítása nem hat lejtőnek. Egy fotó domborzata sokkal laposabb a procedurálisnál: a tesztszkennelésünknél 2.7 adott vele egyező mélységet. |
| Scan colour | 1 | 1 = a papír a szkennelés színét és tónusát kapja (foltok, öregedés, barnult sarkok), 0 = Paper colour. |

wc_engine: Flow (mozgó felvétel)

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Painting follows footage | ki | Mozgó kamerához kapcsold be: a festmény az optical flow-val együtt utazik. |
| Flow scale | 72 | A TouchDesigner Optical Flow TOP kimenetét pixelre váltja. Kalibrált érték: a nyers flow a valódi mozgás kb. 1/72-e. 1-nél a festmény alig mozdul, és minden sárrá válik. |
| Flow limit | 32 px | Az ennél gyorsabb vektorokat kockánként eldobja, nem levágja. |
| Flow cell | 32 px | A mozgást ekkora cellákra átlagolja. Nagyobb = lazább, simább folyás. |
| Zoom | 1.0 | A flow közepét tartja meg. A festendő bemenetet ugyanennyivel zoomold (a rig zoom-ja ezt csinálja), így a képszélen zajos flow a képen kívülre esik. A rigben 1.1. |
| Flow is in pixels | be | Az Optical Flow TOP-hoz maradjon bekapcsolva. |
| Water dragged by footage | 0 | A kamera mozgása magát a vizet is sodorja. |
Miért kell a flow-t tisztítani? (mérés) A felvételen fázis-korrelációval összevetve az NVIDIA flow átlagosan helyes, de pixelenként tele van kiugró szeméttel: akár 250 px/kocka ott, ahol a valódi mozgás 3–23 px. A levágásuk egész festéktömböket tolt el (lépcsős hibák). A kiugrók eldobása és a cellánkénti átlagolás a pixelenkénti flow-hibát 6.2 px-ről 3.7 px-re csökkentette, és eltüntette a tömböket. A flow elmosása nem segített: a kiugrókat szétkente, ahelyett hogy eldobta volna.


wc_engine: System

| Beállítás | Alapérték | Mit csinál |
|---|---|---|
| Reset (hold) | ki | Tiszta papírt ad. A rigben a me.time.frame <= 2 kifejezés áll rajta, így minden futás üres papírról indul. |
| Width / Height | a bemenetből | A festendő bemenetet követik. |
| Water grid divisor | 4 | A víz negyed felbontáson fut. 4K-hoz 8. |
| Pressure iterations | 20 | A nyomás-számítás lépései. Módosítás után a hálózatot újra kell építeni. |
| Sim FPS | a projekt fps-e | Az időlépés. Egyezzen a felvétel képfrissítésével. |
| Seed | 0 | Más papír és zaj. |
| Always cook | be | Minden kockán lépteti a szimulációt, akkor is, ha senki nem nézi. A TouchDesigner csak azt számolja, amit valami lekér. Enélkül a nem látott motor megáll, aztán ugrik, ami szellemképként látszik. |
Ajánlott beállítások
Mindkettő megvan a presets/ mappában, és a Presets oldalon betölthető.
Videó, mozgó kamera (video_export.json) |
Állókép (still_x3.json) |
|
|---|---|---|
| Progress | 24 kocka alatt | 150 kocka alatt, száradás kb. a 240.-ig |
| Painting follows footage | be | ki |
| Repaint changes | 0.85 | 0 |
| Forget dried / Lift dried | 5 s / 2 | 0 / 0.3 |
| Víz | turbulencia 0.15, vorticity 2, gravitáció y −0.04, ecsetvíz 1, full mobility 0.35, száradás 6 s, bleed 0.25, csillapítás 0.8 | az alapértékek |
| Kinézet | colour separation 0.1, ink strength 0.75, max density 2.5, edge darkening 1, granulation 0.25, paper tone 0.3 | ugyanez, wash level mix 0.6 |
| Papír-szkennelés | scan contrast 1.5, scan colour 1 | ugyanez |
| prep | paint coverage 0.45, zoom 1.1 | paint coverage 0.45 |
Hogyan választottuk őket? Videónál azt mértük, mennyire marad felismerhető a kép (a kimenet és a felvétel fényességének korrelációja, 100–700. kocka): egy kézzel hangolt beállítás 0.58, az állókép-kinézet önmagában 0.55, ugyanez 0.45-ös lefedettséggel 0.64. Nyugodtabb vízzel is 0.64 jött ki, ezért maradt a bátrabb folyás. A nagyon sötét jelenetek (árnyékos sziklafal) minden beállítással sötét foltba mosódnak.
Az állóképnél a változatokat szemre vetettük össze a fenti jellemzők alapján: nyers-papír fehérek, áttetsző rétegek, puha és éles szélek, nincs fekete, nincs szivárványos szegély.


Videó renderelése
- Realtime ki: a felső sávban vedd ki a pipát a Realtime elől. Realtime módban a TouchDesigner kockákat ugrik, ha lemarad, és a szimuláció rossz időlépéssel számol.
video→ Play Mode: Locked to Timeline. A timeline 1-től a klip hosszáig fut, a projekt fps-e egyezik a felvételével.- A Reset automatikus a timeline 1–2. kockáján.
- Ismételhető render: a shaderek az időt a timeline-ból veszik, és az automatikus küszöb nem visz át simítást az előző futásból. Két render 60. kockája 2 millió pixelből 55-ben tért el (0.003%, szétszórva): a GPU és az optical flow apró zaja, szemmel nem látható.
export(Movie File Out, azOUTután): ProRes 4444 XQ, egyedi fájlnév-utótaggal. A hossza a timeline hosszára van korlátozva, így a felvétel magától leáll. (A korlát nélkül a timeline visszaugrik az 1. kockára, és a felvétel megy tovább.) Képsorozathoz EXR vagy 16 bites TIFF.- A timeline-t állítsd egyszeri lejátszásra (play once) a loop helyett, hogy az utolsó kockán megálljon.
- Timeline az 1. kockára, Record be, Play.

Realtime-ban hangolni nyugodtan lehet: a video maradjon Locked to Timeline-on, és a timeline loopoljon, így az automatikus Reset mindig a klip elejére esik. Sequential módban a klip a timeline-tól függetlenül halad, és a Reset a felvétel közepén indítaná újra a festést.
Állókép mentése
- A
still_test-ben töltsd be a képet astillMovie File In-be. A motor a kép saját felbontásán fut. - Töltsd be a
presets/still_x3.json-t (nincs flow, nincs újrafestés, nyugodt víz). - Timeline az 1. kockára, Play. A Progress 150 kocka alatt három lazúrt visz fel, kb. a 240. kockára megszárad a festék.
- Jobb klikk az
OUT-on → Save Image (16 bites TIFF vagy EXR), vagy egy Movie File Out Type: Image beállítással és Add Frame-mel.
A still_test motorján az Always cook ki van kapcsolva: csak akkor dolgozik, ha nézed, így nem lassítja a videós riget. Ha nincs a képernyőn a nézete, kapcsold be.


Hibakeresés
- A maszk nem változik, amikor a kulcson állítok: nézd meg a Bypass-t, aztán az Auto threshold-ot (amíg be van kapcsolva, a levels és a gamma nem hat), aztán a Key mix-et (0-n az ellentétes kulcs nem számít).
- Lépcsős tömbök a képszélen: a flow. A Flow limit és a Flow cell maradjon bekapcsolva; lazább mozgáshoz emeld a Flow cell-t.
- Szellemkép, a festmény lemarad és ugrik: a motor nem lép minden kockán. Kapcsold be az Always cook-ot.
- Mozgó felvételen minden szürke sárrá válik: rossz a Flow scale (az Optical Flow TOP-hoz 72 körül kell), vagy a Forget dried pigment 0.
- Az első másodpercek halványak és befagyottak: a feltárás túl hosszú mozgó felvételhez. A Progress kb. 24 kocka alatt fusson végig.
- Szivárványos szegély: csökkentsd a Colour separation-t.
- Felbukkanó-eltűnő pacák: az újrafestő foltok. Próbáld a Repaint dab structure-t 0 és 1 között, és nézd lejátszás közben; egy állókép ezt nem mutatja meg.
- Alig látszik a papír-szkennelés: Use paper input be, Scan colour 1, Scan contrast 1.5–3.
Források
J. Stam, Stable Fluids (1999) · Curtis és mtsai., Computer-Generated Watercolor (SIGGRAPH 1997) · J. Whitaker, inkwash.