国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

OpenGL導(dǎo)入3DS模型模擬服裝試穿

2014-06-27 03:19:12祝雙武蘭振華
關(guān)鍵詞:人體模型曲面紋理

呂 珍,謝 倩,祝雙武,蘭振華

(1.西安工程大學(xué) 紡織與材料學(xué)院,陜西 西安 710048; 2.西安工程大學(xué) 服裝與藝術(shù)設(shè)計(jì)學(xué)院,陜西 西安 710048; 3.河南省體育彩票管理中心 技術(shù)開(kāi)發(fā)部,河南 鄭州 450003)

0 引 言

目前,基于二維拓?fù)淇臻g的服裝CAD技術(shù)已很普遍且基本成熟并趨于穩(wěn)定.相對(duì)于二維服裝CAD而言,三維服裝CAD具有立體、直觀、易操作可提供真實(shí)的試衣效果等諸多優(yōu)點(diǎn).進(jìn)入21世紀(jì)以來(lái),三維建模技術(shù)飛速發(fā)展,例如袁銘等人提出的一種古建筑三維建模方法[1]為從現(xiàn)實(shí)世界獲取數(shù)據(jù)并進(jìn)一步在計(jì)算機(jī)世界進(jìn)行加工建模提供了依據(jù);古文物藝術(shù)造型的數(shù)字化與虛擬展示[2]、定制化人像產(chǎn)品[3]、皮影人物造型[4]等三維模型的研究均為虛擬三維人體模型的進(jìn)一步發(fā)展奠定了基礎(chǔ).在織物的三維著裝效果展示方面,有的學(xué)者在幾何造型的基礎(chǔ)上,以明暗處理和紋理映射技術(shù)來(lái)實(shí)現(xiàn)三維著裝效果的真實(shí)感;部分學(xué)者在采用光照紋理進(jìn)一步實(shí)現(xiàn)三維著裝效果的真實(shí)感的描繪上進(jìn)行了有益的探索.從產(chǎn)生的圖像方面分析,能夠較真實(shí)地反映二維圖像的三維著裝效果[5],但是紋理重復(fù)的均勻性依賴于構(gòu)造服裝模型的數(shù)據(jù),其稀疏不均也會(huì)造成紋理分布不勻.

在利用人臺(tái)進(jìn)行三維服裝展示時(shí),人臺(tái)、衣殼曲面的生成是建模的過(guò)程,也是三維服裝真實(shí)感效果和紋理映射的基礎(chǔ),建模過(guò)程為:獲得原始數(shù)據(jù)點(diǎn)并進(jìn)行預(yù)處理→對(duì)數(shù)據(jù)插入,提高精度→構(gòu)造三維模型點(diǎn)云→用Bezier曲面法填充模型[6].

開(kāi)發(fā)三維服裝CAD系統(tǒng)最基礎(chǔ)的工作是建立三維人體及服裝模型,而人體和服裝形狀為復(fù)雜的曲面,要對(duì)其進(jìn)行較為精確的測(cè)量且獲得全面細(xì)致的數(shù)據(jù)很困難.目前對(duì)于人體模型的獲取方法如:王萍等人采用非接觸式三維人體測(cè)量?jī)x獲取人體數(shù)據(jù),并用Excel和Spss軟件對(duì)數(shù)據(jù)進(jìn)行分析[7];劉浩翰等人獲得人體的三維數(shù)據(jù)并利用NURBS進(jìn)行人體幾何造型[8].人體模型的獲取方法通常有兩種:一種是通過(guò)采用三維坐標(biāo)測(cè)量?jī)x(或同類其他設(shè)備)測(cè)得人體三維數(shù)據(jù)為依據(jù),并利用Bezier曲面或B樣條曲面進(jìn)行人體的擬合;另一種是以大量測(cè)得的人體三維數(shù)據(jù)為依據(jù),利用三角面片對(duì)人體曲面進(jìn)行重構(gòu)[9-10].

本文在分析眾多前人研究的基礎(chǔ)上,找到了一種獲取別人測(cè)量數(shù)據(jù)的簡(jiǎn)易方法.鑒于3D MAX優(yōu)秀的三維制圖功能且有眾多三維人體模型資源,故可將此類標(biāo)準(zhǔn)人體模型文件內(nèi)的有用人體曲面坐標(biāo)信息提取出來(lái),并利用三角面片對(duì)人體曲面進(jìn)行重構(gòu).

1 應(yīng)用技術(shù)分析

1.1 OpenGL技術(shù)和3DS技術(shù)相結(jié)合

OpenGL (開(kāi)放性圖形庫(kù),Open Graphic Library),是美國(guó)高級(jí)圖形和高性能計(jì)算機(jī)系統(tǒng)公司SGI所開(kāi)發(fā)的三維圖形標(biāo)準(zhǔn)庫(kù),具有繪制三維圖形的各項(xiàng)功能.以其為基礎(chǔ)開(kāi)發(fā)的應(yīng)用程序可以方便地在各個(gè)平臺(tái)間移植,特別是在三維圖形的功能上非常優(yōu)秀[11-12].然而OpenGL的專長(zhǎng)并不是建模,因?yàn)镺penGL并沒(méi)有提供建立三維模型的高級(jí)命令,它是通過(guò)基本的幾何圖元點(diǎn)、線及多邊形建立三維立體模型.相比而言,利用3D Studio MAX建立三維立體模型則非常容易,但建立的模型缺乏編程性和可控制性,而這正是OpenGL的優(yōu)勢(shì)所在.基于此種情況,用3D Studio MAX建立三維立體模型導(dǎo)出為3DS文件,然后將3DS文件導(dǎo)入用Delphi搭建的CAD軟件平臺(tái),可得到任何三維立體模型.

1.2 3DS的文件結(jié)構(gòu)

根據(jù)3DS文件格式,利用計(jì)算機(jī)編程,從3DS文件中提取有用的人體曲面的頂點(diǎn)信息,用于接下來(lái)的三維人體曲面建模.

3DS文件結(jié)構(gòu)由“塊”組成,塊中又有子塊[13].每個(gè)塊是一個(gè)層次結(jié)構(gòu),3DS文件有一個(gè)主塊,ID是0x4D4D,這個(gè)塊是3DS文件的開(kāi)始(可以用它來(lái)鑒定該文件是否為一個(gè)3DS文件),在開(kāi)始?jí)K后面是主要塊,主體內(nèi)容為塊數(shù)據(jù)信息.每個(gè)3DS文件都包括一個(gè)塊ID是“0x4D4D”的基本塊.基本塊是在3DS文件中必須存在的,也可用于檢測(cè)一個(gè)文件是不是3DS文件,它由ID為“0x3D3D”的編輯塊和ID為“0XB000”的關(guān)鍵幀塊組成.3DS主要的幾個(gè)塊的ID及信息,如表1所示.

表1 3DS模型文件中幾個(gè)主要的塊ID及信息

1.3 3DS文件的讀取

本文首先把所需塊的ID定義為常量以便后續(xù)使用.

const

M3DMAGIC=$4D4D; //文件的開(kāi)始

MDATA=$3D3D; //所有目標(biāo)信息

KFDATA=$B000; //繪制框架,為MDATA定義

MAT-ENTRY=$AFFF; //材質(zhì)信息開(kāi)始

NAMED-OBJECT=$4000; //目標(biāo)的相關(guān)數(shù)據(jù)(點(diǎn)、面…)

//對(duì)于MAT-ENTRY的定義

MAT-NAME=$A000; //材質(zhì)名稱

MAT-AMBIENT=$A010; //環(huán)境反射

MAT-DIFFUSE=$A020; //漫反射

MAT-SPECULAR=$A030; //鏡面反射

MAT-SHININESS=$A040; //光源設(shè)定

MAT-TEXMAP=$A200; //紋理信息

MAT-MAPNAME=$A300; //材質(zhì)紋理文件名

N-TRI-OBJECT=$4100; //對(duì)于每個(gè)目標(biāo)的定義

POINT-ARRAY=$4110; //對(duì)象中定點(diǎn)信息

FACE-ARRAY=$4120; //對(duì)象中三角面信息

MSH-MAT-GROUP=$4130; //與三角面相關(guān)的材質(zhì)信息

TEX-VERTS=$4140; //紋理坐標(biāo)

基于以上所分析的3DS文件的結(jié)構(gòu),本文根據(jù)面向?qū)ο蟮木幊趟枷?設(shè)計(jì)了T3DObject類、Tchunk類、TMaterial類、T3DModel類等4類來(lái)實(shí)現(xiàn)3DS模型的讀取與重建.

在完成了3DS文件的讀取工作之后,根據(jù)讀入的各個(gè)頂點(diǎn)及其法向量,利用大量的三角面片來(lái)構(gòu)造出人體和服裝模型.關(guān)鍵算法為:

glBegin(GL_TRIANGLES);//通過(guò)參數(shù)GL-TRIANGLES繪制三角形

for F:=0 to FaceCount-1 do//將FaceCount所存各三角形頂點(diǎn)繪制,F為三角形個(gè)數(shù)

//頂點(diǎn)的遍歷

for iVertex:=0 to 2 do//iVertex為每個(gè)三角形頂點(diǎn);訪問(wèn)三角形三個(gè)點(diǎn)

begin

PointIndex:=Faces[F].VertIndex[iVertex];//找到每個(gè)點(diǎn)的索引號(hào)

glNormal3f(Normals[PointIndex].X,Normals[PointIndex].Y, Normals[PointIndex].Z);

//設(shè)置三角面的法向量,為畫三角形準(zhǔn)備

glVertex3f(Verts[PointIndex].X, Verts[PointIndex].Y, Verts[PointIndex].Z);

//設(shè)置三角形其中一個(gè)頂點(diǎn)的坐標(biāo)

end;

glEnd;

2 對(duì)三維模型進(jìn)行交互控制

3DS的特長(zhǎng)是三維建模,OpenGL的優(yōu)勢(shì)則在于對(duì)三維模型進(jìn)行交互控制和變化.根據(jù)三維圖形的幾何變換理論,OpenGL提供對(duì)三維對(duì)象在三維空間進(jìn)行變化的庫(kù)函數(shù)[14].

當(dāng)矩陣初始化glLoadIdentity()后,調(diào)用OpenGL提供的glTranslatef()函數(shù)作視點(diǎn)變換.Void glTranslate{f,d}(TYPE x,TYPE y,TYPE z),函數(shù)參數(shù)(x,y,z)表示視點(diǎn)在視點(diǎn)坐標(biāo)系中移動(dòng)的位置.根據(jù)三維圖形的幾何變換理論,OpenGL提供對(duì)三維對(duì)象進(jìn)行空間變化的庫(kù)函數(shù).由參數(shù)x,y,z定義了一個(gè)矩陣,該矩陣與當(dāng)前矩陣相乘,這樣的結(jié)果使物體在3個(gè)坐標(biāo)軸上發(fā)生平移,平移的距離大小為x,y,z(或以相同的量移動(dòng)局部坐標(biāo)系).

當(dāng)前矩陣乘以某一個(gè)矩陣,該矩陣使得一個(gè)物體(或局部坐標(biāo)系)繞一條從原點(diǎn)到點(diǎn)(x,y,z)的線,沿逆時(shí)針?lè)较蛐D(zhuǎn).參數(shù)angle給出旋轉(zhuǎn)的角度值,旋轉(zhuǎn)函數(shù)為:Void glRotate{f,d}(TYPE angle,TYPE x,TYPE y,TYPE z);

函數(shù)Void glScale{f,d}(TYPE x,TYPE y,TYPE z)定義了一個(gè)矩陣,與當(dāng)前矩陣相乘,使得物體沿坐標(biāo)軸拉伸、縮短以及相對(duì)于坐標(biāo)軸做鏡面反射.

這些函數(shù)可以使得到的三維人體模型在三維空間中作任意的變化,方便于服裝設(shè)計(jì)者從多個(gè)角度來(lái)觀察人體,如圖1所示.

圖1 不同角度觀察服裝人體模型

3 利用紋理映射技術(shù)模擬不同面料

紋理分為顏色紋理和幾何紋理兩種類型.生成顏色紋理的一般方法是在平面區(qū)域(即紋理空間)上預(yù)定義紋理圖案,然后建立物體表面的點(diǎn)與紋理空間的點(diǎn)的對(duì)應(yīng)關(guān)系(即映射).當(dāng)物體表面的可見(jiàn)點(diǎn)確定以后,以紋理空間的對(duì)應(yīng)點(diǎn)的值乘以亮度值,就可以把紋理圖案附著在物體表面.也可以用類似的方法讓物體表面產(chǎn)生凹凸不平的凸包紋理.不過(guò)這時(shí)的紋理作用在法向量上,而不是作用于顏色亮度.在織物所形成的服裝表面,應(yīng)該說(shuō)兩種紋理都存在,但是顏色紋理占主要地位.

在紡織品中,大多織物具有印花圖案或織物紋理.只有把這種印花圖案和織物紋理模擬出來(lái),才能更好地體現(xiàn)織物的性質(zhì)和穿著效果.可以通過(guò)紋理映射技術(shù)將織物圖案映射到服裝模型的表面,由此可以實(shí)現(xiàn)任意更換面料的目的,達(dá)到織物三維著裝的仿真效果.

理論上,紋理映射的計(jì)算過(guò)程如下:(1)紋理圖像的選取與預(yù)處理;(2)紋理映射三維曲面的建模;(3)確定紋理映射的方法和對(duì)應(yīng)關(guān)系,包括反走樣處理;(4)二維圖像向三維曲面映射;(5)透視變換顯示.

在服裝曲面上實(shí)現(xiàn)圖案紋理效果,實(shí)質(zhì)上就是織物圖案在物體表面上的映射.首先根據(jù)紋理圖案和物體的邊界定義,確定一個(gè)映射函數(shù),然后使用逆向映射將圖案映射到服裝曲面空間.先將紋理圖案空間點(diǎn)通過(guò)投影逆變換成服裝曲面上的點(diǎn),參數(shù)化成實(shí)際坐標(biāo)(x,y,z),再利用映射函數(shù)求出相應(yīng)的紋理元素的光亮度值作為該圖像元素的明暗值,這實(shí)際上是一個(gè)坐標(biāo)轉(zhuǎn)化的過(guò)程.

要實(shí)現(xiàn)不同面料在服裝上的模擬,只需將各種面料作為紋理圖案映射到服裝曲面上.在程序中進(jìn)行服裝曲面的三角面片模擬之前用OpenGL所提供的紋理映射函數(shù)綁定所選定的面料圖片作為紋理圖案,即可實(shí)現(xiàn)同一服裝的不同面料的模擬效果,具體效果如圖2所示.

圖2 不同面料展示模擬

4 結(jié)束語(yǔ)

本文將3D Studio MAX技術(shù)、OpenGL軟件與Delphi語(yǔ)言結(jié)合起來(lái),兼用三者之長(zhǎng),將從3DS中提取的人體數(shù)據(jù)模型導(dǎo)入Delphi中,進(jìn)一步將人體與服裝結(jié)合達(dá)到量體裁衣的目的,對(duì)于特殊群體通過(guò)建立人體模型也可得出適合其體型的服裝,最終在OpenGL中展示著裝效果.整個(gè)建模過(guò)程無(wú)需繁瑣的手工繪制及大量計(jì)算,更加智能化地從多角度觀察不同材質(zhì)的著裝效果.該方法不僅可以應(yīng)用在服裝CAD方面,還可以應(yīng)用到系統(tǒng)仿真、產(chǎn)品設(shè)計(jì)、工程分析、虛擬現(xiàn)實(shí)、大型游戲開(kāi)發(fā)過(guò)程中的場(chǎng)景設(shè)計(jì)以及科學(xué)計(jì)算的可視化等各個(gè)方面.

參考文獻(xiàn):

[1] 袁銘,王建輝,周醉,等.一種古建筑三維建模方法——以蘇州虎丘塔為例[J].蘇州科技學(xué)院學(xué)報(bào):工程技術(shù)版,2009,22(1):43-47.

[2] 張靜,許潔.古文物藝術(shù)造型的數(shù)字化與虛擬展示[J].西安工程大學(xué)學(xué)報(bào),2011,25(6):835-837.

[3] 王名亮.定制化人像產(chǎn)品三維建模知識(shí)庫(kù)技術(shù)研究及應(yīng)用[D].重慶:重慶大學(xué),2013.

[4] 單超杰.皮影人物造型與三維建模技術(shù)結(jié)合的創(chuàng)新研究[D].上海:東華大學(xué),2013.

[5] 張瑞云.用紋理映射技術(shù)實(shí)現(xiàn)三維著裝效果展示[J].中國(guó)紡織大學(xué)學(xué)報(bào),2000(4):53-56.

[6] 吳夢(mèng)熊,胡建鵬,耿兆豐,等.紋理映射技術(shù)在三維虛擬服裝模擬中的應(yīng)用與實(shí)現(xiàn)[J].東華大學(xué)學(xué)報(bào):自然科學(xué)版,2008,34(4):445-448.

[7] 王萍,張秀.基于三維人體測(cè)量的蘇南地區(qū)青年女性體型特征[J].西安工程大學(xué)學(xué)報(bào),2012,26(3):313-316.

[8] 劉浩翰,唐好選.人體的幾何造型[J]. 中國(guó)民航學(xué)院學(xué)報(bào),2003,21(增刊2):173-175.

[9] 李勇,胡敏,付小莉.三維人體建模方法的研究[J].紡織學(xué)報(bào),2002,23(5):80-82.

[10] 馮毅力,李汝勤.人體模型的三維數(shù)據(jù)拾取和服裝曲面的生成[J].紡織學(xué)報(bào),2004,25(6):47-48.

[11] 楊東梅,朱勝緣,路偉成,等.OpenGL與3D Studio MAX結(jié)合實(shí)現(xiàn)三維仿真[J].應(yīng)用科技,2004,31(2):33-35.

[12] WOO Mason,NEIDERF J,DAVIS Tom,et al.OpenGL編程權(quán)威指南[M].吳文武,段海波,薛風(fēng)武,譯.2版.北京:中國(guó)電力出版社,2001:1-2.

[13] 和平鴿工作室.OpenGL高級(jí)編程與可視化系統(tǒng)開(kāi)發(fā)[M].北京:中國(guó)水利水電出版社,2003:74-81.

[14] FRANCIS S Hill J R,STEPHEN M Kelley.計(jì)算機(jī)圖形學(xué)(OpenGL版)(影印版)[M].胡事民,劉利利,劉永進(jìn),等譯.北京出版社,2010:258-277.

猜你喜歡
人體模型曲面紋理
基于BM3D的復(fù)雜紋理區(qū)域圖像去噪
軟件(2020年3期)2020-04-20 01:45:18
相交移動(dòng)超曲面的亞純映射的唯一性
使用紋理疊加添加藝術(shù)畫特效
圓環(huán)上的覆蓋曲面不等式及其應(yīng)用
TEXTURE ON TEXTURE質(zhì)地上的紋理
Coco薇(2017年8期)2017-08-03 15:23:38
基于曲面展開(kāi)的自由曲面網(wǎng)格劃分
消除凹凸紋理有妙招!
Coco薇(2015年5期)2016-03-29 23:22:15
基于乘員體型的車輛安全性研究
汽車文摘(2015年11期)2015-12-14 19:10:11
Family makes 45—foot icicle in front yard
體驗(yàn)創(chuàng)新:3D人體掃描儀測(cè)三圍
丹巴县| 泊头市| 怀柔区| 邢台县| 康保县| 新营市| 阳泉市| 聂拉木县| 宁都县| 宁化县| 巴里| 华池县| 万宁市| 社会| 乌兰浩特市| 奇台县| 辉南县| 郓城县| 吴堡县| 呼图壁县| 棋牌| 繁峙县| 龙岩市| 沈阳市| 房产| 兴宁市| 临颍县| 江阴市| 和平区| 岐山县| 慈利县| 福建省| 永和县| 福泉市| 长泰县| 富平县| 铜鼓县| 罗平县| 南江县| 通海县| 临高县|