Показать сообщение отдельно
Старый 02.04.2013, 12:49   #5
Fockerian
Оператор ЭВМ
 
Регистрация: 10.07.2011
Сообщений: 30
Написано одно полезное сообщение
Ответ: Стандарт процессора IEEE 754

Сообщение от SBJoker Посмотреть сообщение
Судя по всему это самый распространенный формат представления чисел с плавающей запятой. Поэтому встречный вопрос топик-стартеру: откуда информация что сейчас Юнити оперирует другим представлением?

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

По поводу программной эмуляции, если ее реализовать расчет float будет осуществляться в десятки раз медленее чем если расчет будет идти на аппаратном уровне.

Поэтому единственный вариант решения проблемы с float который сейчас я вижу это заставить работать программно процессор по стандарту IEEE 754.
(Offline)
 
Ответить с цитированием