本發(fā)明屬于計算機輔助設計與圖形圖像技術領域,涉及一種土家織錦虛擬設計系統,具體涉及一種基于Unity 3D的土家織錦虛擬設計系統。
背景技術:
土家織錦是土家族民間的一種手工織錦,其圖案取材于土家人民生產、生活以及風俗習慣的方方面面,圖案的色彩和構成形式,表現出土家人民的審美情操和民族意識,具有極強的欣賞價值。土家織錦擁有龐大的圖案體系,現存約200多種。通過對土家織錦圖案的構成形式進行研究,總結出土家織錦圖案構成特點。土家織錦圖樣多為單個元素對稱重復出現而組成的,如實畢花、棋盤花、船船花等以二方連續(xù)或菱形的四方連續(xù)組成;馬畢花、陽雀花、牡丹花以縱向橫向的二方連續(xù)或單向反復移動組成;也存在如“四十八勾”系列圖案是以單一形狀為元素,以菱形向四周擴散,形成放射的狀態(tài)。雖然土家織錦經典圖案具有很強的欣賞價值和科學研究價值,但大多數織錦圖案由少數傳承人憑記憶記錄下來,由于傳承方式的封閉性和停滯性,圖案的紋樣種類逐漸減少,并缺少與多元社會的融合性,因此,對土家織錦圖案的構成和設計進行研究,具有極大的教育意義和價值。
盡管如此,對土家織錦的圖案設計領域的研究較少,對土家織錦的研究大多集中在圖案的構成和色彩的搭配上,而對圖案的設計與重構研究較少。
對于土家織錦虛擬設計系統的研究,難點在于三個方面:一是對土家織錦圖案、紋樣和圖元的分割和以及圖案骨格構成規(guī)律分析,二是對選定圖案顏色的提取、對圖案封閉空間的判斷和顏色替換,三是所設計的圖案與三維模型進行融合。
技術實現要素:
為克服土家織錦組織結構模擬的不足和土家織錦圖案設計軟件的缺失,擴大土家織錦的非物質遺產數字化保護的力度。本發(fā)明提出一種基于Unity 3D的土家織錦虛擬設計系統。
本發(fā)明所采用的技術方案是:一種基于Unity 3D的土家織錦虛擬設計系統,其特征在于:包括基礎資源庫、圖案賞析模塊、初級設計模塊和高級設計模塊;
所述基礎資源庫,是根據采集到的土家織錦圖案,通過對圖案進行數字化和標準化處理,在土家織錦組織結構的基礎上對圖案進行分割,從而建立的資源庫;
所述圖案賞析模塊,用于通過調用基礎資源庫,結合JSON和NGUI形成預覽界面;所述圖案賞析模塊支持鼠標、觸摸事件;
所述初級設計模塊:用于對分割的織錦紋樣進行圖形圖像處理,然后根據圖案骨格將紋樣進行再創(chuàng)作形成圖案,最后將圖案應用于三維模型,形成可視化效果,并應用于pc端和移動端;
所述高級設計模塊:用于根據土家織錦紋樣提取的基本圖元筆刷,然后基于基本圖元筆刷進行再創(chuàng)作,通過賦予紋樣骨格形成圖案,最后將圖案應用于三維模型,形成可視化效果,并應用于pc端和移動端。
本發(fā)明首先基于土家織錦經典作品數字化處理,形成基礎資源庫,其次,在虛擬設計系統部分希望用戶在欣賞到一系列經典土家織錦圖案賞析先驗知識之后進行初級設計和高級設計。
本發(fā)明的系統開發(fā)選擇Unity 3D平臺和c#語言,Unity 3D是虛擬現實、跨平臺應用程序開發(fā)引擎,可發(fā)布Windows、Mac、Wii、iPhone、WebGL、Windows phone 8和Android平臺。
本發(fā)明通過Unity 3D平臺可形成一種基于多終端的土家織錦虛擬設計系統,一方面圖案庫,紋樣庫,色彩庫,圖案骨格庫,圖元庫可作土家織錦研究和設計的重要資源,另一方面土家織錦專業(yè)或也與用戶可直接應用土家織錦的虛擬設計,亦可將其他圖案應用于三維模型查看設計效果,本法明保留圖案保存格式轉換接口,可將圖案生成CAD圖供智能生產調用。
附圖說明
圖1是本發(fā)明實施例的系統架構圖;
圖2 是本發(fā)明實施例的土家織錦組織構成結構圖;
圖3是本發(fā)明實施例的初級設計流程圖。
圖4是本發(fā)明實施例的高級設計流程圖。
具體實施方式
為了便于本領域普通技術人員理解和實施本發(fā)明,下面結合附圖及實施例對本發(fā)明作進一步的詳細描述,應當理解,此處所描述的實施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
對土家織錦虛擬設計系統的研究,重點在于以土家織錦現存圖案構成規(guī)律為依據,設計并實現土家織錦虛擬設計系統,使用戶能夠按照紋樣或者圖元自主設計圖案,根據對稱、鏡像、平鋪等骨格排列規(guī)律對圖案元素進行變換,從而形成具有土家織錦圖案構成特點的新圖案。其中要求能夠對元素的顏色、大小、位置、切錯角進行選擇和變換,最終能夠查看所設計的圖案應用于日常用品如抱枕、床單、圍巾、衣服上的效果。本發(fā)明對土家織錦的傳承和發(fā)展具有很深遠的意義。
本發(fā)明需要在通過游戲開發(fā)引擎Unity 3D連接web服務器讀取基礎資源庫,構建基于Unity 3D的土家織錦虛擬設計系統。具體功能模塊如圖1所示。
1、基礎資源庫,提供圖案賞析、初級設計和高級設計調用的圖案庫,紋樣庫,色彩庫,圖案骨格庫和圖元庫;通過土家織錦重要傳承人獲取土家織錦經典圖案,用高清相機采集為數字圖像,再利用CorelDraw 和Photoshop 將圖案進行數字化和標準化處理,去除冗余色和模糊分界線;通過分析土家織錦組織結構,想圖案中的紋樣、圖案骨格和圖元分割出來,另外吸取圖案中常用顏色建立RGB和CMYK色值和圖樣,通過JSON將圖案,紋樣,色彩,圖案骨格和圖元進行封裝,建立圖案——紋樣——骨格——圖元之間關聯結構。
2、圖案賞析模塊,調取基礎資源庫中JSON數據,再UNITY 3D中調用LITJSON進行數據解析,分別循環(huán)遍歷讀取圖案在WEB服務器上相應路徑的圖案和圖案名稱。利用鼠標MouseEvent()事件和觸摸GetTouch()事件對圖案切換進行監(jiān)聽。
3、初級設計模塊,對紋樣進行色彩,切角和組織結構變換,形成創(chuàng)新圖案,將圖案與三維模型邊緣降維和法線映射處理,形成設計可視化效果。請見圖2和圖3,具體包括以下子模塊:
(1)紋樣讀取子模塊:調取紋樣庫中進行色彩和分割線處理的紋樣JSON數據,循環(huán)遍歷紋樣路徑,利用JsonMapper方法進行數據解析。
(2)紋樣主顏色提取子模塊:利用區(qū)域生長法進行顏色遍歷和紋樣主色色圖的生成?;舅惴ㄊ菍⒕哂邢嗤伾南笏丶掀饋順嫵蓞^(qū)域。首先對每個紋樣區(qū)域找出一個種子象素(0,0)作為生長的起點,然后將種子象素周圍鄰域中與種子有相同顏色的象素合并到種子象素所在的區(qū)域中。而新的象素繼續(xù)做種子向四周生長,直到再沒有滿足條件的象素可以包括進來,一個顏色區(qū)域就形成了。
(3)紋樣顏色替換子模塊:完成紋樣顏色的替換。在任意需要更改的紋樣主色塊上點擊事件,將調出已經封裝的土家織錦常用顏色庫。將區(qū)域生長形成的該區(qū)域所有像素點顏色利用SetPixel()方法進行顏色替換。
(4)紋樣處理子模塊:完成紋樣縮放,旋轉,切角變換。UNITY 3D可以利用歐拉角變換完成移動旋轉和縮放,集體到GameObject采用Transform函數來控制元素的移動、旋轉、縮放;基本用法如下所示:
transform.Translate(Vector3.forward *TranslateSpeed) //Vector3.forward 表示“向前”
transform.Rotate(Vector3.up *Time.deltaTime * speed) // 繞Y軸旋轉
transform.localScale += new Vector3(x, 0, z); //大小縮放處理
切錯角變換,再UNITY 3D 當中普遍采用四元素
Quaternion newQ = Quaternion.LookRotation(new Vector3(vz.x,vz.y,vz.z),new Vector3(vy.x,vy.y,vy.z));
(5)圖案骨格設定子模塊:利用平鋪,鏡像,對稱等方法將紋樣進行骨格化,形成具體圖案。
通過對土家織錦圖案進行解析,分析其結構形式、排列方法、對稱關系,提取構成該圖案的并確定圖樣排列類型(單幅、雙幅并列、雙幅鏡像、多幅填充);和圖案長寬構成(由多幅圖樣進行橫向或縱向延伸形成)。將這種組織結構形成紋樣骨格庫,通過對紋樣骨格的選擇形成具體的圖案。同時設定長寬比,形成圖案在橫向或者縱向上的延伸。
(6)圖案與模型融合子模塊:將圖案動態(tài)加載到三位模型上,形成可視的設計效果。在3Dmax中設計土家織錦經典模型(所述發(fā)明設定模型有抱枕、上衣、圍巾、床單),導出為.FBX文件,為實現模型的動態(tài)加載,需要利用ASSETBUNDLE對模型進行包處理,再把包文件上傳到WEB數據庫,通過讀取數據庫JSON數據,在程序運行時再進行加載,UNITY 3D 采用WWW類動態(tài)加載,然后利用renderer.material.mainTexture更換材質貼圖。將初級設計所得圖案與選定模型進行融合,即將所得圖案貼放到模型的任意位置,并與三維模型各頂點貼合,為保持貼圖效果明顯,貼圖邊沿融合效果形成貼圖效果。
(7)保存效果子模塊:對所得圖案、圖案與三維模型融合后效果進行存儲,生成JPG、PNG格式文件或CAD格式。
4、高級設計模塊:通過調用筆刷,用戶自行設計創(chuàng)意多變的織錦紋樣,同初級設計將紋樣進行縮放、旋轉、顏色變換,同紋樣骨格形成的圖案應用于三維模型。請見圖4,具體包括以下子模塊:
(1)紋樣繪制子模塊:對土家織錦傳統經典圖案進行解析,獲取構成圖案的基本圖元,經過去邊緣處理,形成可以自由縮放的圖形工具,將圖元進行JSON封裝并存儲形成圖元庫,作為高級設計中繪制圖樣的筆刷工具。Unity 3D當中的筆刷工具本質是帶透明通道圖形,通過設置顏色把這個筆刷紋理渲染到RenderTexture上。選擇基礎工具,在工作區(qū)對圖樣進行繪制,一個圖樣可由多個圖元構成,即繪制時可選擇多種基礎工具,并可以實時刪除不需要的筆畫。并設立歷史畫筆記錄,可隨時返回并保存畫筆。筆刷在繪制中可以設置筆刷顏色(同初級設計一樣,調用土家織錦顏色庫)。
(2)筆刷修正子模塊:利用橡皮檫功能對冗余或不當的筆刷進行擦除修正,實現邏輯是監(jiān)聽到到鼠標點擊后,將屏幕坐標轉換為UI攝像機世界坐標,然后將世界坐標轉換為相對于筆刷圖片的坐標,根據坐標判斷點擊點是否在需要修改的筆刷圖片內部,則將以該點為圓心,筆觸大小為半徑的筆刷部分通道設置為透明。
(3)顏色替換子模塊:對應經設計半成品或成品紋樣進行顏色更改。涉及到紋樣配色問題,筆刷作為初始設置,后期各屬性(顏色、大小、位置)均需設計之要而進行更改。顏色替換根據歷次選擇筆刷的ID號來對同一個封閉區(qū)域的顏色進行更改。顏色替換的同時,會觸發(fā)對默認的圖樣陣列,和默認三維模型顏色的更改,并顯示顏色變換后的圖樣圖案與三維模型展示效果。
(4)紋樣屬性設定子模塊:利用四元素方法對紋樣進行基本屬性設置(旋轉、縮放、切錯角變換)。在完成筆刷設計之后需要對整體紋樣進行合成,在選擇紋樣屬性時進行設置,基本功能方法參照初級設計紋樣處理。
(5)圖樣骨格變換子模塊:利用土家織錦圖案基本骨格構成等方法將紋樣進行骨格化,形成具體圖案。如前所述分析土家織錦經典圖案的結構形式、排列方法、對稱關系,形成圖案骨格構成(單幅、雙幅并列、雙幅鏡像、多幅填充)和圖案長寬構成。對圖樣進行排列,從而形成完整的土家織錦圖案。
(6)圖案與模型融合子模塊:將設計圖案與三維選定模型(所述發(fā)明設定模型有抱枕、上衣、圍巾、床單)融合。通過讀取數據庫JSON數據,將高級設計所得圖案與選定模型進行融合,即將所得圖案貼放到模型的任意位置,并與三維模型各頂點貼合,形成貼圖效果。
(7)保存效果子模塊:對所得圖案、圖案與三維模型融合后效果進行存儲,生成JPG、PNG格式文件或CAD格式。
本發(fā)明支持鼠標事件和觸摸事件,利用Unity 3D平臺發(fā)布Windows、iPhone、WebGL、和Android四種常見平臺。通過多終端應用擴大土家織錦傳播力和創(chuàng)新力。
應當理解的是,本說明書未詳細闡述的部分均屬于現有技術。
應當理解的是,上述針對較佳實施例的描述較為詳細,并不能因此而認為是對本發(fā)明專利保護范圍的限制,本領域的普通技術人員在本發(fā)明的啟示下,在不脫離本發(fā)明權利要求所保護的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護范圍之內,本發(fā)明的請求保護范圍應以所附權利要求為準。