Punkt zmiennoprzecinkowy zawsze był kłopotliwy z powodu precyzji na dużych światach.
Ten artykuł wyjaśnia za kulisami i oferuje oczywistą alternatywę - numery punktów stałych. Niektóre fakty są naprawdę imponujące, takie jak:
„Cóż, 64 bity precyzji pozwalają dotrzeć do najdalszej odległości Plutona od Słońca (7,4 miliarda km) z dokładnością poniżej mikrometra”.
Dokładność submikrometrowa jest większa niż jakakolwiek potrzeba fps (dla pozycji, a nawet prędkości), i pozwoliłaby ci budować naprawdę duże światy.
Moje pytanie brzmi: dlaczego nadal używamy zmiennoprzecinkowego, jeśli punkt stały ma takie zalety? Większość interfejsów API renderowania i bibliotek fizyki korzysta z liczb zmiennoprzecinkowych (i ma to swoje wady, więc programiści muszą się obejść).
Czy są o wiele wolniejsze?
Ponadto, jak twoim zdaniem skalowalne silniki planetarne, takie jak outerra czy infinity, radzą sobie z dużą skalą? Czy używają stałego punktu dla pozycji, czy mają jakiś algorytm podziału przestrzeni?