專利名稱:一種基于可視化編輯的高級材質(zhì)合成系統(tǒng)與方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可視化編輯與合成領(lǐng)域,尤其是一種基于可視化編輯的高級材質(zhì)合成系統(tǒng)與方法。
背景技術(shù):
隨著圖形硬件可編程能力的不斷提高,圖形處理單元(Graphic ProcessingUnit)在圖形實(shí)時(shí)渲染中擔(dān)任越來越重要的角色。充分利用GPU的并行性能,減輕CPU負(fù)擔(dān),緩解CPU和圖形接口在圖形渲染過程中由于總線對整個(gè)流水線產(chǎn)生的瓶頸。其次,不斷增強(qiáng)的可編程特性,在頂點(diǎn)和象素階段可以產(chǎn)生更豐富的形狀、外觀特效。著色器模型2. 0以后的渲染管線提供了兩種可編程模塊,通過運(yùn)行定制的著色器 程序,實(shí)現(xiàn)材質(zhì)渲染,在現(xiàn)代游戲開發(fā)中也開始受到關(guān)注??梢暬牟馁|(zhì)編輯器,它能很方便地幫助不會(huì)編寫GPU著色器程序代碼的美工創(chuàng)造出令人驚嘆的材質(zhì)效果。這樣,圖形程序員被解放出來將精力更多地用于整個(gè)引擎的圖形架構(gòu)。固定的圖形管線中頂點(diǎn)的光照和坐標(biāo)變換由頂點(diǎn)程序取代,像素的顏色融合及紋理操作像素程序取代,固定圖形管線演變?yōu)榭删幊虉D形管線。人們可以在頂點(diǎn)和像素兩個(gè)級別上編程實(shí)現(xiàn)靈活的處理,滿足不同的要求。頂點(diǎn)和像素程序在圖形應(yīng)用中統(tǒng)稱為著色器程序(SHADER)。以及后來的GeForceex、7x系列和相應(yīng)的ATI 5xx核心的處理器都是沿著擴(kuò)展圖形可編程能力的方向發(fā)展,這一階段圖形處理器的特點(diǎn)是“可編程圖形管線(PROGRAMABLE PIPELINE)”。對于大多數(shù)的GPU編程語言,要高效地合并著色器很難,因?yàn)橹Z言的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)一個(gè)具有完整效果的單塊程序。特別是對于沒有編程經(jīng)驗(yàn)的美工,如果要實(shí)現(xiàn)一個(gè)比較滿意的材質(zhì)效果,就需要把自己的想法和編程人員進(jìn)行溝通,而不能夠自己來實(shí)現(xiàn)創(chuàng)作,這個(gè)過程不僅增加了成本,而且往往不能得到想要的效果。本發(fā)明,為了改善這方面的困難,在用戶不需要編寫著色器程序代碼的情況下,任意的組合美工想要得到的材質(zhì)效果。在一套嚴(yán)格定義的規(guī)則約束下,實(shí)現(xiàn)了著色器程序片段動(dòng)態(tài)重組成新的著色器程序,實(shí)時(shí)產(chǎn)生高級材質(zhì)效果。美工人員通過可視化創(chuàng)作就可以得到自己想要的材質(zhì)效果。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于可視化編輯的高級材質(zhì)合成系統(tǒng)與方法,探索動(dòng)態(tài)合成著色器程序的方法,生成這些程序、存儲(chǔ)它們以及把一個(gè)靈活的著色器程序流水線整合到3D引擎的高級技術(shù)。目標(biāo)是讓引擎的材質(zhì)渲染基于著色器程序,卻不至于只支持預(yù)定義效果,通過組織基本的效果元素,以新穎和富有創(chuàng)造性的方法進(jìn)行集成,美工不需要知道著色器流水線的系統(tǒng)知識(shí)就可以加入更加細(xì)微豐富的效果,以堆積木的方式建立出可以重組的新效果。為了達(dá)到上述目的,本發(fā)明提供了一種基于可視化編輯的高級材質(zhì)合成系統(tǒng),包括以下功能模塊主接口模塊、表達(dá)式庫模塊、屬性模塊、GPU著色器生成模塊和材質(zhì)合成模塊;主接口模塊用于定義光照方程各分量接口、法線接口、透明接口、透明遮罩接口和扭曲接口 ;
表達(dá)式庫模塊提供給用戶方法和數(shù)據(jù)結(jié)構(gòu)的集合;
屬性模塊用來確定整個(gè)渲染流程的狀態(tài)和每一個(gè)表達(dá)式結(jié)點(diǎn)的屬性;
GPU著色器生成模塊用來生成最終的GPU著色器模塊;
材質(zhì)合成模塊用于產(chǎn)生材質(zhì)渲染效果,即根據(jù)前面生成的GPU著色器模塊、用戶加載進(jìn)系統(tǒng)的三維物體模型、設(shè)置好的材質(zhì)渲染流程的狀態(tài),將材質(zhì)效果實(shí)時(shí)渲染到預(yù)覽窗中;
其中,光照方程各分量接口,用于構(gòu)造標(biāo)準(zhǔn)光照方程,建立材質(zhì)的光照效果;法線接口, 用于將傳遞進(jìn)來的法線貼圖數(shù)據(jù)解釋為每個(gè)像素的法線向量;透明接口,用于將標(biāo)量解釋為透明度;透明遮罩接口,用于確定對每一個(gè)像素是否應(yīng)用透明效果;扭曲接口,用于確定扭曲度大小;三維物體模型,用于展示生成的材質(zhì)效果。作為優(yōu)選,光照方程各分量包括漫反射分量、自發(fā)光分量、高光分量和高光系數(shù)。作為優(yōu)選,表達(dá)式庫模塊包括數(shù)據(jù)源類表達(dá)式和數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式;數(shù)據(jù)源類表達(dá)式用來定義圖形學(xué)相關(guān)的數(shù)據(jù)結(jié)構(gòu),提供數(shù)據(jù)流;數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式用來提供數(shù)據(jù)轉(zhuǎn)換的方法,為數(shù)據(jù)流的流動(dòng)提供了保證。作為優(yōu)選,屬性模塊用來設(shè)置整個(gè)材質(zhì)效果的屬性或者用來設(shè)置單獨(dú)表達(dá)式結(jié)點(diǎn)的屬性,每一種表達(dá)式都對應(yīng)著若干種屬性,這些屬性或者決定數(shù)據(jù)源的數(shù)值,或者決定數(shù)據(jù)轉(zhuǎn)換方法的狀態(tài)。作為優(yōu)選,整個(gè)材質(zhì)效果的屬性包括線框顯示、取樣方式、透明顯示。為了達(dá)到上述目的,本發(fā)明的另一目的在于提供了一種基于可視化編輯的高級材質(zhì)合成方法,包括以下步驟
步驟(I):從表達(dá)式庫模塊中選擇表達(dá)式,建立表達(dá)式結(jié)點(diǎn)組合的有向無環(huán) 步驟(2):通過屬性模塊設(shè)置每一個(gè)表達(dá)式結(jié)點(diǎn)的屬性,以及整個(gè)渲染流程的狀態(tài); 步驟(3):通過GPU著色器生成模塊加載三維物體模型,執(zhí)行渲染;
步驟(4):通過材質(zhì)合成模塊預(yù)覽材質(zhì)效果,實(shí)現(xiàn)二次編輯。優(yōu)選步驟所述步驟(I)中,表達(dá)式庫模塊中每個(gè)表達(dá)式或?qū)?yīng)一種數(shù)據(jù)源,或?qū)?yīng)一種數(shù)據(jù)轉(zhuǎn)換方法,表達(dá)式庫提供給用戶可用方法和數(shù)據(jù)結(jié)構(gòu)的集合,用戶通過表達(dá)式結(jié)點(diǎn)的自由組合,得到相應(yīng)的材質(zhì)效果。優(yōu)選步驟所述步驟(3)中,用戶選取表達(dá)式庫中的表達(dá)式,通過符合圖形學(xué)意義的組合,形成一個(gè)有向無環(huán)圖,圖的結(jié)點(diǎn)就是每一個(gè)表達(dá)式,稱為表達(dá)式結(jié)點(diǎn),通過將此有向無環(huán)圖進(jìn)行拓?fù)渑判虼_定數(shù)據(jù)的流動(dòng)方向,然后按照拓?fù)渑判虻捻樞虮闅v圖的結(jié)點(diǎn),將數(shù)據(jù)流動(dòng)的整個(gè)過程輸出到GPU著色器模塊。優(yōu)選步驟所述步驟(4)中,根據(jù)前面生成的GPU著色器模塊、用戶加載進(jìn)系統(tǒng)的模型、設(shè)置好的材質(zhì)渲染流程的狀態(tài),將材質(zhì)效果實(shí)時(shí)渲染到預(yù)覽窗中,用戶可以進(jìn)行預(yù)覽、調(diào)整攝像機(jī)朝向、旋轉(zhuǎn)模型以及二次編輯。綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是可以靈活組織表示,生成用戶想要的材質(zhì)效果,并且將動(dòng)態(tài)組合得到的著色器程序,應(yīng)用于場景編輯器的材質(zhì)中。幫助不會(huì)編寫著色器程序的美工創(chuàng)建高級材質(zhì)特效,同時(shí)可以擴(kuò)展表達(dá)式庫并擴(kuò)展材質(zhì)類型,唯一的要求,用戶需要有基本的圖形學(xué)理論知識(shí)。
本發(fā)明將通過例子并參照附圖的方式說明,其中
圖I是本發(fā)明用于基于可視化編輯的高級材質(zhì)合成系統(tǒng)的材質(zhì)結(jié)構(gòu) 圖2是本發(fā)明用于基于可視化編輯的高級材質(zhì)合成系統(tǒng)的合成渲染流程圖。
具體實(shí)施例方式本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘 述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只是一系列等效或類似特征中的一個(gè)例子而已。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。主接口模塊主接口模塊定義了一系列圖形學(xué)接口,表示圖形學(xué)各個(gè)方面,用來匯聚收集最終的數(shù)據(jù),并將數(shù)據(jù)分別加載進(jìn)光照方程各分量接口,通過,漫反射、高光、高光系數(shù)、自發(fā)光這幾個(gè)分量來構(gòu)造標(biāo)準(zhǔn)光照方程,得到真實(shí)的光照模型,建立材質(zhì)的光照效果;法線接口,用于將傳遞進(jìn)來的法線貼圖數(shù)據(jù)解釋為每個(gè)像素的法線向量,然后將該法線向量加入GPU著色器模塊關(guān)于每個(gè)像素顏色的計(jì)算中;透明接口,用于將標(biāo)量解釋為透明度,然后將該透明度數(shù)據(jù)加入GPU著色器模塊關(guān)于每個(gè)像素顏色的計(jì)算中;透明遮罩接口,用于確定對每一個(gè)像素是否應(yīng)用透明效果;扭曲接口,用于確定扭曲度大小。這一系列過程保證了整個(gè)渲染流程的通用性,整體上決定了整個(gè)材質(zhì)渲染效果。這些圖形學(xué)接口相當(dāng)于表達(dá)式結(jié)點(diǎn)有向無環(huán)圖的掛載點(diǎn),數(shù)據(jù)匯集在此進(jìn)行拼裝組合,進(jìn)而組成完整的GPU著色器模塊實(shí)現(xiàn)高級材質(zhì)效果。表達(dá)式庫模塊表達(dá)式庫模塊包含了本系統(tǒng)所有的表達(dá)式,其組成結(jié)構(gòu)包括數(shù)據(jù)源類表達(dá)式和數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式。每一個(gè)表達(dá)式包含有輸入、輸出和相應(yīng)的屬性,用來進(jìn)行數(shù)據(jù)的流動(dòng);數(shù)據(jù)源類表達(dá)式用來定義圖形學(xué)相關(guān)的數(shù)據(jù)結(jié)構(gòu)(GPU可編程語言中的內(nèi)置數(shù)據(jù)類型),提供數(shù)據(jù)流支持,一般只有輸出沒有輸入,這個(gè)類型的表達(dá)式有二維紋理、三維紋理、環(huán)境貼圖、RGB值和標(biāo)量值;數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式用來提供數(shù)據(jù)轉(zhuǎn)換的方法(基本數(shù)學(xué)操作和圖形學(xué)算法中的通用模塊),為數(shù)據(jù)流的流動(dòng)提供了保證,存在若干個(gè)輸入和一個(gè)輸出,這個(gè)類型的表達(dá)式有折射、反射、四則運(yùn)算、插值類提供給用戶不同的插值算法、坐標(biāo)變換類提供模型頂點(diǎn)和攝像機(jī)在不同坐標(biāo)空間中的變換、動(dòng)畫表示類在時(shí)間函數(shù)的作用下結(jié)合數(shù)學(xué)函數(shù)來對紋理坐標(biāo)進(jìn)行擾動(dòng)等。表達(dá)式庫模塊的實(shí)現(xiàn)形式是以DLL動(dòng)態(tài)鏈接庫的方式加載到主程序中,每當(dāng)有新的圖形學(xué)材質(zhì)算法被研究出來時(shí),我們可以將算法抽象為數(shù)據(jù)源和數(shù)據(jù)轉(zhuǎn)換方法的組合,將表達(dá)式庫中沒有的數(shù)據(jù)源表達(dá)式和數(shù)據(jù)轉(zhuǎn)換方法表達(dá)式加入表達(dá)式庫中,以便產(chǎn)生新的材質(zhì)效果。因此我們的表達(dá)式庫具有擴(kuò)展特性。表達(dá)式庫模塊提供了材質(zhì)合成系統(tǒng)的所有方法和數(shù)據(jù),用戶從庫中選擇表達(dá)式,進(jìn)行符合圖形學(xué)意義的組合,組合后的最終輸出將會(huì)流向主接口模塊相應(yīng)的接口,進(jìn)而組合成完整的GPU著色器模塊,就可以得到相應(yīng)的高級材質(zhì)效果。屬性模塊屬性模塊用來確定整個(gè)渲染流程的狀態(tài)和每一個(gè)表達(dá)式的屬性。渲染流程狀態(tài)的設(shè)置決定了渲染管線中某個(gè)渲染狀態(tài),渲染管線中的渲染狀態(tài)一般都是是或否兩種狀態(tài),或者為可配置的狀態(tài),比如是否以線框模式渲染,是否利用透明度值,透明度的計(jì)算采取的規(guī)則等;每個(gè)表達(dá)式屬性實(shí)際上是底層每個(gè)表達(dá)式類的私有成員,在將表達(dá)式拖入編輯區(qū)的同時(shí),我們可以對表達(dá)式的屬性進(jìn)行設(shè)置,這一動(dòng)作會(huì)觸發(fā)修改事件,作用于類的成員函數(shù),修改類的私有成員的值,同時(shí)修改對應(yīng)的著色器代碼。底層實(shí)現(xiàn)是通過調(diào)用當(dāng)前表達(dá)式對應(yīng)的類的成員函數(shù),設(shè)置類數(shù)據(jù)成員的值,同時(shí)更新對應(yīng)GPU著色器代碼,通過此方式動(dòng)態(tài)更新GPU著色器模塊中屬性對應(yīng)的著色器程序參數(shù)。每個(gè)表達(dá)式屬性的設(shè)置決定了 GPU著色器模塊中某個(gè)變量的值,比如RGB表達(dá)式的四個(gè)通道的值,紋理表達(dá)式的紋理坐標(biāo)取值模式等。通過屬性模塊,可以同時(shí)決定渲染管線和GPU著色器模塊的最終產(chǎn)出效果。GPU著色器生成模塊GPU著色器生成模塊用來產(chǎn)生最終的GPU著色器模塊,大致有三個(gè)過程。第一,在編輯區(qū),用戶選取表達(dá)式庫中的表達(dá)式,通過符合圖形學(xué)意義的組合, 用連線將一個(gè)表達(dá)式結(jié)點(diǎn)的輸出連接到另一個(gè)表達(dá)式結(jié)點(diǎn)的輸入,用此種方式表示數(shù)據(jù)的流動(dòng),最終表達(dá)式結(jié)點(diǎn)的輸出將會(huì)連接到主接口對應(yīng)的接口中去。第二,用戶做好連線工作后,形成一個(gè)有向無環(huán)圖,圖的結(jié)點(diǎn)就是每一個(gè)表達(dá)式,稱為表達(dá)式結(jié)點(diǎn)。第三,通過將此有向無環(huán)圖進(jìn)行拓?fù)渑判?,也就確定了數(shù)據(jù)的流動(dòng)方向,然后按照拓?fù)渑判虻捻樞虮闅v圖的結(jié)點(diǎn),就可以將數(shù)據(jù)流動(dòng)的整個(gè)過程整理出來,輸出到主接口模塊中去,主接口模塊收集到這些數(shù)據(jù),會(huì)組合成GPU著色器程序,這樣就生成了完整的GPU著色器模塊。其中,GPU著色器生成模塊還負(fù)責(zé)定義通用的渲染流程,包括定義所有組件之間的通信渠道,通信渠道在每個(gè)表達(dá)式結(jié)點(diǎn)的入口和出口端口中定義,規(guī)范了每個(gè)端口的數(shù)據(jù)類型,表達(dá)式結(jié)點(diǎn)根據(jù)入口結(jié)點(diǎn)的數(shù)據(jù)類型選擇表示底層的函數(shù)類型,表達(dá)式結(jié)點(diǎn)的輸出端口的數(shù)據(jù)類型由入口數(shù)據(jù)類型決定,通過定義規(guī)范的通信渠道定,保證了結(jié)點(diǎn)的通用特性;定義光照方程分量接口,定義了光照方程可能涉及的所有分量和參數(shù),在沒有輸入的時(shí)候,采用默認(rèn)值參與光照計(jì)算,當(dāng)將編輯區(qū)的結(jié)點(diǎn)樹和光照方程分量接口關(guān)聯(lián)時(shí),相當(dāng)于把通用的著色器代碼掛接到了這些節(jié)點(diǎn),類似總線結(jié)構(gòu)的關(guān)節(jié)點(diǎn),而編輯區(qū)的節(jié)點(diǎn)之間的連接,相當(dāng)于樹狀結(jié)構(gòu)的掛接;定義光照方程,光照方程采用豐(Phong)光照方程,光照方程分量有光照方程類型決定,編輯區(qū)所有的節(jié)點(diǎn)掛接和修改都是動(dòng)態(tài)的修改著色器代碼,映射到底層就是動(dòng)態(tài)的修改光照方程中的分量值,最終將逐像素的光照計(jì)算所得到的顏色值賦值給每個(gè)像素,渲染出來。所有節(jié)點(diǎn)的通用性、光照方程分量接口的通用性和光照方程的通用性保證了整個(gè)渲染流程的通用性。在通用流程的架構(gòu)下,規(guī)劃了渲染流水線的組件掛接點(diǎn),在特定的注入點(diǎn),可以高效的傳入通用代碼。材質(zhì)合成模塊材質(zhì)合成模塊最終產(chǎn)生材質(zhì)渲染效果。根據(jù)前面生成的GPU著色器模塊、用戶加載進(jìn)系統(tǒng)的三維物體模型、設(shè)置好的材質(zhì)渲染流程的狀態(tài),交給底層圖形渲染引擎的著色器程序加載接口,在GPU中執(zhí)行頂點(diǎn)著色器程序和像素著色器程序,將材質(zhì)效果實(shí)時(shí)渲染到預(yù)覽窗中,實(shí)現(xiàn)實(shí)時(shí)渲染,用戶根據(jù)渲染結(jié)果,可以進(jìn)行預(yù)覽、調(diào)整攝像機(jī)朝向、旋轉(zhuǎn)模型,還可以繼續(xù)編輯,得到更細(xì)化的材質(zhì)效果。參見圖I,這是一個(gè)材質(zhì)結(jié)構(gòu)圖。
從圖可以看出,表達(dá)式結(jié)點(diǎn)之間通過連線將一個(gè)表達(dá)式結(jié)點(diǎn)的輸出連接到另一個(gè)表達(dá)式結(jié)點(diǎn)的輸入上去,用來表示數(shù)據(jù)的流動(dòng)方向。數(shù)據(jù)從數(shù)據(jù)源類表達(dá)式開始流動(dòng),經(jīng)過若干個(gè)用戶選取的數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式,進(jìn)行數(shù)據(jù)的轉(zhuǎn)換和重組,最終得到具有圖形學(xué)意義的數(shù)據(jù),至此,有向無環(huán)圖表達(dá)式結(jié)點(diǎn)的任務(wù)結(jié)束。有向無環(huán)圖表達(dá)式結(jié)點(diǎn)接著必須和主接口模塊中的相應(yīng)接口進(jìn)行連線,表示之前生成的圖形學(xué)意義的數(shù)據(jù)必須經(jīng)過主接口的包裝組合才能生成完整的GPU著色器模塊。主接口模塊將數(shù)據(jù)進(jìn)行分類,分別是光照方程各分量、法線分量、透明分量和扭曲分量,將數(shù)據(jù)一一對應(yīng)到這幾個(gè)分量中去,然后組合生成完整的GPU著色器模塊。最終,底層圖形渲染引擎將生成好的完整GPU著色器模塊加載進(jìn)來,生成用戶想要的高級材質(zhì)效果。圖2為材質(zhì)渲染的流程圖。從圖可以看出,該流程囊括了本發(fā)明的所有模塊,從用戶操作到最終生成的高級材質(zhì)效果。I、用戶打開表達(dá)式庫,選擇能產(chǎn)生想要材質(zhì)效果的相應(yīng)表達(dá)式,并將其拖進(jìn)編輯區(qū)。 2、用戶按照圖形學(xué)意義將一個(gè)表達(dá)式結(jié)點(diǎn)的輸出連到另一個(gè)表達(dá)式結(jié)點(diǎn)的輸入,用來表示數(shù)據(jù)的流動(dòng)方向,并在此過程中設(shè)置好表達(dá)式結(jié)點(diǎn)的屬性,對于數(shù)據(jù)源類表達(dá)式,屬性即是數(shù)據(jù)源的值;對于數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式,屬性即是轉(zhuǎn)換過程的配置。最終用戶的連線將表達(dá)式結(jié)點(diǎn)組織成了一個(gè)有向無環(huán)圖,圖的結(jié)點(diǎn)就是每一個(gè)表達(dá)式。數(shù)據(jù)的流動(dòng)方向即是該有向無環(huán)圖拓?fù)渑判虻捻樞?。因此只需要以拓?fù)漤樞虮闅v該有向無環(huán)圖,即可以得到數(shù)據(jù)的流動(dòng)方向。3、用戶需要將有向無環(huán)圖表達(dá)式結(jié)點(diǎn)的最終表達(dá)式輸出連接到主接口模塊的相應(yīng)接口上去。以拓?fù)漤樞虮闅v該有向無環(huán)圖,將每個(gè)表達(dá)式的數(shù)據(jù)或操作傳遞給主接口模塊各個(gè)接口,主接口模塊生成完整的GPU著色器模塊。4、利用生成好的GPU著色器模塊,加載進(jìn)來的模型文件,設(shè)置好的渲染管線的狀態(tài),通過底層圖形渲染引擎提供的著色器程序加載接口,生成該著色器程序?qū)?yīng)的高級材質(zhì)效果,并在模型表面展示出來。5、對于已經(jīng)呈現(xiàn)在預(yù)覽窗口的材質(zhì),可以通過旋轉(zhuǎn)移動(dòng)模型的方式來進(jìn)行多角度預(yù)覽,還可以通過改變屬性的方式來進(jìn)行二次編輯。本發(fā)明并不局限于前述的具體實(shí)施方式
。本發(fā)明擴(kuò)展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
權(quán)利要求
1.一種基于可視化編輯的高級材質(zhì)合成系統(tǒng),其特征在于包括以下功能模塊主接口模塊、表達(dá)式庫模塊、屬性模塊、GPU著色器生成模塊和材質(zhì)合成模塊; 主接口模塊用于定義光照方程各分量接口、法線接口、透明接口、透明遮罩接口和扭曲接口 ; 表達(dá)式庫模塊提供給用戶方法和數(shù)據(jù)結(jié)構(gòu)的集合; 屬性模塊用來確定整個(gè)渲染流程的狀態(tài)和每一個(gè)表達(dá)式結(jié)點(diǎn)的屬性; GPU著色器生成模塊用來生成最終的GPU著色器模塊; 材質(zhì)合成模塊用于產(chǎn)生材質(zhì)渲染效果,即根據(jù)前面生成的GPU著色器模塊、用戶加載進(jìn)系統(tǒng)的三維物體模型、設(shè)置好的材質(zhì)渲染流程的狀態(tài),將材質(zhì)效果實(shí)時(shí)渲染到預(yù)覽窗中; 其中,光照方程各分量接口,用于構(gòu)造標(biāo)準(zhǔn)光照方程,建立材質(zhì)的光照效果;法線接口,用于將傳遞進(jìn)來的法線貼圖數(shù)據(jù)解釋為每個(gè)像素的法線向量;透明接口,用于將標(biāo)量解釋為透明度;透明遮罩接口,用于確定對每一個(gè)像素是否應(yīng)用透明效果;扭曲接口,用于確定扭曲度大小;三維物體模型,用于展示生成的材質(zhì)效果。
2.根據(jù)權(quán)利要求I所述的一種基于可視化編輯的高級材質(zhì)合成系統(tǒng),其特征在于光照方程各分量包括漫反射分量、自發(fā)光分量、高光分量和高光系數(shù)。
3.根據(jù)權(quán)利要求2所述的一種基于可視化編輯的高級材質(zhì)合成系統(tǒng),其特征在于表達(dá)式庫模塊包括數(shù)據(jù)源類表達(dá)式和數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式;數(shù)據(jù)源類表達(dá)式用來定義圖形學(xué)相關(guān)的數(shù)據(jù)結(jié)構(gòu),提供數(shù)據(jù)流;數(shù)據(jù)轉(zhuǎn)換方法類表達(dá)式用來提供數(shù)據(jù)轉(zhuǎn)換的方法,為數(shù)據(jù)流的流動(dòng)提供了保證。
4.根據(jù)權(quán)利要求3所述的一種基于可視化編輯的高級材質(zhì)合成系統(tǒng),其特征在于屬性模塊用來設(shè)置整個(gè)材質(zhì)效果的屬性或者用來設(shè)置單獨(dú)表達(dá)式結(jié)點(diǎn)的屬性,每一種表達(dá)式都對應(yīng)著若干種屬性,這些屬性或者決定數(shù)據(jù)源的數(shù)值,或者決定數(shù)據(jù)轉(zhuǎn)換方法的狀態(tài)。
5.根據(jù)權(quán)利要求4所述的一種基于可視化編輯的高級材質(zhì)合成系統(tǒng),其特征在于整個(gè)材質(zhì)效果的屬性包括線框顯示、取樣方式、透明顯示。
6.根據(jù)權(quán)利要求I或2或3或4或5所述的一種基于可視化編輯的高級材質(zhì)合成方法,其特征在于包括以下步驟 步驟(I):從表達(dá)式庫模塊中選擇表達(dá)式,建立表達(dá)式結(jié)點(diǎn)組合的有向無環(huán)圖; 步驟(2):通過屬性模塊設(shè)置每一個(gè)表達(dá)式結(jié)點(diǎn)的屬性,以及整個(gè)渲染流程的狀態(tài); 步驟(3):通過GPU著色器生成模塊加載三維物體模型,執(zhí)行渲染; 步驟(4):通過材質(zhì)合成模塊預(yù)覽材質(zhì)效果,實(shí)現(xiàn)二次編輯。
7.根據(jù)權(quán)利要求6所述的一種基于可視化編輯的高級材質(zhì)合成方法,其特征在于所述步驟(I)中,表達(dá)式庫模塊中每個(gè)表達(dá)式或?qū)?yīng)一種數(shù)據(jù)源,或?qū)?yīng)一種數(shù)據(jù)轉(zhuǎn)換方法,表達(dá)式庫提供給用戶可用方法和數(shù)據(jù)結(jié)構(gòu)的集合,用戶通過表達(dá)式結(jié)點(diǎn)的自由組合,得到相應(yīng)的材質(zhì)效果。
8.根據(jù)權(quán)利要求7所述的一種基于可視化編輯的高級材質(zhì)合成方法,其特征在于所述步驟(3)中,用戶選取表達(dá)式庫中的表達(dá)式,通過符合圖形學(xué)意義的組合,形成一個(gè)有向無環(huán)圖,圖的結(jié)點(diǎn)就是每一個(gè)表達(dá)式,稱為表達(dá)式結(jié)點(diǎn),通過將此有向無環(huán)圖進(jìn)行拓?fù)渑判虼_定數(shù)據(jù)的流動(dòng)方向,然后按照拓?fù)渑判虻捻樞虮闅v圖的結(jié)點(diǎn),將數(shù)據(jù)流動(dòng)的整個(gè)過程輸出到GPU著色器模塊。
9.根據(jù)權(quán)利要求8所述的一種基于可視化編輯的高級材質(zhì)合成方法,其特征在于所述步驟(4)中,根據(jù)前面生成的GPU著色器模塊、用戶加載進(jìn)系統(tǒng)的模型、設(shè)置好的材質(zhì)渲染流程的狀態(tài),將材質(zhì)效果實(shí)時(shí)渲染到預(yù)覽窗中,用戶可以進(jìn)行預(yù)覽、調(diào)整攝像機(jī)朝向、旋轉(zhuǎn)模型以及二次編輯。
全文摘要
本發(fā)明公開了一種基于可視化編輯的高級材質(zhì)合成系統(tǒng)與方法,涉及可視化編輯與合成領(lǐng)域,包括以下功能模塊主接口模塊、表達(dá)式庫模塊、屬性模塊、GPU著色器生成模塊和材質(zhì)合成模塊;主接口模塊用于定義光照方程各分量接口、法線接口、透明接口、透明遮罩接口和扭曲接口;本發(fā)明的有益效果是可以靈活組織表示,生成用戶想要的材質(zhì)效果,并且將動(dòng)態(tài)組合得到的著色器程序,應(yīng)用于場景編輯器的材質(zhì)中。幫助不會(huì)編寫著色器程序的美工創(chuàng)建高級材質(zhì)特效,同時(shí)可以擴(kuò)展表達(dá)式庫并擴(kuò)展材質(zhì)類型,唯一的要求,用戶需要有基本的圖形學(xué)理論知識(shí)。
文檔編號(hào)G06T15/50GK102760304SQ20121021719
公開日2012年10月31日 申請日期2012年6月28日 優(yōu)先權(quán)日2012年6月28日
發(fā)明者唐琛, 曹躍, 李文全, 李鑫, 田瑞嬌, 蔡洪斌, 許泉, 趙帥, 陳雷霆 申請人:電子科技大學(xué)