本發(fā)明涉及一種用于解決三維虛擬服裝穿著中服裝自穿透問題的方法。
背景技術:
三維虛擬服裝在人體穿著時,會因為服裝各部分之間距離過近,造成服裝自身的網(wǎng)格穿透。將如圖1a所示為源三維虛擬上衣穿著后,衣袖與衣身發(fā)生穿透,如圖1b及圖1c所示,其中,圖1b為源三維虛擬上衣穿著后衣袖與衣身發(fā)生穿透示意圖,圖1c為三維虛擬衣袖穿透衣身的內(nèi)部示意圖。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種解決三維虛擬服裝穿著中服裝自穿透問題的方法。
為了達到上述目的,本發(fā)明的技術方案是提供了一種三維虛擬服裝自穿透補償方法,其特征在于,包括以下步驟:
步驟1、將源三維虛擬服裝網(wǎng)格分割為不同的部分;
步驟2、將穿著后的三維虛擬服裝從上到下使用水平面進行環(huán)切,得到穿著后三維虛擬服裝各個部分的切環(huán);
步驟3、找到三維虛擬服裝不同部分的相交切環(huán),并記錄相交切環(huán)的相交開始點及相交結(jié)束點;
步驟4、找到相交切環(huán)的相交開始點和相交結(jié)束點之間所經(jīng)過的三維服裝網(wǎng)格面,這些產(chǎn)生交集的網(wǎng)格面分為兩部分,一部分為穿透網(wǎng)格面,記錄為ψ,另一部分為被穿透網(wǎng)格面,記錄為ψ′。
步驟5、對ψ進行穿透補償,包括以下步驟:
步驟5.1、通過層切法,獲得同一水平切面ψ和ψ′的切環(huán),使用ψ切環(huán)經(jīng)過的三角形的頂點vi的法向量n的反向n′,向ψ′做射線,求得交點vi′;
步驟5.2、以頂點vi為中心,分解頂點vi所在的三角形,并移動頂點vi到交點vi′;
步驟5.3、通過拉普拉斯均值變換保持補償過程中三維虛擬服裝裁片的幾何特征,頂點vi鄰居頂點的變換公式為:
式中,n(vi)為頂點vi的鄰居頂點集合,vj是n(vi)中第j個頂點,j為頂點索引,wij為鄰居頂點的權(quán)重,
步驟5.4、重復步驟5.1至步驟5.3,直到ψ和ψ′的切環(huán)沒有相交為止。
優(yōu)選地,在所述步驟2之后,并所述步驟3之前還包括:
對步驟2得到的所述切環(huán)進行排序。
優(yōu)選地,在所述步驟1中,所述源三維虛擬服裝網(wǎng)格為源三維虛擬上衣網(wǎng)格,將源三維虛擬上衣網(wǎng)格切分為衣身、左衣袖、右衣袖,則所述切環(huán)的排序遵循以下原則:
原則一、對于左衣袖和衣身的穿透補償,左衣袖切環(huán)開始位置為x正方向最大處,衣身切環(huán)開始位置為x負方向最小處;
原則二、對于右衣袖和衣身的穿透補償,右衣袖切環(huán)開始位置為x負方向最小處,衣身切環(huán)開始位置為x正方向最大處。
本發(fā)明解決了三維虛擬服裝穿著中出現(xiàn)的穿透問題,使發(fā)生穿透的服裝網(wǎng)格移動到正確的位置。
附圖說明
圖1a為源三維虛擬上衣;
圖1b為源三維虛擬上衣穿著后衣袖與衣身發(fā)生穿透示意圖;
圖1c為三維虛擬衣袖穿透衣身的內(nèi)部示意圖;
圖1d為使用本發(fā)明對三維虛擬衣袖和衣身進行自穿透補償后的內(nèi)部示意圖;
圖2為源三維虛擬上衣分為三部分示意圖;
圖3a及圖3b為穿著后的三維虛擬上衣環(huán)切,其中,圖3a為密集切環(huán),圖3b為稀疏相交切環(huán);
圖4a及圖4b為三維虛擬上衣各部分的切環(huán)排序,其中,圖4a為衣身切環(huán)和左衣袖切環(huán)的排序,圖4b為衣身切環(huán)和右衣袖切環(huán)的排序;
圖5為維虛擬上衣不同部位稀疏切環(huán)相交點;
圖6為三維虛擬上衣不同部位穿透網(wǎng)格;
圖7為穿透補償后無相交的三維虛擬上衣切環(huán)。
具體實施方式
下面結(jié)合具體實施例,進一步闡述本發(fā)明。應理解,這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領域技術人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。
針對圖1b及圖1c所示的穿透情況,采用本發(fā)明對三維虛擬衣袖和衣身進行自穿透補償后,得到的結(jié)果如圖1d所示,具體包括以下步驟:
步驟1、將源三維虛擬上衣分割為如圖2所示的左衣袖,右衣袖,衣身三部分。
步驟2、將穿著后的三維虛擬上衣從上到下使用水平面進行環(huán)切,得到穿著后三維虛擬上衣的左衣袖、右衣袖、衣身三部分的切環(huán)。如圖3a所示,如果三維虛擬上衣不同部分有穿透,不同部分的切割環(huán)會相交,如圖3b所示。
步驟3、對切環(huán)進行排序,排序遵循以下原則:
原則一、對于左衣袖和衣身的穿透補償,左衣袖切環(huán)開始位置為x正方向最大處,衣身切環(huán)開始位置為x負方向最小處,如圖4a所示。
原則二、對于右衣袖和衣身的穿透補償,右衣袖切環(huán)開始位置為x負方向最小處,衣身切環(huán)開始位置為x正方向最大處,如圖4b所示。
步驟4、找到三維虛擬服裝不同部分的相交切環(huán),并記錄相交切環(huán)的相交開始點及相交結(jié)束點,如圖5所示。
步驟5、找到相交切環(huán)的相交開始點和相交結(jié)束點之間所經(jīng)過的三維服裝網(wǎng)格面,這些產(chǎn)生交集的網(wǎng)格面分為兩部分,一部分為穿透網(wǎng)格面,記錄為ψ,另一部分為被穿透網(wǎng)格面,記錄為ψ′。如圖6所示。
步驟6、對ψ進行穿透補償,分為以下步驟:
步驟6.1、通過層切法,獲得同一水平切面ψ和ψ′的切環(huán),使用ψ切環(huán)經(jīng)過的三角形的頂點vi的法向量n的反向n′,向ψ′做射線,求得交點vi′;
步驟6.2、以頂點vi為中心,分解頂點vi所在的三角形,并移動頂點vi到交點vi′;
步驟6.3、通過拉普拉斯均值變換保持補償過程中三維虛擬服裝裁片的幾何特征,頂點vi鄰居頂點的變換公式為:
式中,n(vi)為頂點vi的鄰居頂點集合,vj是n(vi)中第j個頂點,j為頂點索引,wij為鄰居頂點的權(quán)重,
步驟6.4、重復步驟6.1至步驟6.3,直到ψ和ψ′的切環(huán)沒有相交為止。,如圖7所示。