Novinky, plány

10.6.2003

  • Vydána zrekonstruovaná CD (originály byly poškozeny nevhodným uchycením k deskám displomky).
  • Obsahují navíc demo Realtime Radiosity 3: Monte Carlo.
  • Aktualizovaný RR engine pracuje odděleně s r/g/b komponentami.

    13.12.2000

  • Publikováno Interaktivní globální osvětlení v komplexních scénách (PDF, 3.5MB) shrnující dosavadní výsledky. Práci doprovázejí kompletní zdrojáky.
  • V lednu budu o radiositě v dynamických scénách referovat na speciálním semináři o počítačové grafice (úterý 9.1, 15.40, Malostranské náměstí, Matfyz, třetí patro, S4).
  • 29.1. nebo 30.1. budu práci (diplomku) obhajovat.

    24.10.2000

  • Pořídil jsem si 3D akcelerátor... stálo hodně času vyřešit všechny problémy spojené s jeho rozchozením, ale konečně to jakžtakž funguje a můžu se vrátit ke skutečné radiozitě.
  • Trochu mě zaskočilo, že diplomku musím odevzdat už 15.prosince a ne nějaký čas před obhajobou v únoru. Počítám tedy, že k ní místo úplné implementace toho o čem bude řeč přiložím jen nějaké prográmky demonstrující, že to jde a zbytek dodělám později.
  • Jinak zatím mám ostré stíny z bodového zdroje světla a začínám z nich skládáním vyrábět měkké stíny. Skládání obrazů pomocí potenciálně přesnějšího accumulation bufferu moje karta neumí hardwarově, takže jako alternativu používám blending. Úkoly jsou: spočítat osvětlení od primárních zářičů (hned jak bude přinesu ukázku), eliminovat řadu artefaktů a chyb v obraze, prosté primární osvětlení rozšírit na globální, optimalizovat, optimalizovat, optimalizovat...

    16.9.2000

  • Implementoval jsem inkrementální výpočet v dynamických scénách zhruba v podobě jak jsem ho popsal na začátku práce před 10 měsíci (střílím vhodné množství paprsků z nejvýznamnějších statických zářičů na pro ně nejvýznamnější dynamické objekty). Při zastavení dynamického objektu se kvalita zvyšuje. Výsledky jsou podle očekávání dobré jen ve speciálních scénách (jednoduché scény s nesvítivými dynamickými objekty), v nich by ale byly stejně dobré nebo lepší analytické metody. Od teď se zaměřuji zejména na zrychlení výpočtu nad statickou scénou, kde vidím ještě velkou rezervu (viz níže), inkrementální updaty přitom jako menší přínos můžu teoreticky rozebrat, ale implementovat je už pravděpodobně nebudu.
  • Zásadní zvýšení kvality a minimalizaci vlivu velikosti scény na rychlost by mělo přinést vhodné využití 3D akcelerátorů, momentálně zkoumám metodu založenou na alpha testu a accumulation bufferu v OpenGL. Je možné, že podobnou techniku už někdo použil, zatím jsem ale viděl jen o třídu pomalejší řešení.
  • Scény načítá ReDox z 3DS včetně drah objektů, materiály z MGF, pracuje na načítání celých MGF scén. Struktura použitá při výpočtu průsečíku paprsku se scénou zůstává BSP strom. Výpočet osvětlení probíhá nad trojúhelníky původní scény, trojúhelníky nasekané BSP stromem už nikde nefigurují.
  • ReDoxův zobrazovací subsystém nyní podporuje barevné difuzní plochy a 1 zrcadlo ve scéně, DOS/Windows/Linux, vše bez 3D akcelerátoru. Plánované akcelerované řešení bude vyžadovat OpenGL a zobrazovat i primární odlesky.
  • Můj současný plán na posledních několik měsíců před obhajobou je implementovat akcelerovaný výpočet a pokud to stihnu, vhodně ho zkombinovat se současným střílením paprsků (pokud ne, pouze spojení popsat). Dynamika bude pravděpodobně realizována pouze jako sled statických scén. Částečné zrychlení implementací inkrementálních updatů akcelerovaného řešení už je mimo mé časové možnosti.

    7.6.2000

  • Za zmínku stojí nasazení vyvíjeného enginu v praxi - poprvé byl použit k předpočítání statického osvětlení v ReDoxově demu Pinokijo, na demoparty Avalcon 2000. Pinokijo ve verzích pro DOS/Windows/Linux je ke stažení na movsd.scene.cz. Realtime zobrazení dynamické scény bude poprvé vidět v demu na demoparty Fiasko 2000 v srpnu.
  • Ukázalo se, že nepravidelné rozsekání některých polygonů při generování BSP stromu je přes všechnu snahu při interpolaci příliš vidět (výpočty radiozity probíhají nad nasekanými polygony). Bude nutné počítat nad původní scénou, k tomu je třeba značných změn... a pravděpodobně rovnou volba a implementace jiné datové struktury pro výpočet průsečíku se scénou (podle BES Projectu na mě nejlépe působí KD tree). BSP strom ovšem není použit jen k počítání průsečíku, ale i k efektivnímu softwarovému renderingu. Načítání scén z jiných formátů je pak bohužel nutné odložit až za vyřešení všech těchto problémů.
  • S ReDoxem prioritně pracujeme na dynamických objektech, viz slíbená prezentace na Fiasku 2000.

    12.4.2000

  • cpoc udělal podporu OpenGL (cpoc - viz. Autoři).
  • Přepsal jsem hledání průsečíku se scénou (průchod BSP stromem, průsečík s trojúhelníkem), program je teď ve scéně s 66 trojúhelníky 2x rychlejší, na větších scénách ještě víc.
  • Snížil jsem spotřebu paměti postupně až na pětinu a přepsal některé rutiny z O(n^2) na O(n), všechno připravuji na velké scény (pro začátek sto tisíc trojúhelníků).
  • Do popředí todo listu se dostalo rozšířit/změnit vstupní formát, aby šlo načítat známé scény a porovnat na nich kvality našeho a konkurenčních programů.

    22.3.2000

  • INTERPOLACE: Uvědomil jsem si, že interpolace není jen trik na zlepšení výsledků, ale neoddělitelná součást problému; nelze ji nechat na libovůli zobrazovacího subsystému. Takže pro zobrazovací subsystém počítám vhodné hodnoty ve vrcholech subtrianglů, ReDox je zobrazuje. Interpolace několikanásobně snižuje náhodný šum ve výsledcích.
  • CLUSTERY: Rozšířil jsem hierarchii plošek o clustery - množiny blízkých, podobně orientovaných trojúhelníků, které mohou přijímat a vysílat energii společně jako jediná ploška (je to efektivnější). Clustery zatím tvoří jen jednu vrstvu, později počítám s hierarchií menších a větších clusterů. Zatím se taky uplatňují jen při střílení energie do scény, později přidám i zachytávání energie ze scény. Použití clusterů typicky dvakrát zrychluje výpočet a dvakrát zvyšuje šum ve výsledcích. Vyšší šum se ovšem eliminuje interpolací, zůstává vyšší rychlost.
  • LIGHTMAPY: Dosud se při překreslování scény na obrazovce zobrazoval každý subtriangl zvlášť. Jejich počet ovšem neustále roste a zobrazování se neúnosně zpomaluje. ReDox proto zavedl pro každý trojúhelník lightmapu - texturu vyjadřující světlost. Lightmapy stačí aktualizovat jen při změně osvětlení ve scéně (typicky po zpřesnění konfiguračních faktorů), což nebývá moc často. Při procházení scénou se pak zobrazují už připravené lightmapy.
  • Zdrojáky měly minule asi 70KB, teď 140KB (ReDoxův generátor BSP stromů jako samostatný program nepočítám).
  • Nahoru jsem přidal galerii a dolů na stránku pro srovnání nové obrázky staré scény, jinak se opět nic nezměnilo.
  • Aktuální todo list (od nejbližších úkolů až po ty, na které možná nikdy nedojde):
  • První dynamické objekty budou nejdřív za měsíc, ale možná taky za dva... a pokud dřív zjistím jak analyticky počítat faktory, dostanou ty přednost.

    24.1.2000

  • ReDox udělal procházení scénou a její reprezentaci BSP stromem, průsečík paprsku se scénou je teď tedy v čase O(log(n)).
  • Obraz průběžně zpřesňuji během procházení scénou, není už žádná konstanta určující kvalitu.
  • Podle potřeby dělím i zářiče, dříve svítil vždy celý triangl rovnoměrně.
  • Paměti stačí několikrát méně, dál už to ale zlepšit nepůjde a s dynamickými objekty nároky zase mírně porostou. Mých 32MB se vyčerpá po řádově stovkách sekund neustálého zpřesňování statické scény, kvalita v tu chvíli už je ovšem dobrá.
  • Dolů na stránku jsem přidal pár nových obrázků, jinak se nic nezměnilo.
  • Můj plán pro následující měsíc je implementovat dynamické objekty.

    20.12.1999

  • Přibylo několik kapitol (Výpočet konfiguračních údajů, Zobrazení scény, Výsledky), k dispozici jsou první obrázky ze statické scény.
  • ReDox udělal zobrazování scény, já první funkční výpočet globálního osvětlení v pevně zadané kvalitě.
  • Na nejbližší týdny plánuji průběžné zkvalitňování statické scény, divák se bude moci během počítání procházet scénou. Dosud nešlo během výpočtu nic dělat, nebyly ani vidět mezivýsledky. Dalším krokem bude implementace dynamických objektů tak, jak jsem je popsal v kapitole dynamika scény.

    2.12.1999

    Vznik této stránky.