Сообщение от SBJoker
Судя по всему это самый распространенный формат представления чисел с плавающей запятой. Поэтому встречный вопрос топик-стартеру: откуда информация что сейчас Юнити оперирует другим представлением?
(олсо поддержка на уровне процессора реализована, в случаях когда это не так, то идёт программная эмуляция)
|
Как я писал выше стандарт IEEE 754 дает возможность расчета Float на разных машинах с абсолютно одинаковой точностью,если Unity использует только его почему расчет Float на разных процессорах дает результаты отличные друг от друга? Эти данные я прочитал где то на официальном форуме юнити. Там ребята делали RTS сетевую. Друг другу через сервер они передавали только ввод,и симуляция игры шла у каждого на своей машине по отдельности. Они заметили, что позиции их юнитов после большого количества передвижений отличаются друг от друга. Копаясь в коде они пришли к выводу что виновато то самое число с плавающей точкой float,когда на разных процессорах шел расчет погрешность постепенно возрастала из за большого колличества умножений-делений-вычитаний float.
По поводу программной эмуляции, если ее реализовать расчет float будет осуществляться в десятки раз медленее чем если расчет будет идти на аппаратном уровне.
Поэтому единственный вариант решения проблемы с float который сейчас я вижу это заставить работать программно процессор по стандарту IEEE 754.