Естественные науки

Чисто теоретически, в компьютерной игре можно сделать вселенную по размерам большую, чем наша реальная?

Считаем. Размеры игровой вселенной ограничены лишь переменной float. Верно? Которая может принимать значения от - 3.402823*10^38 до + 3.402823*10^38. Примем число 1.0 - за 1 игровой метр. Т. е. мы можем проделать путь от одного конца игрового мира к другому, равный: 6.805646*10^38 метров!!! Насколько это много? Ну к примеру разделим получившееся число, на количество метров в одном световом году.

6.805646*10^38 / 9 460 80 * 10^10 = 71 935 206 325 046 507 694 909 световых лет!

А теперь вспомним, что наша вселенная имеет диаметре чуть менее тридцати миллиардов световых лет.
Получается, что в теории, наши вычислительные мощности позволяют создать вселенную такого размера:

680 564 600 000 000 000 000 000 000 000 000 000 000 метров.

А если разделить это число на 100 или 10 000, то получим очень детализированную игровую вселенную где 1 ед. - это 1 мм или даже 1 мкм. Разумеется речь идет только о расстояниях, ибо ни у одного компа памяти не хватит переваривать геометрию и текстуры в такой вселенной. Я не ошибся в расчетах?
Алла Тю
Алла Тю
73 877
Ошиблись :) И не один раз.
1. Как уже написали в одном из ответов, размерность чисел ограничена лишь памятью компьютера и количеством объектов на сцене (которые между собой и делят эту память). Значит, если загнать в сцену 1 000 000 объектов, то и размер вселенной придётся уменьшить в 1000000^3 = 10^18 раз.
2. Даже если Вы возьмёте не float, а double, то Вы не сможете достигнуть точности в 39 десятичных знаков, ведь для этого надо больше чем 117 двоичных, а размер double всего 64 бита :) Даже у double точности хватит только на числа вдвое короче заявленного (разумеется это никак не влияет на максимальное значение, просто ближайшее число к максимальному, которое Вы можете записать во float, будет меньше не на 1, как Вы ожидаете, а на значение где-то с 20-ью ноликами)

Ну а на основании этих двух ошибок все остальные расчёты просто теряют смысл, потому что ни одно число более не является верным :)
Ольга Фесенко
Ольга Фесенко
42 958
Лучший ответ
Алла Тю Спасибо!) А я то смотрю, что-то и не получается сделать полноразмерную солнечную систему в Unity.
Ничего сложного. Просто присвоить переменной "ширина" значение 50 млрд. св. лет - и готово.
Нет, неверно. Существует такая штука -- вещественная арифметика с произвольной точностью (arbitrary-precision arithmetic). При её использовании размерность данных ограничена только памятью.

Но даже без неё размерность модели можно увеличить, если ввести дополнительные псевдокоординаты. Самый простой пример -- шахматная доска, каждая клетка которой опять-таки размечена как шахматная доска. И координаты имеют вид [a1; e2] -- находим клетку a1, а потом унутре ея ищем e2...
Какой-то бред.... Если честно.
У тебя "вселенная" уместилась в ограничение символов на "Ответах", "чисто теоретически" можно было бы и больше... если принять не метры, а КИЛОметры.... или мили... или....
Алла Тю Считал на пром. калькуляторе, вот и спрашиваю, не ошибся ли в расчетах.)
А квантовый компьютер такую вселенную потянет?
TT
Turkmenka Turkmenka
17 853
Алла Тю Полагаю тут даже сравнение не идет. Квантовый компьютер работает совершенно иначе и для комп. игр навряд ли чем-то будет лучше или быстрее обычных компов.
в игре можно вообще бесконечную вселенную сделать. либо зациклить, либо генерировать на ходу...

Похожие вопросы