Ich habe mal ein paar Tests mit 32-Bit-Floats gemacht.
Es existieren beispielsweise 1065353218 32-Bit-Floats zwischen 0 und 1.
Man bemerke, dass dies bereits ein
Viertel der überhaupt darstellbaren Float-Zahlen ist! Das heißt: die
Hälfte (!) aller überhaupt möglichen 32-Bit-Float-Zahlen liegen zwischen -1 und +1.
|
Quellcode
|
1
2
3
4
|
0 bis 1: 1065353218
0 bis 10: 1092616194
0 bis 100: 1120403458
0 bis 1000: 1148846082
|
Wie man sieht, ändert sich an der Anzahl der dazwischen liegenden Zahlen kaum etwas, wenn man die obere Grenze verschiebt.
Jetzt mal ein realistisches Beispiel mit den Clipping-Planes... Wir haben die Werte 0.1 und 1000. Da es Grafikfehler gibt, verringern wir die 1000 auf 900:
|
Quellcode
|
1
2
|
0.1 bis 1000: 112014132
0.1 bis 900: 110375732
|
Keine merkliche Änderung der Zahlen, die dazwischen liegen!
Je größer dieser Wert, desto kleiner ist die Genauigkeit, da sich genau so viele Zahlen die 24 oder 32 Bits des Z-Buffers aufteilen müssen.
Jetzt ändern wir statt der 1000 mal die Near-Plane von 0.1 auf 0.2:
|
Quellcode
|
1
2
|
0.1 bis 1000: 112014132
0.2 bis 1000: 103625524
|
Wie man sieht, ist die Anzahl viel stärker zurückgegangen, obwohl wir nur eine Änderung von 0.1 vorgenommen haben, und zuvor ganze 100. Und zwischen 0.5 und 1000 liegen schon nur noch 91881473 Floats.
Besonders beeindruckend:
Zwischen 10 und 1000 liegen ungefähr
halb so viele Float-Zahlen wie zwischen 1 und 1000.