亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,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ù)開發(fā)部,河南 鄭州 450003)

        0 引 言

        目前,基于二維拓?fù)淇臻g的服裝CAD技術(shù)已很普遍且基本成熟并趨于穩(wěn)定.相對于二維服裝CAD而言,三維服裝CAD具有立體、直觀、易操作可提供真實(shí)的試衣效果等諸多優(yōu)點(diǎn).進(jìn)入21世紀(jì)以來,三維建模技術(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ù)來實(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)、衣殼曲面的生成是建模的過程,也是三維服裝真實(shí)感效果和紋理映射的基礎(chǔ),建模過程為:獲得原始數(shù)據(jù)點(diǎn)并進(jìn)行預(yù)處理→對數(shù)據(jù)插入,提高精度→構(gòu)造三維模型點(diǎn)云→用Bezier曲面法填充模型[6].

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

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

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

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

        OpenGL (開放性圖形庫,Open Graphic Library),是美國高級圖形和高性能計(jì)算機(jī)系統(tǒng)公司SGI所開發(fā)的三維圖形標(biāo)準(zhǔn)庫,具有繪制三維圖形的各項(xiàng)功能.以其為基礎(chǔ)開發(fā)的應(yīng)用程序可以方便地在各個(gè)平臺(tái)間移植,特別是在三維圖形的功能上非常優(yōu)秀[11-12].然而OpenGL的專長并不是建模,因?yàn)镺penGL并沒有提供建立三維模型的高級命令,它是通過基本的幾何圖元點(diǎn)、線及多邊形建立三維立體模型.相比而言,利用3D Studio MAX建立三維立體模型則非常容易,但建立的模型缺乏編程性和可控制性,而這正是OpenGL的優(yōu)勢所在.基于此種情況,用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)信息,用于接下來的三維人體曲面建模.

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

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

        1.3 3DS文件的讀取

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

        const

        M3DMAGIC=$4D4D; //文件的開始

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

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

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

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

        //對于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; //對于每個(gè)目標(biāo)的定義

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

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

        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類來實(shí)現(xiàn)3DS模型的讀取與重建.

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

        glBegin(GL_TRIANGLES);//通過參數(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);訪問三角形三個(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 對三維模型進(jìn)行交互控制

        3DS的特長是三維建模,OpenGL的優(yōu)勢則在于對三維模型進(jìn)行交互控制和變化.根據(jù)三維圖形的幾何變換理論,OpenGL提供對三維對象在三維空間進(jìn)行變化的庫函數(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提供對三維對象進(jìn)行空間變化的庫函數(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í)針方向旋轉(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)軸拉伸、縮短以及相對于坐標(biāo)軸做鏡面反射.

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

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

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

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

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

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

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

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

        圖2 不同面料展示模擬

        4 結(jié)束語

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

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

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

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

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

        [8] 劉浩翰,唐好選.人體的幾何造型[J]. 中國民航學(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版.北京:中國電力出版社,2001:1-2.

        [13] 和平鴿工作室.OpenGL高級編程與可視化系統(tǒng)開發(fā)[M].北京:中國水利水電出版社,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
        基于曲面展開的自由曲面網(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人體掃描儀測三圍
        亚洲av乱码一区二区三区人人| 扒开非洲女人大荫蒂视频| 国产人妻精品一区二区三区不卡| 色老头在线一区二区三区| 免费特级黄毛片| 乱伦一区二| 免费一级黄色大片久久久| 国产精品无码久久AⅤ人妖| 丰满人妻被猛烈进入中文字幕护士| 国产另类av一区二区三区| 日韩精品一区二区三区乱码| 蜜芽亚洲av无码精品色午夜| 热re99久久精品国99热| 国产午夜福利不卡在线观看| 国产成人无码一区二区三区在线| 亚洲男同志gay 片可播放| 五月婷网站| 激情综合网缴情五月天| 日本超骚少妇熟妇视频| 成人影院在线观看视频免费| 公和我做好爽添厨房中文字幕| 人人澡人人澡人人看添av| 国产乱沈阳女人高潮乱叫老| AV在线毛片| 精品日韩在线观看视频| 一本久道高清视频在线观看| 搡女人真爽免费视频大全| 手机看片久久国产免费| 亚洲精品无码人妻无码| 国产成人精品日本亚洲专区6| 中文字幕在线一区乱码| 口爆吞精美臀国产在线| 亚洲人精品午夜射精日韩| 精品国产午夜理论片不卡| 中字幕久久久人妻熟女 | 午夜三级a三级三点| 日韩精品视频在线观看免费| 午夜精品一区二区三区视频免费看 | 人片在线观看无码| 亚洲一区二区三区毛片| 日韩在线永久免费播放|