Nape 2 — Единицы измерения. Плотность не ок

Недавно решая одну задачу (я еще напишу о ней) в Nape, некоторые значения ну очень не сходились и у меня закралось смутное сомнение.
Я знаю, что Nape использует систему СИ (или еще МКС — метр, килограмм, секунда).
То есть, получается, что:
1 метр = 1 пиксель
скорость = пиксель/секунду
ускорение = пиксель / секунду в квадрате

Тут вроде все ок. Но вот что касается плотности то тут не ок.

Плотность оказывается равна НЕ килограмм/пиксель в квадрате (в реале кг/м^3), а грамм/пиксель в квадрате.
Лука объяснил это так: «причина в том, чтобы иметь маленькую плотность типа ’1′ и при этом иметь приемлемую массу вместо того, чтобы иметь значения таких плотностей типа ’0.0001′ «.

Получается если у вас есть прямоугольное тело с размерами 500х50 (м), плотность которого 1, то площадь его 25000 м^2, и масса 25кг (!), а не тонн.
Я не доганяю почему это надо было делать?
Если мы и так оперируем в системе СИ, то для чего вылазить за ее рамки?
Только для того, чтобы нам было удобно задать плотность типа 0.0001?
Где такая плотность будет применяться, в каких играх?
Если даже плотность воды = 1 г/см^3 (1000кг/м^3).

Может быть для того, чтобы меньше силы/импульсы прилагать к телам? (помнится мне, что в старом Nape было все «честно» — такой же объект имел бы массу 25 тонн и надо было прилагать к телу импульсы 6-8 значными значениями, для того, чтобы оно сдвинулось с места. Но разве это проблема? Зато мы знали, что и как.)

А может быть это и не имеет никакого значения и так более удобней: плотность начинается с 1, импульсы вместо 100000000 только 1000.
И все значения по старинке подбираются руками :)

Если кто захочет сделать симуляцию «по всем правилам» должны учитывать этот факт.

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus
  • tananuka

    подскажите пожалуйста настройки материалов для дерева, железа, пластмассы (elasticity, dynamicFriction, staticFriction, density, rollingFriction)

    • VirtualMaestro

      Если имеется ввиду в контексте Nape, то в нем уже есть по-умолчанию дерево и сталь (небольшая разница с железом) — Material.wood() и Material.steel().
      Для пластмассы нашел такие значения — 0.68, 0.31, 0.45, 1.2, 0.002

      Надо понимать что эти параметры (в контексте Nape) очень, очень приблизительные и симуляция упрощенная, так как в реальных условиях взаимодействие материалов куда сложнее.

      • tananuka

        пасибо

      • tananuka

        спасибо, а как это статическое и динамическое трение?

        • VirtualMaestro

          Статическое и динамические трение это некая сила, которая проявляется при взаимодействии двух материалов.

          Статическое трение происходит между двумя не двигающимися объектами. Оно выражается как сила, которая предотвращает скольжение одного объекта на другом. Например, есть у вас блок который лежит на наклонной поверхности.
          Сила которая не дает блоку скользить по этой поверхности и есть выражение статического трения.

          Динамическое трение происходит между двумя объектами, которые двигаются.
          Это сила, которая затрудняет толкание тяжелой коробки по полу. Другими словами, это сила, которая пытается вернуть двигающийся объект в состояние покоя.

          Еще как пример этих двух сил можно привести такой пример.

          Есть тяжелая коробка, которая лежит на какой то поверхности. Она находится в состоянии покоя и ее пытаются сдвинуть. Как раз в этот момент и действует статическая сила и обычно надо приложить больше сил (чем при динамическом трении), чтобы победить статическое трение и заставить коробку двигаться.

          А когда коробка начала двигаться теперь в работу вступает динамическое трение, которое пытается вернуть ее в состояние покоя. В этом случае надо прилагать гораздо меньше усилий, чтобы поддерживать объект в движущемся состоянии.

          Надо помнить, что статическое трение всегда выше динамического.

          • tananuka

            благодарю!