新四季網

一種三維仿真中服裝搭配穿透問題解決方法與流程

2023-10-08 10:07:19 1


本發明涉及三維仿真技術領域,特別是涉及一種Unity3D環境下的服裝仿真穿透問題解決方法。



背景技術:

服裝仿真是三維仿真技術領域中一個重要的技術方向。隨著虛擬實境技術和服裝電子商務的快速發展,更真實、更高效的服裝仿真技術能夠提供客戶更加真實的服裝購買體驗。目前主流的服裝仿真技術有彈簧質點模型、骨骼蒙皮等。這些技術能夠很好的解決服裝在物理和動作環境中的服裝狀態問題,但是服裝模型的不均勻會產生服裝搭配之間多件服裝之間的網格穿透問題。

多件服裝之間的網格穿透會導致服裝仿真效果不真實,影響仿真效果。傳統解決服裝穿透問題大多採用遞歸查找和射線求交的方法。這些方法能夠求出兩個服裝網格之間的相交網格,但計算量很大不適用於移動端。



技術實現要素:

為了克服上述現有技術的不足,本發明提供了一種三維仿真中服裝搭配穿透問題的解決方法。本發明旨在通過較低計算量來解決多件服裝之間搭配時的網格穿透問題,使服裝仿真更加真實。

本發明所採用的技術方案是:

一種三維服裝搭配穿透問題解決方法,包括Unity 3D環境下局部透明著色器、服裝模型重疊部分計算及透明方法。

其中,Unity 3D環境下局部透明著色器部分,其特徵在於,包含:

通過Unity 3D下ShaderLab語言編寫局部透明著色器。該著色器能夠通過一張帶有特定透明通道的貼圖,將該貼圖映射至模型UV空間,再通過Shader渲染,使得模型中由貼圖透明通道為0的部分透明,實現模型局部透明效果。由於Unity 3D中具有透明通道的著色器渲染時會產生深度錯誤,所以本發明通過使用不同的pass,達到深度測試的正常化。具體實現方法如下:

1、通過多通道語言結構來人為控制渲染順序。2、採用雙pass的渲染順序來實現控制渲染順序:第一個pass實現對back部分網格的渲染,同時疊加透明通道。第二個pass實現對front部分網格的渲染,同時疊加透明通道。

對於,服裝模型重疊部分計算及透明方法,其特徵在於,包含:

本發明提出的方法針對不同的服裝類型和不同的服裝層次做出不同的處理方法,達到的最優效果。對於同時穿上上衣和褲子的情況,上衣的穿戴層次較褲子大,所以需要處理褲子穿透上衣部分的網格。這一部分的處理方法如下:

首先查找到上衣下邊緣的邊緣最高點。由於服裝邊緣是不規則的曲線,且服裝面片具有不連續性,要查找到邊緣最高點不能使用傳統找邊緣的方法來尋找邊緣最高點。本發明使用按角度切割,查找角度最低點的方法查找到近似的邊緣最高點。按角度切割面片首先需要將面片中的頂點坐標由笛卡爾坐標系轉換為極坐標系,再由極坐標系中按角度進行分割。笛卡爾坐標系轉換為極坐標系中需要進行轉換計算,將原坐標系中轉換為 ,極坐標中極坐標中,xoz平面中的半徑值,值為xoz平面中的角度值。轉化公式為:

轉化後在極坐標空間中,通過判斷一個角度範圍 中的y 值,找到該範圍中的最小值,當前的值為局部最小值。找到所有範圍中的值 ,求出所有的最大值,即可求出對應的上衣下邊緣的最大值的逼近值。

上述判斷一個角度範圍。由於服裝網格布局具有不確定性,每一個角度範圍的局部最小值不一定是服裝的下邊緣頂點值。為了保證查找算法的魯棒性,本發明專利提出了一個經驗值,即在每60度角度中查找局部最小值。找到下邊緣的最大值的逼近值後,需要求出褲子被上衣遮住的部分網格。將之前查找出的上衣最大值的逼近值,求出褲子網格中高於該值的面片,同時記錄三角面片中的三個頂點的UV坐標值。為避免覆蓋部分網格穿透,本發明提出將被覆蓋網格透明化處理的思路,由於穿透的網格透明度為0,所以避免了褲子網格穿透遮住了上衣網格。

上述將褲子模型被覆蓋網格透明化處理,通過計算被覆蓋網格UV空間所對應的貼圖方位透明通道置零實現。通過三角形向量計算算法,計算出被覆蓋的網格UV空間對應的區域。

上述計算被覆蓋網格UV空間,其方法為:

當找到褲子被上衣覆蓋的頂點之後,查找對應的點的UV空間坐標。將這部分頂點視為一個點集,同時這部分點在UV空間中所映射點所包圍的若干區域視為待透明區域。將三角頂點映射至UV空間,並將在UV空間中的坐標值擴展至二維透明貼圖空間。即 ,W為透明貼圖寬度,H為透明貼圖高度。將三角面片中三個點在透明貼圖空間求出最小包圍盒,求出包圍盒中所有貼圖像素是否在三角形內。如果在三角形內則透明化,如果不在則不透明。將所有在三角面片中的點視為一個集合,該集合就是上述透明貼圖中的透明區域。對於同時穿上上衣和褲子的情況,當褲子穿戴層次較上衣大,上衣穿透褲子部分網格。這一部分的處理方法如下:

首先查找到褲子上邊緣最低點,其方法為:

轉換褲子網格頂點的笛卡爾坐標系至三維極坐標系。將笛卡爾坐標系中 ,轉換為 ,給定一個角度區間將面片進行切分,在該角度區間中找到局部高度最大值。將按照角度切分的網格局部高度最大值集合求出該集合中的最小值,將該值視為褲子上邊緣的逼近最小值,將逼近最小值作為參數,將衣服模型網格中低於該值的所有面片視為一個集合。由於衣服網格較為複雜,所以需要進行面片過濾,將除服裝軀幹部分網格過濾。

上述所說面片過濾計算,其方法為:1、區分子網格。如果一個三角形與另一個三角形有兩個頂點索引值相同,這認為兩個三角形相連,求出兩個三角面片組成的小網格的包圍盒。2、網格過濾。求出所有相連的三角面片,可以組成若干個較大的三角網格,同時求出該網格的矩形包圍盒。對比矩形包圍盒中心點,根據服裝模型軀幹中心經驗值進行過濾得到軀幹部分網格。

上述服裝模型軀幹中心經驗值,本發明提出為0.2。根據Unity 3D中單位轉換,該值為20dm。將三角頂點映射至UV空間,並將在UV空間中的坐標值擴展至二維透明貼圖空間。即 ,W為透明貼圖寬度,H為透明貼圖高度。計算出三角面片在透明貼圖空間中的矩形包圍盒。通過三角形向量計算算法,對比矩形包圍盒中每一個像素點是否在三角形中,若點在三角形中則透明化如果不在則不透明。

上述計算貼圖像素是否在三角形內,採用三角形向量計算算法,其方法為:求出點P與三角形一點A的向量AP,與該點和其他三角形頂點B,C 的向量 ,如果所得向量在同一方向,返回為真。分別求出是否在同一邊,以及所得結果是否在同一邊,如果三次計算都在同一邊,認定該點在三角形中。

與現有技術相比,本發明的有益效果是:1、計算模型之間相交部分的計算量與計算時間,能夠很好的適用於手機等計算能力較低的移動端。2、將透明部分的渲染交給gpu渲染,提高整個方法的效率。3、採用包圍盒計算方法,極大減少計算量。4、在視覺上,減少服裝層次之間的面片穿透,提高用戶體驗。

附圖說明

圖1為服裝搭配穿透問題解決方案流程簡圖。

圖2為服裝搭配穿透問題解決方法流程圖。

圖3為褲子模型層次比衣服模型大的情況。

圖4為衣服模型層次比褲子模型大的情況。

圖5為上衣模型過濾示意圖。

具體實施方式

為了使本發明實現的技術手段、創作特徵、達成目的與功效易於明白了解,下面進一步闡述本發明。

本發明效果基於Unity 3D遊戲引擎實現。Unity3D遊戲引擎以其快速開發能力被眾多遊戲開發者接受,同時Unity 3D基於3D計算引擎OpenGL等,適合虛擬仿真、虛擬實境等應用開發,也適合3D圖形學、3D計算機仿真等實驗開發。

本發明中所提到的算法分為上衣層次高於褲子、褲子層次高於上衣兩方面對服裝上下衣的穿透進行處理。如圖1所示,圖1表示本發明所提出的服裝穿透解決方法。在輸入上衣和褲子模型後,確定兩個模型所在的層次關係,如果上衣層次較褲子層次高,則上衣模型在顯示時需要覆蓋褲子模型,則需要確定褲子模型的透明區域。如果褲子層次較上衣層次高,則褲子模型在顯示時需要部分覆蓋上衣模型,則需要確定上衣模型的透明區域。當上衣層次較褲子層次高時:首先初始化網格模型,通過Unity 3D接口獲取到上衣模型網格頂點數據,和褲子模型網格頂點數據。當初始化模型數據完成後,先通過坐標轉化公式將上衣頂點坐標所對應的笛卡爾坐標系,轉換為極坐標系。由於Unity 3D中坐標係為右手系,所以轉換為極坐標系的平面為XOZ平面。將原笛卡爾坐標系中 ,x,z值轉化為極坐標系。坐標系轉換公式如下:

在轉換後坐標系中,代表該點與中心軸連接的向量與x軸所成角度夾角,代表點離中心點的半徑。通過對頂點進行角度劃分就能找到在同一角度下的頂點的集合。找到同一角度範圍中的頂點的集合就能實現將網格豎直分割,從而避免服裝的複雜性。

轉化後在極坐標空間中,通過判斷一個角度範圍中的值,找到該範圍中的最小值,當前的值為局部最小值。由於不同服裝模型網格布局的複雜性,往往查找的最小值是衣服下邊緣的頂點最小值。為了提高本發明中提出的查找最低點算法的魯棒性,本發明中提供一個角度經驗值。即在每的角度空間中查找一個最小值。通過遍歷一個圓周中所有的角度範圍,找到所有範圍中的值,求出所有的最大值,即可求出對應的上衣下邊緣的最大值的逼近值,該值接近於衣服下邊緣的最大值。

查找到上衣下邊緣的最大值的逼近值後,需要求出褲子被上衣遮住的部分網格。首先將初始化所得到的褲子模型網格數據獲取,通過遍歷與上衣下邊緣的值進行對比,查找空間坐標系中y值到高於的所有褲子網格面片,將所有的查找的面片視為同一集合,同時記錄所有頂點的UV坐標值。

將查找到的面片集合中的頂點所對應的UV空間中的坐標值擴展至透明貼圖空間中,W為透明貼圖的寬度值,H為透明貼圖的高度值。擴展函數為:。找到不同模型頂點所對應的貼圖空間坐標值後,將單個面片的三個頂點在貼圖空間中的坐標值記錄,並查找到三角面片的x最大值 最小值 ,y的最大 最小值 ,通過這四個值構建三角形的矩形包圍盒 ,。w為包圍盒的寬,h為包圍盒的高。遍歷該包圍盒中所有像素值,判斷是否在三角形中。

本發明專利使用三角形向量算法求出像素值是否在三角面片映射在透明貼圖的二維三角形中。首先遍歷包圍盒中所有像素點,假設有像素點P,求出點P與三角形一點A的向量AP,與該點和其他三角形頂點B,C 的向量 ,如果所得向量在同一方向,返回為真。分別求出是否在同一邊,以及所得結果是否在同一邊,如果三次計算都在同一邊,認定該點在三角形中。

將計算在三角形中的每個像素點所在的透明通道值設為0。將所有被遮蓋的三角形所對應的UV空間中的透明通道設為0。在渲染時將被遮蓋三角形網格透明化,即可避免褲子網格穿透上衣網格。

當褲子模型層次高於上衣層次時:首先初始化網格模型,通過unity3D接口獲取到褲子、上衣網格模型的頂點和面片數據。

將上述獲取的褲子面片數據獲取後,首先將面片默認的笛卡爾坐標系轉化成極坐標系。將笛卡爾坐標系中,轉換為,給定一個角度區間將面片進行切分,在該角度區間中找到局部高度最大值。將按照角度切分的網格局部高度最大值集合求出該集合中的最小值,將該值視為褲子上邊緣的逼近最小值。將最小值的逼近值作為參數將衣服模型網格中低於該值的所有面片視為一個集合。之後將這個點面集合中除軀幹部分網格進行過濾。

上述所說的面片過濾計算,其流程為:1、區分子網格。如果一個三角形與另一個三角形有兩個頂點索引值相同,這認為兩個三角形相連。求出兩個三角面片組成的小網格的包圍盒。2、網格過濾。求出所有相連的三角面片,可以組成若干個較大的三角網格,同時求出該網格的矩形包圍盒。對比矩形包圍盒中心點,根據服裝模型軀幹中心經驗值進行過濾得到軀幹部分網格。

上述服裝模型軀幹中心經驗值,本發明提出為0.2。根據Unity 3D中單位轉換,該值為20dm。將查找到的面片集合中的頂點所對應的UV空間中的坐標值[0,1]擴展至透明貼圖空間中 ,W為透明貼圖的寬度值,H為透明貼圖的高度值。擴展函數為: 找到不同模型頂點所對應的貼圖空間坐標值後,將單個面片的三個頂點在貼圖空間中的坐標值記錄,並查找到三角面片的x最大值最小值,y的最大值最小值,通過這四個值構建三角形的矩形包圍盒,。w為包圍盒的寬,h為包圍盒的高。遍歷該包圍盒中所有像素值,判斷是否在三角形中。

通過上述三角形向量計算算法,對比矩形包圍盒中每一個像素點是否在三角形中,若點在三角形中則透明化如果不在則不透明。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀