Динамическое моделирование и физические движки: принципы и применение.
Dynamical simulation
Динамическое моделирование в физике: симуляция движения объектов по законам Ньютона. Применение в анимации, играх, промышленных расчетах и физических движках.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Динамическое моделирование в вычислительной физике — это симуляция систем объектов, способных свободно перемещаться, как правило, в трех измерениях в соответствии с законами динамики Ньютона или их приближениями. Динамическое моделирование применяется в компьютерной анимации для помощи аниматорам в создании реалистичного движения, в промышленном дизайне (например, для симуляции столкновений на ранних этапах краш-тестов) и в видеоиграх. Расчет движения тел осуществляется с использованием методов временной интеграции.
Dynamical simulation, in computational physics, is the simulation of systems of objects that are free to move, usually in three dimensions according to Newton's laws of dynamics, or approximations thereof. Dynamical simulation is used in computer animation to assist animators to produce realistic motion, in industrial design (for example to simulate crashes as an early step in crash testing), and in video games. Body movement is calculated using time integration methods.
Физические двигатели
В компьютерных науках программа, называемая физическим движком, используется для моделирования поведения объектов в пространстве. Эти движки позволяют проводить симуляции воздействия на тела различных типов разнообразных физических факторов. Они также применяются для создания динамических симуляций, не требуя специальных знаний в области физики. Физические движки широко используются в индустрии видеоигр и кино, однако они не все одинаковы. Обычно их разделяют на движки реального времени и высокоточные, но это не единственные возможные варианты. Большинство движков реального времени не отличаются высокой точностью и предоставляют лишь самое грубое приближение к реальному миру, в то время как большинство высокоточных движков слишком медленны для повседневного использования. Для понимания принципов построения этих движков необходимо базовое знание физики. Физические движки основаны на реальном поведении мира, описанном классической механикой. Обычно они не учитывают современную механику (см. теорию относительности и квантовую механику), поскольку большинство визуализаций имеют дело с крупными объектами, движущимися с относительно небольшой скоростью, однако наиболее сложные движки выполняют вычисления и для современной, и для классической механики. Точность динамических симуляций определяется используемыми в них моделями.
In computer science, a program called a physics engine is used to model the behaviors of objects in space. These engines allow simulation of the way bodies of many types are affected by a variety of physical stimuli. They are also used to create Dynamical simulations without having to know anything about physics. Physics engines are used throughout the video game and movie industry, but not all physics engines are alike. They are generally broken into real time and the high precision, but these are not the only options. Most real time physics engines are inaccurate and yield only the barest approximation of the real world, whereas most high precision engines are far too slow for use in everyday applications. To understand how these Physics engines are built, a basic understanding of physics is required. Physics engines are based on the actual behaviors of the world as described by classical mechanics. Engines do not typically account for Modern Mechanics (see Theory of relativity and quantum mechanics) because most visualization deals with large bodies moving relatively slowly, but the most complicated engines perform calculations for Modern Mechanics as well as Classical. The models used in Dynamical simulations determine how accurate these simulations are.
Модель частиц
Первая модель, которую можно использовать в физических движках, описывает движение бесконечно малых объектов с конечной массой, называемых частицами. Это уравнение, известное как второй закон Ньютона (см. Законы Ньютона) или определение силы, является фундаментальной закономерностью, управляющей любым движением:
The first model which may be used in physics engines governs the motion of infinitesimal objects with finite mass called “particles.” This equation, called Newton’s Second law (see Newton's laws) or the definition of force, is the fundamental behavior governing all motion:
Это уравнение позволит нам полностью смоделировать поведение частиц, однако этого недостаточно для большинства симуляций, поскольку оно не учитывает вращательное движение твёрдых тел. Это простейшая модель, применимая в физическом движке, и она широко использовалась в первых видеоиграх.
This equation will allow us to fully model the behavior of particles, but this is not sufficient for most simulations because it does not account for the rotational motion of rigid bodies. This is the simplest model that can be used in a physics engine and was used extensively in early video games.
Инерциальная модель
Тела в реальном мире деформируются под воздействием сил, поэтому мы называем их "мягкими", но часто деформация пренебрежимо мала по сравнению с движением, и её очень сложно моделировать, поэтому большинство физических движков игнорируют деформацию. Тело, которое считается недеформируемым, называется жёстким телом. Динамика жёстких тел изучает движение объектов, которые не могут изменять форму, размер или массу, но могут изменять ориентацию и положение. Для учёта энергии вращения и момента импульса необходимо описывать способ приложения силы к объекту с помощью момента и учитывать распределение массы объекта с помощью тензора инерции. Мы описываем эти сложные взаимодействия уравнением, несколько напоминающим определение силы:
Bodies in the real world deform as forces are applied to them, so we call them “soft,” but often the deformation is negligibly small compared to the motion, and it is very complicated to model, so most physics engines ignore deformation. A body that is assumed to be non deformable is called a rigid body. Rigid body dynamics deals with the motion of objects that cannot change shape, size, or mass but can change orientation and position. To account for rotational energy and momentum, we must describe how force is applied to the object using a moment, and account for the mass distribution of the object using an inertia tensor. We describe these complex interactions with an equation somewhat similar to the definition of force above:
где – центральный тензор инерции, – вектор угловой скорости, а – момент j-й внешней силы относительно центра масс. Тензор инерции описывает положение каждой частицы массы в данном объекте относительно центра масс этого объекта. Это позволяет нам определить, как объект будет вращаться под воздействием приложенных сил. Это угловое движение количественно определяется вектором угловой скорости. Пока мы остаёмся ниже релятивистских скоростей (см. Релятивистскую динамику), эта модель будет точно моделировать всё существенное поведение. Для этого метода физическому движку необходимо решать шесть обыкновенных дифференциальных уравнений в каждый момент времени, который мы хотим отрисовать, что является простой задачей для современных компьютеров.
where is the central inertia tensor, is the angular velocity vector, and is the moment of the jth external force about the mass center. The inertia tensor describes the location of each particle of mass in a given object in relation to the object's center of mass. This allows us to determine how an object will rotate dependent on the forces applied to it. This angular motion is quantified by the angular velocity vector. As long as we stay below relativistic speeds (see Relativistic dynamics), this model will accurately simulate all relevant behavior. This method requires the Physics engine to solve six ordinary differential equations at every instant we want to render, which is a simple task for modern computers.