Optimeringer

Har tunet virtual nedarvning i objekter samt gjort stats-måleren mindre idiotisk. Min benchmarkscene beregnes nu på 1:23.

POSIX Threads

Har omsider fået implementeret multithreading i photonmapperen, hvilket giver 20% speedup på en P4 med hyperthreading. Har desværre ikke adgang til en ægte SMP-æske.

Jeg mangler at gøre selve raytraceren multithreaded. Dette er lidt mere tricky, da min shadowcache kode ikke er reentrant.

Fandt også ud af at bruge getopt til at parse commandline options med. Har allerede -v, -h og -j NUM på plads. Sidstnævnte angiver hvor mange POSIX threads der skal i sving.

Distributed rendering

Har planer om at kunne sprede en rendering ud på flere maskiner. Den mest almindelige metode bruges til animationer, hvor hver maskine regner på hver sin hele frame. Så vinder man dog ikke noget ved enkelt-billede beregninger, hvilket jeg laver mest af. Min plan er derfor, at lade flere maskiner beregne på hver sin delmængde eller tile af et helt billede. Der skal så bare laves en render-manager i noget simpelt shell-script, som gennem ssh fyrer tracer-processer afsted på de forskellige hosts og tilsidst kombinerer de resulterende tiles til eet billede.

Rendervirus

Når det er på plads, skriver jeg selvfølgelig hele lortet om i Visual Basic og omdøber alle filer til ".scr". Så kan jeg nemt få udvidet min renderfarm med et par millioner hosts, takket være Outlook Express' smarte facilitet til "ressource-deling".

Optimeringer II

Fiflede lidt med kd-træets udregning af min og max t-værdier. Benchmark-scenen renderes nu på 1:07.