пятница, 8 февраля 2013 г.

смещение координат точки

Теперь вы можете преобразовывать девять точек из локального пространства в мировое, как вы делали это ранее. После чего, точка 8 будет содержать координаты в мировом пространстве точки присоединения кости к родителю.

хесЬоса1Ро1псв[8] = хес11о1псОЕЕ8ес;

Вектор смещения соединения хранится в объекте ВЗБХУЕСКЖЗ, имеющем название уесТот1(Ж8е1, в то время как вектор родительского смещения хранится в уесРагегЛС^е!. Первое, что необходимо сделать, это сохранить вектор смещения соединения в соответствующем векторе локального пространства.

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

БЗБХУЕСТОРЗ хесЪоса1Ро1псв[9]; БЗБХУЕСТОРЗ хес1*)г1ОРо1псв[10] ;

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

Рис. 7.10. Каждая кость определяется размерами ограничивающего параллелепипеда и точкой соединения с родительской костью.

Вторая точка является смещением от центра родительской кости до точки соединения с родительской костью. Эта вторая точка, называемая точка родительского смещения (или просто родительское смещение), использует преобразования родительской кости для ориентирования, противодействуя преобразованию кости (как вы видели ранее). Вторая точка представляет собой другой конец создаваемой пружины для соединения костей.

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

Помните, ранее в этой главе, вы определили восемь векторов, представляющих собой углы твердого тела? Было два набора по восемь вершин, один для определения локальных координат, а другой для определения этих же самых точек в мировых координатах. Теперь вам необходимо добавить еще две точки в список.

Сначала о главном, вам необходимо узнать точки соединения костей. Когда вы создаете ограничивающие параллелепипеды, вам необходимо добавить точку, которая определяет место соединения параллелепипеда с параллелепипедом родительской кости. Вам также необходимо добавить точку, представляющую собой смещение от центра родительской кости до точки соединения. Эти две точки показаны на рис. 7.10.

Рис. 7.9. Пружины соединяют твердые тела в точках сочленения костей

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

Как вы можете видеть на рис. 7.9, пружины создаются для каждой точки соединения костей в исходной скелетной структуре.

В то время как скелетная структура соединяет кости, используя иерархию фреймов, твердые тела не могут позволить себе такой роскоши; тела полностью свободны и при моделировании перемещаются по всему миру. Необходимо что-то, что держало бы их вместе, и этим чем-то являются пружины.

Возвратимся к теме. Эти соединенные между собой твердые тела представляют собой кукольный персонаж. Вы знаете, как все устроено - кости кисти присоединены к руке, кость руки присоединена к .... Ну, вы поняли идею. Твердые тела соединяются между собой так же, как и кости в скелетном меше присоединяются к родительским костям (конечно, за исключением корневой кости).

Моделирование движения твердого тела и приложенных к нему сил является простой задачей, если вы понимаете основы. Когда же у вас соединяется множество тел, все усложняется. Каждое изменение ориентации твердого тела может вызвать изменения во множестве других тел. Если соединено множество твердых тел, обработка одного перемещения может вызвать обработку еще множества.

КомпанияPFuturemarkPсегодня официально представила свой новый тестовый пакет 3DMark 11, который предназначен для измерения производительности видеокарт с поддержкой DirectX 11. Бенчмарк использует все новые технологии DX11, включая тесселяцию, объёмное освещение, вычислительные шейдеры и многопоточные вычисления.

Так что, что делать для того что бы стать 3D исскуством? Большинстов людей, которые приступают к изучению 3D, уже имеють опыть в рисование...

Соединение твердых тел с помощью пружин

Комментариев нет:

Отправить комментарий