5. Калашникова, Г.А. Публичный договор / Г.А. Калашникова [Текст] // Дис. ... канд. юрид. наук. - М.: 2002. - 207 с.
6. Костикова, С.Н. Некоторые спорные вопросы применения норм о публичном договоре в российском законодательстве /С.Н. Костикова [Текст] // Юридические науки. - № 1 (23). - 2007. - С. 91-94.
7. Левченко, О.С. Конструкция публичного договора: постановка проблемы / О.С. Левченко [Текст] // Общество и право. Научно-практический журнал. - 2008. - № 3 (21). - С. 115-117.
8. Савельев, А.И. Применение судами норм гражданского кодекса РФ о публичных договорах [Электронный ресурс] / Вестник гражданского права. - 2009. - № 4. Доступ из СПС «Консультант плюс».
9. Тотьев, К. Публичный договор / К. Тотьев [Текст] // Хозяйство и право. -1995. - № 6. - С. 76-83.
10. Костикова, С.Н. Практические вопросы применения норм, регулирующих публичный договор как институт гражданского права / С.Н. Костикова [Текст] // Российский судья. - 2007. - № 4. - С. 34-37.
11. Кодекс РФ об административных правонарушениях [Электронный ресурс]: принятый Государственной Думой РФ от 30 декабря 2001 г. № 195-ФЗ. Доступ из СПС «Консультант плюс».
12. Правила по киновидеообслуживанию населения [Электронный ресурс]: утв. постановлением правительства от 17 ноября 2000 г. № 859. Доступ из СПС «Консультант плюс».
SOME CONSUMER PROTECTION ISSUES
Tatyana M. Ponomareva,
associate professor, Siberian Institute of Business and Information Technologies, Head of the Legal Clinic Omsk Economic Institute
Abstract: In the field of interaction with consumers commercial op-zation independently establishes the conditions of public contracts. Consumers are often confronted with the fact that the terms of the contracts contain time-personal restrictions are prohibited by law. This article examines the practice of establishing such unfair conditions in the citi-Danish legal relationship with consumers.
Keywords: public contract, the consumer remedies, solicitation, unlawful refusal.
Сведения об авторе:
Пономарева Татьяна Михайловна - кандидат юридических наук, доцент кафедры гражданско-правовых дисциплин Сибирского института бизнеса и информационных технологий (г. Омск, Российская Федерация), e-mail: [email protected].
Статья поступила в редакцию 30.12.2014.
Раздел III
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И РАЗРАБОТКИ
УДК 004.928 © А.А. Букатов, Е.Е. Гридчина, Д.А. Заставной
А.А. Букатов, Е.Е. Гридчина, Д.А. Заставной ОБОБЩЁННЫЙ МЕТОД КОНТРОЛЬНЫХ КЛАСТЕРОВ
ДЛЯ ДЕФОРМАЦИИ МОДЕЛЕЙ НА ОСНОВЕ ДВОЙНЫХ КВАТЕРНИОНОВ
Традиционные геометрические методы деформации трёхмерных поверхностей антропоморфных моделей обладают рядом недостатков. Метод контрольных кластеров (Control Cluster Method) предлагает альтернативное решение для получения реалистичной управляемой деформации поверхности. В данной статье рассматривается модификация метода контрольных кластеров для расчёта деформации антропоморфных персонажей, предполагающая расчёт положения вершин модели нелинейным образом - с помощью поверхностей Безье. Расчёт деформации кластерных вершин проводится с использованием двойных кватернионов.
Ключевые слова: скелетная анимация, контрольный кластер, двойные кватернионы, поверхности Безье.
1. ВВЕДЕНИЕ
Реалистичная деформация полигональных моделей является одной из базовых задач в прикладных областях трёхмерной графики [1, 6, 9]. Однако при её практическом использовании возникают так называемые артефакты, что обусловлено применением линейных методов деформации моделей. В данном исследовании представлены результаты применения концепции нелинейной деформации трёхмерных поверхностей.
Ранее авторами был описан алгоритм корректировки деформаций двумерных антропоморфных моделей, основанный на использовании контрольных кластеров [3], далее алгоритм был обобщён до трёхмерного случая. Универсализированный метод деформации трёхмерных полигональных моделей - метод контрольных кластеров (Control Cluster Method) - был предложен авторами в работе [4]. Применение обобщённого подхода возможно в широком спектре областей, включая анимацию трёхмерных персонажей и моделирование физических процессов. Предложенный метод основан на использовании так называемых контрольных кластеров для создания реалистичной анимации. Метод контрольных кластеров упрощает работу аниматора, так как при его применении предполагается, что специалист по анимации задаёт положение лишь малой группе вершин модели, деформация остальных проблемных вершин модели рассчитывается (аппроксимируется) нелинейным образом.
В данной работе рассматривается модификация метода контрольных кластеров для анимации трёхмерных антропоморфных персонажей с использованием двойных кватернионов и поверхностей Безье. Примене-
ние двойных кватернионов для расчёта перемещений основных кластерных вершин модели позволяет учитывать такой характерный вид трансформации антропоморфных персонажей, как вращение костей скелета в скелетной анимации. Применение поверхностей Безье позволяет производить анимацию методом контрольных кластеров для моделей, составленных из нелинейных примитивов.
2. ОБЗОР ЛИТЕРАТУРЫ
Традиционный метод Linear Blend Skinning (LBS), несмотря на ряд нежелательных артефактов, подробно проанализированных в литературе [13], считается наиболее используемым алгоритмом скелетной анимации благодаря таким свойствам, как универсальность и простота.
Анализ современных исследований по вопросу геометрических алгоритмов скелетной анимации позволяет выделить собственно геометрические алгоритмы и алгоритмы с использованием эталонных форм. Первая группа алгоритмов использует в качестве входных данных только геометрическую оболочку, обычно полигональную модель. Вторая группа алгоритмов предполагает наличие эталонных форм модели, с помощью которых корректируются либо непосредственно деформации модели, либо веса вершин поверхности модели.
К группе собственно геометрических методов скелетной анимации относится метод Dual-Quaternion Skinning [12], который описывает и вращения, и перемещения узлов скелета при помощи кватернионов. Для данного метода не характерны недостатки LBS, но Dual-Quaternion Skinning демонстрирует артефакты, связанные с наличием излишнего объёма (см. рис. 1).
Рис. 1. Расчёт деформации при сгибе руки в локте при помощи алгоритма Dual Quaternion Skinning [7].
Известный метод Pose Space Deformation, предложенный в работе [11], использует эталонные формы модели для компенсации артефактов LBS. Данный метод позволяет достичь реалистичных результатов, однако является весьма трудозатратным [10]. В работе [8] предлагается заранее вычислять оптимизированные веса вершин для геометрических методов, таких как Linear Blend Skinning и Dual Quaternion Skinning, чтобы аппроксимировать трансформации, вычисляемые при помощи нелинейных вариационных методов. Некоторые другие алгоритмы, к примеру [2], модифицируют LBS, при помощи обобщения весовых функций и увеличения количества весов.
3. МОДИФИЦИРОВАННЫЙ МЕТОД КОНТРОЛЬНЫХ КЛАСТЕРОВ
Базовый вариант метода контрольных кластеров обладает некоторыми ограничениями, которые и призвана исправить описываемая модификация метода.
3.1. Ограничения исходной модификации метода контрольных кластеров
3.1.1. Концепция метода контрольных кластеров
Применение метода контрольных кластеров подразумевает разделение всех вершин модели на два типа: кластерные вершины и свободные вершины. Положение кластерных вершин рассчитывается на основе каких-либо входных данных (например, задаётся скелетной анимацией). Ключевые области модели состоят из кластерных вершин, которые задают форму самой модели. Как следствие, деформации модели контролируются с помощью кластерных
вершин. Положение свободных вершин рассчитывается нелинейным образом на основании положения кластерных вершин.
3.1.2. Трансформации кластерных вершин
Существенно, что трансформации кластерных вершин можно задавать произвольным способом. Удобным инструментом являются деформаторы, такие как сетки или скелет. Положение кластерных вершин также может задаваться при помощи массива данных, снятого с какого-либо измерительного прибора, к примеру, при помощи технологии motion capture.
В исходной модификации метода контрольных кластеров для вычисления положения кластерных вершин использовался алгоритм Linear Blend Skinning. С каждой вершиной модели VsVp связан набор весов
{wi}, ^ wi = 1, где wi обозначает вес кости
. Вес wi определяет, насколько сильно вершина VsVp подвергается воздействию
кости Ь. Пусть Bi} - положение скелета в позе привязки. Тогда при условии, что скелет находится в произвольной позе ty}, преобразованное положение вершины V рассчитывается по формуле (1).
V' = LBS(V) = 2 wiW1BilV (1)
i
Но в случае деформации антропоморфных персонажей характерным видом преобразования является вращение, например, суставов, что обуславливает использование нелинейных методов для расчёта
преобразований. В случае использования Linear Blend Skinning покомпонентная интерполяция матриц приводит к тому, что ортогональность части результирующей матрицы, которая соответствует компоненту вращения, нарушается. Следствием данной особенности и являются нежелательные артефакты LBS [13].
3.1.3. Трансформации свободных вершин
Если вершина не входит в состав кластера, то она считается свободной. Положение свободных вершин рассчитывается нелинейным способом на основе данных о месте вершины в топологии модели и положении ближайших кластерных вершин.
В исходных модификациях метода контрольных кластеров [3,4] для этой цели служили сплайны Катмула-Рома [5] и кардинальные сплайны, которые являются их обобщением. Данный вид сплайнов подходит для решаемой задачи, так как имеет непрерывную первую производную и, вообще говоря, разрывную вторую. Непрерывность по первой производной обеспечивает гладкость модели, разрывность по второй производной даёт достаточную гибкость в использовании сплайна. Кроме того, кардинальный сплайн является локальным - влияние каждой контрольной точки распространяется лишь на некоторую окрестность кривой. Использование сплайнов накладывает строгие ограничения на топологию модели, расчёт деформации моделей, составленных из нелинейных примитивов, не представляется возможным.
3.2. Модификация метода контрольных кластеров
3.2.1. Трансформации кластерных вершин
Важной особенностью данного метода является независимость от конкретного способа задания кластерных вершин. Чтобы продемонстрировать эту особенность, рассмотрим три способа задания трансформаций вершин при подготовке модели к анимации: Dual Quaternion Skinning (DQS), корректировка при помощи эталонной формы и процедурная зависимость.
На сегодняшний день действенной альтернативой эффективному методу Linear Blend Skinning является метод Dual Quaternion Skinning (DQS) [12], получивший реализацию во многих трёхмерных графических редакторах. Кроме того, наряду с традици-
онным алгоритмом LBS метод DQS не требует внесения изменений в готовую модель. Поэтому вычисление трансформаций кластерных вершин целесообразно выполнять на основе DQS.
Матрицы, соответствующие преобразованиям узлов скелета, W1,...,W преобразуются в двойные кватернионы q 1v.., qP . Данная операция не является затратной, так как количество узлов скелета p малo, и преобразование требует лишь одного перемножения кватернионов. В виде матриц размера 2x4 двойные кватернионы q 1v.., qP отсылаются на графический процессор. Линейная комбинация преобразований для каждой вершины v рассчитывается по формуле (2).
¿=х w. q, (2)
i
Далее двойные кватернионы подвергаются нормализации, чтобы получить единичные двойные кватернионы: $'= в
в
Затем, после оптимизации, где в = ? + £tos и wk, xk, yk, zk являются обо-
значениями компонентов
, результи-
рующий единичным двойной кватернион преобразуется в матрицу М согласно формуле (3), где приняты следующие обозначения: ^ = Ц-М>вх0 + ХЕ w0 - ув20 + Уо ) ,
11 = 2(-wsУО + 20 - УsW0 + 2ЕХ0) '
12 = 2(-wezo + xуо - уа + 2ew0) •
M =
f 1 - lyl - 2z02 2хаya - 2w0z0 2х0 z0 + 2w0ya t0 Л
2 x0 У0 + 2w0 z0
1 - 2x0 - 2z02 2У0z0 - 2w0X0 ti v2x0 z0 - 2w0У0 2У0 z0 + 2w0 x0 1 - 2x02 - 2У02 t2 ,
Конечное преобразование для соответствующей вершины задается матрицей М . Таким образом, новое положение вершины V рассчитывается по формуле (4).
V' = Mv (4)
Благодаря инвариантности операции относительно системы координат алгоритм вычисляет так называемый кратчайший путь для движения по винтовой линии. И хотя скорость вращения не является постоянной, она близка к постоянной [12], поэтому ника-
(3)
ких видимых недостатков в ходе анимации, связанных с нарушением скорости вращения суставов, наблюдаться не будет. Метод LBS такого результата не даёт.
Хотя DQS и превосходит традиционный метод скелетной анимации LBS по многим показателям, принято полагать, что DQS придаёт излишний объём отдельным частям модели (см. Рис. 1), что препятствует получению реалистичной анимации. Чтобы устранить нежелательные артефакты и достичь приемлемого качества анимации, можно использовать эталонные формы.
Учитывая гибкость метода контрольных кластеров, нет необходимости задавать эталонную форму для всей модели. Достаточно лишь сформировать кластер из вершин проблемной зоны модели (например, зоны локтевого сгиба антропоморфной модели) и задать одну эталонную форму только для вершин данного кластера только для одной экстремальной конфигурации скелета. Это привносит в анимацию элемент управляемости и даёт строго заданное количество объёма в проблемной зоне.
Таким образом, кластерные вершины подвергаются дополнительным корректирующим трансформациям, которые вычисляются при помощи информации о смещении вершины относительно её положения в эталонной форме.
Кроме того, чтобы получить реалистичный эффект выпячивания мышцы при её сокращении, можно ввести процедурную зависимость между кластерными вершинами зоны бицепса и углом между костями плеча и предплечья в случае, если рассматривается деформация руки модели персонажа. Эффекта вздутия бицепса можно достичь при помощи PSD за счёт создания ряда
дополнительных эталонных форм модели. Ни LBS, ни DQS не обладают такими возможностями.
3.2.2. Преобразование свободных вершин
Для определения положения свободных вершин могут использоваться бикубические поверхности Безье. Поверхности Безье обладают следующим свойством: на концах интервала поверхность интерполирует, а не аппроксимирует контрольные вершины, что позволяет использовать принцип кусочного моделирования. В трёхмерном варианте используется решётка из сплайнов, что продолжает идею использования сплайнов в качестве нелинейной составляющей метода контрольных кластеров. Использование свободных вершин даёт возможность сократить использование эталонных форм, так как положении свободных вершин вычисляется без участия пользователя на основе информации о кластерных вершинах.
3.3. Ограничения модификации метода контрольных кластеров
У данной модификации есть ограничение: метод рассчитан только на строгие преобразования (rigid transformation), к которым относятся вращение и перемещение. Таким образом, деформация моделей, части которых могут растягиваться или сжиматься, находится за рамками применения описанной модификации метода.
4. ПРИМЕР ПРИМЕНЕНИЯ МОДИФИКАЦИИ МЕТОДА
В качестве примера используется
трёхмерная модель руки (см. Рис. 2,3). Все вершины модели делятся на 4 группы: 3
группы кластерных вершин и свободные вершины.
Рис. 2. Модель руки со скелетом из двух костей. Синим цветом обозначены свободные вершины; жёлтым - кластерные вершины, для которых задана эталонная форма; зелёные - кластерные вершины, для которых задана процедурная зависимость; кластерные вершины, деформируемые при помощи й^Б, - без пометок.
Рис. 3. Кадр из анимации сгиба модели руки с применением метода контрольных кластеров
Результаты вычислительного эксперимента показывают, что описываемая модификация метода контрольных кластеров позволяет получать деформации трёхмерных моделей с топологией отличной от линейных примитивов, сравнимые по качеству с PSD, не требуя при этом значительных трудозатрат.
5. ЗАКЛЮЧЕНИЕ
Метод контрольных кластеров представляет собой геометрический метод для расчёта нелинейных деформаций трёхмерной поверхности. В данной работе описана модификация метода, использующая двой-
ные кватернионы и поверхности Безье, и её применение к скелетной анимации. Применение двойных кватернионов к расчёту деформаций основного кластера модели учитывает сферический характер преобразований скелетной анимации и позволяет получать реалистичную анимацию вращения сустава с практически постоянной скоростью. Описанная модификация метода контрольных кластеров благодаря расчёту положения свободных вершин при помощи поверхностей Безье позволяет работать с антропоморфной моделью, топология которой не ограничивается лишь линейными примитивами.
Библиографический список
1. Adaptive remeshing for real-time mesh deformation / Dunyach, M. [et al.] // Eurographics Short Papers, 2013. - P. 29-32.
2. Bounded biharmonic weights for real-time deformation / A. Jacobson [et al.] // ACM Trans. Graph. - 2011. - Vol. 30, № 4. - P. 78:1- 78:8.
3. Bukatov, A. A spline-based approach to control cluster deformation / A. Bukatov, E. Gridchina, D. Zastavnoy // World Applied Sciences Journal. - 2013. - Vol. 26, № 6. - P. 724-727.
4. Bukatov, A., Gridchina, E., Zastavnoy, D. A control cluster approach to non-linear deformation // WSCG 2014 - Poster Paper Proceedings, Vaclav Skala, Ed., Plzen, Czech Republic, 2014. - P. 97-100.
5. Catmull, E., Rom, R. A Class of Local Interpolating Splines // In Computer Aided Geometric Design / Eds. R.E. Barnhill and R. F. Reisenfeld. New York: Academic Press, 1974. - P. 317 - 326.
6. Deformation Models: Tracking, Animation and Applications, Lecture Notes in Computational Vision and Biomechanics / ed. By M. Gonzalez Hidalgo [et al.]. - NY: Springer, 2013. - 297 p.
7. Implicit skinning: Real-time skin deformation with contact modeling / R. Vaillant [et al.] // ACM Trans. Graph. - 2013. - Vol. 32, №. 4. - P. 125:1-125:12.
8. Kavan, L. Elasticity-inspired deformers for character articulation / L. Kavan, O. Sorkine // ACM Trans. Graph. - 2012. - Vol. 31, № 6. - P. 196:1-196:8.
9. Polygon Mesh Processing / ed. M. Botsch [et al.]. - AK Peters, Ltd., 2010. - 250 p.
10. Lee, G.S., Hanner, F. Practical Experiences with Pose Space Deformation // ACM SIGGRAPH ASIA 2009 Sketches. SIGGRAPH ASIA'09. New York, NY, USA: ACM, 2009. - P. 43.
11. Lewis, J.P., Cordner, M., Fong, N. Pose Space Deformation: a Unified Approach to Shape Interpolation and Skeleton Driven Deformation // Proc. of the 27th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH'00). New York, NY, USA: ACM Press/Addison-Wesley Publishing Co., 2000. - P. 165 - 172.
12. Skinning with dual quaternions / L. Kavan [et al.] // Proceedings of the 2007 Symposium on Interactive 3D Graphics and Games, New York, NY, USA, 2007, I3D '07, pp. 39-46, ACM.
13. Weber, J. Run-Time Skin Deformation // Intel Architecture Labs. Proceedings of Game Developers Conference, March, 2000.
GENERALIZED CONTROL CLUSTER METHOD FOR MODEL DEFORMATION BASED ON DUAL QUATERNIONS
Alexander A. Bukatov,
assistant professor, Southern Federal University, Elena E. Gridchina, postgraduate student, Southern Federal University, Dmitry A. Zastavnoy, assistant professor, Southern Federal University
Abstract. The paper is devoted to a modification of Control Cluster Method in application to human-like polygonal models deformation. The shortcomings of the Control Cluster Method application to human-like models deformation are considered as well as using dual quaternion and Bezier patches to overcome the limitations of the basic method.
Key words: skeletal animation, control cluster, dual quaternion, Bezier patches.
Сведения об авторах:
Букатов Александр Алексеевич - кандидат технических наук, доцент Южного федерального университета, заместитель директора Южно-Российского регионального центра информатизации Южного федерального университета (г. Ростов-на-Дону, Российская Федерация), e-mail: [email protected].
Гридчина Елена Евгеньевна - аспирант Южного федерального университета (г. Ростов-на-Дону, Российская Федерация), e-mail: [email protected].
Заставной Дмитрий Александрович - кандидат технических наук, доцент Южного федерального университета (г. Ростов-на-Дону, Российская Федерация), email: [email protected].
Статья поступила в редакцию 01.12.2014.