double
. Wraz z dodaniem korekcji gamma do sceny okazało się, że tektury najlepiej przechowywać po zdekodowaniu gamma. Z uwagi na błędy trzeba zrezygnować z bajtu jako pojemnika na składowe RGB i przejść na int
. Ponieważ w obliczeniach posługuję się liczbami z zakresu 0 do 1, tak że 0 to czerń, a jeden to biel naturalnym pojemnikiem okazał się float
. Przechowywanie tekstur na bajtach i ich dekodowanie w trakcie obliczeń okazało się wprowadzać znaczące spowolnienie renderowania. Przechodząc na
float
w teksturach, uznałem, że nie będę już ich nigdy przechowywał w bajtach i posłałem w otchłań odpowiednie bajtowe pojemniki. A w zasadzie skonwertowałem je na float
. Podobnie jak z pojemnikiem na teksturę postąpiłem z pojemnikiem na wartości (np. na mapę wypukłości). Zużycie pamięci wzrosło czterokrotnie ale ciągle jest to akceptowalne dla mnie. Być w może w przyszłości trzeba będzie przywrócić bajtowe pojemniki by oszczędzać pamięć kosztem prędkości renderowania.
No niejako przy okazji przeniosłem wszelkie obliczenia z
double
na float
. Jeśli chodzi o jakość renderowanych scen to jest ona bardzo podobna (plus minus 1/255 głównie w niektórych miejscach). Jeśli chodzi o prędkość to nie zmieniła się ona. I to jest zastanawiające.
Brak komentarzy:
Prześlij komentarz