2024年4月26日发(作者:)

第30卷第4期

圆园11年8月

天津工业大学学报

允韵哉砸晕粤蕴韵云栽陨粤晕允陨晕孕韵蕴再栽耘悦匀晕陨悦哉晕陨灾耘砸杂陨栽再

Vol.30No.4

August2011

基于FFD算法的三维服装变形技术

刘正东

钊,

100029)

北京

(北京服装学院计算机信息中心,

摘要:为提高服装及其虚拟展示行业的变形效率问题,研究开发了一套适合服装变形的智能系统.以和

实现了三维服装变形的自动化模式

.核心算法来实现三维服装变形.减少了服装变形的手工繁复操作,

3DSmax为模型工具,

FFD自由变形算法

free-formdeformation,ManagedDirectX为开发工具,FFD)为

虚拟现实;服装模型

关键词:FFD算法;三维服装变形;

中图分类号:TS942.8文献标志码:A文章编号:员远苑员原园圆源载(圆园11)园4原园园65原园4

Technologyfor3Dfashiondistortionbasedonfree-formdeformationalgorithm

(SchoolofComputerInformationCenter,BeijingInstituteofFashionTechnology,Beijing100029,China)

Abstract:Inordertoimprovethedeformationefficiencyinthegarmentandvirtualdisplayindustry,asetofintelligent

systemisdevelopedwhichissuitableforthegarmentdeformation.3Dfashiondistortioniscompletedbytaking

ManagedDirectXfordevelopmenttools,3DSmaxformodel-makingtools,combiningwithacore

achievetheautomaticmodeofthethree-dimensionalgarmentdeformation.

algorithmnamedFFD(free-formdeformation).Thissystemcouldreducethecomplicatedmanualoperationand

LIUZhao,LIUZheng-dong

Keywords:free-formdeformationalgorithm;3Dfashiondistortion;virtualreality;dresssimulation

目前三维服装变形的方法有各自的优缺点.服装

模型主要由Maya、3DSmax等软件制作并导出

[1]

,并利

用此软件进行手工操作变形.这种操作方法可以获得

效率低

比较理想的变形效果,但是操作繁杂,耗时大,

下.另外一种服装变形方法是FFD(free-formdeforma原

tion)算法

[2]

,这是一种常用的表示和物体表面无关的

变形方法,被广泛应用于三维动画和计算机建模领域.

使用FFD进行物体变形时可以利用控制点对需要变

形的部位进行快速的参数调整,较为便捷和高效.虽

然通过FFD算法能够有效地对物体进行变形操作,但

是此方法也有一些局限性.比如,物体的变形区域和

非变形区域是平滑的平面边界曲线,用FFD构造任意

边界曲线变形仍有难度,且网格的调整比较麻烦

[3]

;控

制点的坐标变动将带动其他网格节点的变动,欲得到

理想的服装变形效果将要调节很多的控制点等.以上

几种方法虽然可以对目标服装模型进行有效变形,但

收稿日期:2011-05-25

第一作者:刘

难以将其运用到实际的

是操作繁杂,需用时间较长

服装变形展示中去.本文针对服装变形这一需求,基

于FFD算法提出一种新的研究方法,目的是为了开发

一个智能的、可视化的服装三维变形及展示模型,

以期为

而解决服装虚拟现实中服装变形的瓶颈问题

服装变形效果展示向着智能化方向发展提供有益的

参考和借鉴.

1算法描述

1.1FFD自由变形算法

运用FFD将物体进行变形的步骤如下:

首先,

物体需要变形的部分嵌入一个平行六面体中;

其次,

给平行六面体内部以及边界上的每个点分配一个固

定的网格参数坐标

最后,通过移动控制点,引起物体

的变形.如图1所示,将六面体均匀划分为l伊m伊n

基金项目:北京市属市管高等学校人才强教计划资助项目(PHR201007132)

钊(1984—),男,硕士研究生.

1971—)

副教授,硕士生导师

.E-mail:通信作者:刘正东,男,****************

—66—

天津工业大学学报

第30卷

个平行六面体格子,这样就成了一个三维网格

,每个

格子的顶点就成为控制顶点.

T

P

l,m,n

P

0,m,0

S

Q

P

l,0,0

U

P

0,0,0

P

0,0,n

图1三维自由变形控制框架

Fig.1Controlframeworkofthree-dimensional

freeformdeformation

0

在六

,1,

面体

m

控制顶点为P

i,j,k

.其中:i=0,1,…,l;j=

;k

=

0,

其表面

1,…

n

.

的,

因为控

所以

均匀分布

满足以下

公式

P

i,j,k

=P

0,0,0

+

i

l

S+

m

j

T+

k

n

U(1)

式中:S=P

l,0,0

-P

0,0,0

;T=P

0,m,0

-P

0,0,0

;U=P

给平行六面体内部以及边界上每个点

0,0,

分配

n

-P

0,0

,0

.

固定的网格参数坐标.对于其中任何一个点Q,设其网

格参数坐标为

s,t,u)

T

,则该网格的计算公式如下

s=

(T伊

U

T

)·

U

Q

)·

-

S

P

0,0,0

(2)

t=

(S伊

U

S

)·

U

Q

)·

-

T

P

0,0,0

(3)

u=

(S伊

T

S

)·

T

Q

)·

-

U

P

0,0,0

(4)

在三维变形中,通过移动控制点带动物体发生变

形.Q点在变形之后的新坐标位置为

Q(s,t,u)=

lmn

i=0

j=0

k=0

B

i,

l

s)B

j,

m

t)B

k,

n

u)P

i,j,k

(5)

式中:P

i,j,k

为在变形之后控制顶点的新坐标位置

B

i,

l

s)=

i!(l

l!

-i)!

s

i

1-s)

l-i

B

j,

m

t)=

j!(m

m!

-j)

t

j

1-t)

m-j

B

k,

n

u)=

k!(n

n!

!

-k)!

u

k

1-u)

n-k

.

以上均为Bernstein基函数

[2]

出物体在变形之后的新坐标位

.通过

置.

上面的公式可以算

传统的FFD算法并不能很好地满足服装变形的

需要.由于FFD的变形影响对象的所有顶点,

为了防

止物体过度变形,可以

设置不动点

.不动点的选取应

该结合服装的特点.以调整胸围为例

根据女性体型

的差异

,主要

是根据女性的乳房大小进行胸围的调

整,而相对应的背部的变化很小.由于调整胸部的控

制点会带动背部网格上的点的变动,从而影响服装的

展示及效果

所以可以对背部的点进行固定

[4-5]

,从而

灵活精确地操纵网格控制点进行相应的变化

实现局

部的变形需要.因此,本文通过对此算法设置不动点

1.2

满足

设置不动点的自由变形算法

服装变形的需要.

在包围物体的网格中,先至少设置一个点是经过

控制点的变动不发生位移的,以此点为原点建立坐标

系,该点就可以视作不动点,将此点用O来表示

[5]

设置多个不动点时

分别表示为O

1

,O

.当

点用P表示,则在P的作用下变化的

2

,…

O

n

网格点用

.操作

P

d

P

,O

1

,P

2

N

表示

则向量O

d

1

P

2

P,

…,

O

N

P就是基础向量

1

2

,…,d

n

记为吟

.当

d.

移动点P至P忆,那么向量PP忆就是控制

对于当前点P

t

,向量O

1

P

t

,O

2

P

t

,…,O

n

P

t

为当前向

记为d

P

1t

,d

2t

,…

d

nt

t

在不动

,则向

.当在控制顶点P的影响下

P

t

动到了

O

i

影响

P

t

P

t

忆用

所作出的

吟d

t

表示.吟d

it

表示当前点

P

t

位移.

关于亲密度的计算:亲密度仔

it

(仔

it

点P

t

和不动点O

i

的亲密程度

即P

t

受O

i

1)

影响

表示

.

当远离不动点的距离越近

则受该不动点的影响越大.

对当前移动向量吟d

t

的计算:在多个不动点的网

格变形中,当前的移动向量等于独立当前移动向量的

加权平均值

权值为当前点和各个不动点的亲密度

即有:

吟d

n

t

=

i=1

(仔

it

驻d

it

则P

t

2

=

P

t

+吟

,O

d

t

如图为不动点,P为操作点,P

t

是当前

点,则OP

t

为当前向量

OP为基础向量

;经过变形以

P点移动到了P忆点,当前点由P

t

移动到了P

t

为控制向量

P

t

P

t

忆为当前移动的向量.

忆,

PP忆

P

t

驻d

t

P

t

d

t

O

d

P

驻d

P忆

图2不动点和相关定义示意图

Fig.2Schematicdiagramoffixedpointandrelateddefinitions

第4期

基于

FFD算法的三维服装变形技术钊,等:

—67—

因此,将上述两种算法结合以后

就可以对服装

的特定部位进行变形.

2多层次的服装模型及控制点的分类

为使变形局部化

,可

采用较小的框架来控制.当

服装的一部分位于框架内时

可以操纵控制点对其进

行有效变形而不影响不需变形的部位.因此可对目标

服装进行层次分解来得到需要调节的部位

从而形成

多层次的控制网格以适应对服装进行参数化的变形

操作.另外,均匀的控制点不适合服装变形,因为服装

有很多关键的特征点需要单独调整

如肩点、

胸高点、

腰围点等,所以需要对控制点进行有效的分类.

为简便起见

,本文就

一件女式上衣进行分析.根

据个人体型不同

最常需要改变的就是胸围与腰围

如图3所示

定义如下

淤胸围是指以乳凸点为水平

线的最大围度

于腰围是指以腰高为水平线的围度.

1

2

图3女式服装的胸围和腰围

Fig.3Bustgirthandwaistgirthofwomengarment

2.1设置多层次的服装模型

常用的服装建模方法有表面模型、

实体模型和多

层次模型等

[5]

是由几个不同层

.在此

效果

又能从

微观角

中采用多层次模型,强调服装

度得到

,既

模型

能从

节调整

的,

次上

各层

,可以

之间定

整体

各角

变形

约束关系

[6]

.

度、

各部位进行目标操作.由于在上装的调节变形中最易

变动的是腰围与胸围

所以在本次试验中,将女上装

2.2

拓扑结

对服装控制点的分类

构分为两个部分:胸部和腰部,如图4所示.

按作用可以将控制点分为以下3类:淤整体控制

点,是指在整个外围中所有的均匀分布的控制点,目

的是将服装进行整体的变形效果演示

于特征控制

点,是指那些需要通过改变位置或者移动来获得理想

变形效果的控制点;盂变形不动点,

是指安排在服装

表面来限制变形的控制点.各个控制点的功能并不对

在变形的各个阶段其角色也有可能发生变化

胸部

腰部

图4服装拓扑结构

Fig.4Clothingtopology

如在整体变形阶段整体控制点起到了特征控制点的

作用,而在局部变形中起到了变形不动点的作用

[6-7]

以精确调整腰围变形为例

方案如下

:标记服装

.

上的一串点代表腰围

记作整体控制点;在腰部的变

形方向上设置两个特征控制点,通过移动特征控制点

或者改变其方位来控制腰围的一串点

[8]

;在不需变形

的中间部位设置变形不动点,用以保证不被其他的变

形网格所移动而保持原有状态

如图5所示.特征控制

点和变形不动点分别代表变化与不变的两种力量

者引起的变形必须通过后者的限制才能得到逼真的

调整效果.

整体控制点

变形不动点

特征控制点

图5腰围调整方案

Fig.5Adjustmentprogramofwaistgirth

3关键技术及实验结果

3.1开发工具

(1)可视化界面开发工具

是基于.NET框架的完全面向对象的编程语言

其特点

是窗体设计器支持可视化继承

,并

且有许多新的特

性,比如自动改变窗体大小、资源本地化支持、数据类

工具内在支持XML数据等,借助此工具可以实现简

洁的人机界面,如图6所示.

(2)ManagedDirectX图形工具

2002年微软推出

了ManagedDirectX,也称作DirectX的托管版本,实

质上是对DirectX进行了一个轻量级的封装,用类重

新封装了DirectX数据库,支持C#和语言开

发DirectX程序

对DirectX程序编写进行了进一步简

化.为了使用ManagedDirectX进行程序设计,必须先

—68—

天津工业大学学报

第30卷

基础

场景

场景

音效

胸部

选曲

胸围

88.7

底胸围

环境设置

纹理

腰腹

色彩

臀部

材质

图6系统界面模块

Fig.6Systeminterfacemodule

到微软网站免费下载

、安装

DirectXSDK9.0,该版本也

支持

3.2

Managed

实验流程和结果

DirectX.

图7所示为实验基本流程.

备选模型整体变形

选择

各部分整体变形

多层次模型

驱动分部特征变形

特定服装款式局部尺寸变形

图7整体实验过程框架

Fig.7Frameworkofoverallexperiment

图8所示为试验中所展现的通过设置特定点来

实现腰围的变形,其中变形前腰围=57cm(

8(a)),

变形后腰围=67cm(图8(b)).

(a)变形前(b)变形后

图8腰围调整效果展示

Fig.8Effectshowofwaistgirthadjustment

某些尺寸及变形

如胸围、

腰围和臀围等)是在多

个步骤的控制下得以进行的,各个步骤可以选择不同

的控制点来进行变形,以保证得到适合服装特点的变

形效果

最终可以对服装需要变形的部位进行精确且

便捷的变形.

4结束语

本文介绍了一种基于FFD算法的服装三维变形

的技术实现

在环境下实现了服装的变形操

作,舍弃了传统上采用图形软件的手工操作,从一个

新的角度实现了服装三维变形.目前该实验已经取得

了初步的进展

接下来要继续对该实验进行改进.如

增加服装的分类模型,形成多个模型组成的服装分类

模型

FFD

算法,

;在

从而实现

算法方面将

突破

网格限

可以尝

制的

试加

曲面

入运

变形

用Dirichlet

.

参考文献:

[1]

able

LEE

3D

W,

virtual

GUJ,

humans

THALMANN

fromphotographs[C]//Computer

tinganimat

Graph原

n.]

ics

Forum

2000:1-10.

rland:[s.

[2]

[3]

geometric

SEDERBERG

KALRAP

models[J].

T,PARRY

,MANGILLI

Computer

S.

A,THALMANN

Graphics

Freeform

,1986

deformations

NM

20

et

al.

151-160.

ofsolid

tionoffacialmuscle

Simula原

[4]

mations

MACCRACKEN

[J].Computer

actions

R,JOY

Graphics

based

Forum

on

form

rational

1992

deformations

,11

free

(3

form

):

with

59-69.

defor原

lat原

[5]

181-188.

ticesofarbitrarytopology[J].ComputerGraphics,1996,30(4):

[6]

由变形算法

国荣,林金花

[J].微

,刘

东,

学与

计算机,

.一种基

2008

于三维

,25(

曲面

7):

变形的自

HUGHES,JOHNF,TOMASMiller援Buildinganorthonormal

160-165.

basisfromaunitvector[J]援JournalofGraphicsTools,1999,4

[7]

4):

33-35

周帅锋

[J].

,覃

征.多不动点约束

[8]冯结

计算机工

,郭建

2009

金小

,35

10

.

25-28.

下的网格变形算法

变形[J].计算机学报,2003,26(9)

进的

:54-58.

多边形物体精确自由