Все уравнения, которые мы только что рассмотрели, легко можно применить и для многомерных моделей. Взгляните на наше первое кинематическое уравнение:
dx
Если х - расстояние, пройденное вдоль оси х в двумерной декартовой системе координат, то это уравнение описывает скорость движения материальной точки вдоль оси х, как показано на рисунке 7.8. Движение вдоль оси у можно рассматривать независимо от движения вдоль оси х:
Если нам нужно работать в трех измерениях, точно так же можно записать и скорость движения вдоль оси z:
dz
А теперь подумаем. Если v - вектор, компоненты которого в 2D есть (vx, vy), а вектор х - вектор с компонентами (х, у), то можно объединить два уравнения:
dx
v= — dt Эти уравнения выражают скорость, ускорение и силу в виде векторов. Вы можете спросить: «Ну и что?»
Дело в том, что при программировании ЗБ-сцен, содержащих множество движущихся объектов, часто можно просчитывать движение объектов, воспринимая их как материальные точки. Такое упрощение позволяет очень просто находить линейную скорость и ускорение каждого объекта, а также силы, действующие на них. Если скорости, ускорения и силы можно представлять в виде векторов, то их можно представлять и в виде матриц.
И опять вы можете спросить: «Ну и что?»
Вспомните, что все ЗБ-объекты в программах представляются в виде сетчатых моделей, представляющих собой совокупности вертексов. Когда объект двигается в ЗБ-сцене, двигаются все вертексы его модели. Это значит, что игра должна применять концепции скорости, ускорения и силы к каждому вертексу в модели. А ведь сложные модели состоят из сотен тысяч треугольников - и каждый треугольник состоит из трех вертексов.Как же программа может рассчитывать движение каждого вертекса в таком сложном объекте?
А она этого и не делает. Программа воспринимает объект как материальную точку и использует векторы для представления сил, которые действуют на этот объект, чтобы вычислить его скорость и ускорение. Затем эти скорость и ускорение представляются в виде матриц. После этого перемещение всех вертексов в объекте сводится к операции матричного умножения для каждого вертекса - и объект движется реалистично, так же, как и в реальной вселенной.
Thursday, September 25th, 2008 | Author: admin
Category: ЗР-объекты
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
Leave a Reply
