Скажем, я бросаю куб, и он падает на землю с поворотами 45, 45, 0 (на его углу). Теперь в «идеальном» мире куб не состоял бы из атомов, и он был бы «совершенным», не было бы ветра (или любого меньшего движения воздуха) и т. Д. И в конце куб остался бы на нем угол. Но мы не живем в таком скучном «идеальном» мире, и физики-эмуляторы должны учитывать это, и они довольно приятны. Таким образом, куб падает на его сторону.Есть ли случайный фактор в AwayPhysics или в физических двигателях вообще?
Теперь мой вопрос: насколько это случайность? Куб всегда падает на левую сторону? Или, может быть, это зависит от Math.random()? Или, может быть, это зависит от текущего времени? Или, может быть, это зависит от какой-то пользовательской случайной функции, которая занимает не время, а параметры объектов на сцене, так как это семя?
Почему я задаю этот вопрос, что если случайность не была основана на времени, я, вероятно, мог бы кэшировать результаты столкновений (когда объекты останавливаются) для их конкретной начальной позиции для оптимизации моей анимации? Если бы я кэшировал всю анимацию, мне было бы все равно, но если бы я только кэшировал конечный результат, я был бы удивлен, что две точно такие же ситуации могут оцениваться с разными результатами, а затем другая не будет соответствовать моей кешированной версии.
Я мог бы просто проверить источник для функций Math.random, но это был бы мелкий метод, поскольку код, безусловно, оптимизирован, и поскольку такая сложная рандомизация там не нужна, я лично буду использовать что-то вроде fallLeft = time% 2. Кроме того, код может меняться со временем.
Здесь ничего не найдено о AwayPhysics, так что, возможно, это что-то новое для всех - вот почему я добавил круглые скобки; мир не взорвется, если я возьму на себя одну вещь, и случается, что в AwayPhysics все наоборот, что же такое стандарт?
Я не понимаю одну вещь, почему угол изменяется из-за приближения? Math.floor (x) == Math.floor (x). –
Ну, представьте, что угол находится в радианах, поэтому 45 ° прямо вверх будет записано как π/4. Фактическое число π/4 имеет бесконечное количество цифр и поэтому не может быть записано или использовано компьютером. Вместо фактического числа (0,7853981634 ...) компьютер просто использует приближение (например, 0,7854). Это близко, но 0.7854 немного больше 0.7853981634 ..., поэтому куб только что находится под 45 °, и он падает. – mindoftea
О, так вы заявляете, что оно детерминировано, так как одна и та же система всегда будет сокращать число в одном месте, то есть 45 градусов всегда будут оценивать, например, 0,7853981634. Это совершенно верно! К сожалению, на форуме Away3D администратор сказал, что AwayPhysics (BulletPhysics), вероятно, не является детерминированным, поскольку они работают над тем, чтобы сделать структуру менее случайной. В конце концов, все зависит от библиотеки, я полагаю ... спасибо за ваш ответ. –