.[ ČeskéHry.cz ].
Generování lightmap - AO
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 5. únor 2017, 19:27:55    Předmět: Odpovědět s citátem

VODA napsal:
Ještě takový dotaz, ty vrcholy ve výstupním souboru asi nejsou ve stejném pořadí, jako v obj, viď?

Ano, nemusí to tak být. Při konverzi do jiného systému myslím prohazuji winding + importér může zahodit některé degenerované trojúhelníky (i když ty tam asi mít nebudeš).

Jinak nic za to nechci, budu rád, když se to bude hodit (bude mi úplně stačit, když sem pak postneš třeba nějaký screenshot, až to budeš testovat v enginu, i kdyby ten výsledek nebyl dobrý)

A i kdyby ne, tak díky tomu jsem si opravil jeden bug, kdy mi to negenerovalo binárně shodné výsledky ve více vláknech
a druhý byl dokonce heap corruption v optimalizaci atlasu.

Každopádně u thekly mě ani tak netrápí, že mají lepší využití v atlasu, jako to, že mají mnohem lepší clusterování.
Já používám primitivní clusterování podle maximální komponenty normály.

Nechci mírnit tvé nadšení, uvidíš sám. Někdy ty seamy jsou dost vidět a nevypadá to dobře, záleží taky na typu geometrie.
Zkoušel jsem třeba nějakou lowpoly jeskyni a vypadalo to špatně. Plochý terén nebo ostré plochy jsou ok.

Každopádně by mělo být možné to částečně kompenzovat zmenšením velikosti texelu u lightmapy; tady ještě jedna drobnost: pokud nějaká group (cluster) přesáhne velikost atlasu, tak se automaticky sníží detail, aby se tam vešel.
Tady by asi bylo korektní spíš ten cluster rozbíjet, ale takhle se to zatím chová.
Takže alternativa by byla zvětšit velikost atlasu, ale nevím jak moc ok by bylo mít 4k lightmapy...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 5. únor 2017, 19:56:23    Předmět: Odpovědět s citátem

mar napsal:
VODA napsal:
Ještě takový dotaz, ty vrcholy ve výstupním souboru asi nejsou ve stejném pořadí, jako v obj, viď?

Ano, nemusí to tak být. Při konverzi do jiného systému myslím prohazuji winding + importér může zahodit některé degenerované trojúhelníky (i když ty tam asi mít nebudeš).

Jinak nic za to nechci, budu rád, když se to bude hodit (bude mi úplně stačit, když sem pak postneš třeba nějaký screenshot, až to budeš testovat v enginu, i kdyby ten výsledek nebyl dobrý)

A i kdyby ne, tak díky tomu jsem si opravil jeden bug, kdy mi to negenerovalo binárně shodné výsledky ve více vláknech
a druhý byl dokonce heap corruption v optimalizaci atlasu.

Každopádně u thekly mě ani tak netrápí, že mají lepší využití v atlasu, jako to, že mají mnohem lepší clusterování.
Já používám primitivní clusterování podle maximální komponenty normály.

Nechci mírnit tvé nadšení, uvidíš sám. Někdy ty seamy jsou dost vidět a nevypadá to dobře, záleží taky na typu geometrie.
Zkoušel jsem třeba nějakou lowpoly jeskyni a vypadalo to špatně. Plochý terén nebo ostré plochy jsou ok.

Každopádně by mělo být možné to částečně kompenzovat zmenšením velikosti texelu u lightmapy; tady ještě jedna drobnost: pokud nějaká group (cluster) přesáhne velikost atlasu, tak se automaticky sníží detail, aby se tam vešel.
Tady by asi bylo korektní spíš ten cluster rozbíjet, ale takhle se to zatím chová.
Takže alternativa by byla zvětšit velikost atlasu, ale nevím jak moc ok by bylo mít 4k lightmapy...

Ok, to je v pohodě, prostě si to načtu z toho výstupu a upravím podle potřeb, stejně tam nic jiného než pozici vrcholu, normálu a UV souřadnice nemám.

Tak když nic nechceš, tak Ti napíši do Sollertie poděkování. A až bude alfa, tak pošlu.

To je dobře, že to mělo tento "opravující" efekt. Nedávno se mi stalo něco podobného. Dával jsem Spytihněvovi vyzkoušet aktuální build Sollertie a nešlo mu to sputit. Pak jsem zjistil, že z nějakého záhadného důvodu všude přibaluji 64bit verzi SDL2, přestože má aplikace je 32bit. Windows 10 bohužel nenapsal žádnou srozumitelnou hlášku, až na XPčkách jsem zjistil, že mám jinou bitovou verzi. Wink

Třeba časem přijdeš na lepší způsob clusterování. Nicméně, tak jak to máš to bohatě stačí. Smile

S těmi švy si nedělej hlavu, kdyžtak trochu zahýbu s texturovacími souřadnicemi, aby se vizuálně potlačily.

Tak ještě jednou děkuji a až budu mít nějaké screeny, tak určitě ukáži.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 20:27:33    Předmět: Odpovědět s citátem

Tak jsem to zabudoval do enginu a zkusil na nějakých testovacích scénách. A je to 50/50. Některé objekty jsou velice pěkně vypočtené. Kulatější objekty bohužel zas trpí (jak už tu padlo) problémy se švy. Mám v plánu tedy texturovací souřadnice lehce posunout, aby se švy vykompenzovaly. Mělo by stačit posunout cca o půl texelu.

Možná bys mohl časem aplikaci modifikovat tak, aby se vypočtené texely uložily s alfou 1, zbytek s 0. A pak floodfilem distribuovat texely hran do okolí. Tím by se švy potlačily.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 6. únor 2017, 20:31:31    Předmět: Odpovědět s citátem

Hmm, toho jsem se bál.

UVčka jsou už o půl texelu posunutá, kvůli tomu, že to tak posouvá driver.

Tím, co navrhuješ, se bohužel nic nevyřeší (mimochodem 1-texelový obal okolo okrajů clusteru už dělám - kvůli MSAA).

Problém je ten, že ty švy jsou prostě diskontinuity v uv (v lightmap space), takže posunutím se nic nevyřeší.

EDIT: můžeš zkusit parametr -t a zmenšit velikost lightmap texelu? a hlavně, můžeš postnout nějaký screenshot?
ještě můžeš zkusit zvýšit parametr -g, jestli to aspoň trochu nepomůže.
Poslední věc, co mě napadá, je že bys prostě kulaté objekty udělal stávající vertex metodou.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 20:53:10    Předmět: Odpovědět s citátem

mar napsal:

Tím, co navrhuješ, se bohužel nic nevyřeší (mimochodem 1-texelový obal okolo okrajů clusteru už dělám - kvůli MSAA).

Mně se zdá, že ten okraj je ale bílý a proto tam vznikají ty švy. Kdyby na okraji byly pixely "ze vnitřku" trojúhelníku, tak by se vizuálně potlačilo. Ano, z blízka by stejně byly švy vidět.

Tady na tom obrázku je to vidět, kolem každé groupy je bílý okraj:



Jinak výsledek z této lightmapy je zrovna moc krásný, ale je to tím, že lightmapa je 2048x2048 a model malinký:



Ale aby sis nemyslel, je to pořád perfektní a nikdo jiný mi nebyl schopen takhle skvěle pomoci. Smile
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 6. únor 2017, 21:09:07    Předmět: Odpovědět s citátem

Hmm, to vypadá spíš na nějaký bug, protože kraje lightmap mi normálně sedí dobře (když zapékám světlo) - navíc 2d projekci do lightmap space na hranách clusterů upravuji,
abych nepřelezl ven (plus offsetuji dovnitř).
Ale taky jsem si všimnul, že to je nějak divně světlé na krajích.

Mohl bys ještě zkusit vypnout blur (parametr -b) a zvýšit počet samplů (-s) řekněme na 2048? Sice to pak bude trvat výrazně dýl a bude to víc šumět, ale... Vlastně z té lightmapy to vypadá, že už jsi přesně toto udělal Smile

Zkusím se na to podívat. V té lightmapě jsou opravdu vidět bílé okraje, takže to bude problém v něčem jiném. Děje se něco špatného na krajích clusterů.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 21:15:37    Předmět: Odpovědět s citátem

Používám jen 32 samplů, protože to bohatě stačí. Ale zkusím dát více. Uvidíme.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 21:28:19    Předmět: Odpovědět s citátem

Zajímavý je následující příklad. Žádné švy, přestože je objekt na lightmapě dosti fragmentovaný:



_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 6. únor 2017, 21:38:29    Předmět: Odpovědět s citátem

Mohl bys zkusit novou verzi? Něco jsem opravil. Link je stejný jako předtím.

Stejně se mi ale ty výsledné lightmapy na okrajích clusterů nezdají, mělo by to po fillu okrajů vypadat jinak... Ještě zapátrám.

Každopádně tahle nová verze (1.1) už mi světlé okraje nedělá.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 22:00:14    Předmět: Odpovědět s citátem

Paráda, švy už nejsou skoro vidět. Takhkle se mi to líbí. Smile
Jsi borec!





Tak, ještě dodělat ten export a budu maximálně spokojený. Fakt za to nic nechceš?
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 6. únor 2017, 22:15:08    Předmět: Odpovědět s citátem

Opravdu ne. Já tam ty švy vidím pořád a hlavně ty s tmavými okraji jsou hnusné. Navíc se mi zdá žes vypnul linear filtering?

Já ještě spokojený nejsem.

Mohl bys mi prosím někam uploadnout tu scénu s teapoty včetně commandline parametrů?

Doufám, že do alfy Sollertie ještě něco vylepším.
Hmm, ale když přimhouřím obě oči tak to snad nevypadá až tak strašně Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 22:29:45    Předmět: Odpovědět s citátem

Mám akorát debug obj z exporteru. Je to tedy přesně to, co vylezlo z AOGenu, ale v OBJ -> takže obsahuje duplicitní vrcholy/texturovací souřadnice, normály. texturovací souřadnice jsou ty sekundární (pro lightmapu)
http://vodasoft.xf.cz/repos/limap/gaia_export.obj

Command: AOGen.exe -f -a 2048 -t 0.25 -d 30.0 -s 32 -u <input.obj> <output.txt>

Délka parsku - 30 - u mé scény znamená 30 cm. Scéna je v cm.

Pro mě je to super. Ta scéna z teapoty je moc blízko. Až bude cca 2x-3x oddálená, tak tam ty švy neuvidíš. Ale nebudu se zlobit, když si s tím ještě pohraješ. A neboj, alfa Sollertie bude nejdřív za půl roku. Nemám na to moc čas... ale snažím se (a snažím se plánovat).
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 6. únor 2017, 22:44:34    Předmět: Odpovědět s citátem

Ok díky, to by mi mělo stačit, akorát budu muset flipnout normály.

Mimochodem s tím exportem, jak moc by ti pomohlo, kdybych to ještě trochu upravil a uložil ti řekněme ke každému vertexu
v trojúhelníku původní vertex index (sekvenční jak jdou v obj po sobě, ne původní vertex index pro face) ve stupním obj?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 6. únor 2017, 23:00:10    Předmět: Odpovědět s citátem

Myslím, že to nebudu potřebovat. Já si to už zoptimalizuji v exporteru, vyházím duplicity, reindexuji facy, meshe rozdělím na submeshe, aby mohl mít jeden mesh více lightmap, atp.

Spíš by mě zajímal popis atributu Lightmap texel size. Udává, jak velký bude texel po aplikaci textury na mesh? Nebo to chápu špatně?
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 6. únor 2017, 23:10:25    Předmět: Odpovědět s citátem

V podstatě ano, je to jakou plochu pokryje texel v lightmapě, resp.
texel size je kolik jednotek bude mít rozměr texelu v lightmapě.

Tzn. pokud je měřítko metr a texel size je 0.25, bude texel v lightmapě odpovídat (zhruba) 25 x 25 cm

Samozřejmě vzhledem ke clusterování toto platí pouze pro axial normály. U šikmých trojúhelníků se to lehce zdeformuje a bude tam trochu skew.

EDIT: tzn. čím menší texel size, tím větší detail lightmapy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6, 7  Další
Strana 2 z 7

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna