Saját fejlesztésű float rutinokkal (floatlib.c és float.s) már használhatóbb sebességű, ez 40:44 alatt fut le, a felbontás 42x27 EXOS karakter, azaz 336x243 pixel:
A float.s még nem tökéletes, kissé pontatlan (elsősorban az összeadás és kivonás), előfordulhatnak hibák, és a sebességen is lehetne tovább javítani. ![ds_icon_redface :oops:](/Smileys/phpbb/ds_icon_redface.gif)
Szia István!
Igazán szép munka, gratulálok! De szerintem ha sebességre hajtasz, majdnem egy nagyságrendet veszítesz két dolgon:
Az egyik, hogy túl nagy a számábrázolási pontosságod. Aláírom, hogy az én 9-bites mantisszám egy kicsit kevés (látszik, hogy zajos a renderelt kép), de egészen biztos vagyok benne, hogy 16 bit mantissza bőségesen elég ilyen felbontású raytracerhez, még a precíz kerekítgetéseket is megspórolhatod a sebesség érdekében. Te nagyjából 24 bites mantisszát használsz, ami itt teljesen indokolatlan.
A másik, hogy egyáltalán nem használsz táblázatokat, pedig azzal rengeteget lehet nyerni. Például egy négyzetszámtáblázattal rengeteget tudsz gyorsítani a szorzáson az
ab = [(a+b)² - (a-b)²] / 4
képlettel, vagy egy variációval ugyanerre a témára. S ha már a 8-bites szorzásod gyors, akkor abból össze tudod rakni a nagyobb (pl 16 bites) szorzást.