本發(fā)明涉及虛擬現(xiàn)實/增強現(xiàn)實技術(shù)領域,具體而言,涉及一種光照效果渲染方法及裝置。
背景技術(shù):
現(xiàn)有技術(shù)中,在虛擬場景中渲染3d模型的光照效果時,3d模型的光照效果變化是根據(jù)虛擬場景中的燈源的光照強度而發(fā)生變化的,但是該虛擬場景中的燈源的光照強度是根據(jù)系統(tǒng)的設定而產(chǎn)生變化,并不考慮現(xiàn)實場景中光照如何變化。換句話說,現(xiàn)有的解決方案忽視了現(xiàn)實場景與虛擬場景的交互性,無論現(xiàn)實場景中的光照強度如何變化,虛擬場景中的3d模型的光照效果不會隨之變化,這樣在虛擬現(xiàn)實場景和增強現(xiàn)實場景下,給用戶的真實感會大大降低。
因此,如何使3d模型的光照效果隨著現(xiàn)實場景的變化而產(chǎn)生變化,增強現(xiàn)實場景與虛擬場景的交互性,提升用戶的真實感,一直以來是本領域技術(shù)人員關注的重點。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種光照效果渲染方法及裝置,以解決現(xiàn)有技術(shù)中3d模型在虛擬場景中的光照效果是按照3d引擎內(nèi)部既定程序而變化,3d模型的光照效果給用戶的感覺不夠真實的問題。
為了實現(xiàn)上述目的,本發(fā)明實施例采用的技術(shù)方案如下:
第一方面,本發(fā)明實施例提出一種光照效果渲染方法,所述光照效果渲染方法包括:獲取現(xiàn)實場景中的光照強度值;依據(jù)所述現(xiàn)實場景中的光照強度值調(diào)整虛擬場景中的光照強度值;依據(jù)所述虛擬場景中的光照強度值渲染虛擬場景中的3d模型的光照效果。
第二方面,本發(fā)明實施例還提出一種光照效果渲染裝置,所述光照效果渲染裝置包括:光照強度獲取模塊,用于獲取現(xiàn)實場景中的光照強度值;調(diào)整模塊,用于依據(jù)所述現(xiàn)實場景中的光照強度值調(diào)整虛擬場景中的光照強度值;渲染模塊,用于依據(jù)所述虛擬場景中的光照強度值渲染虛擬場景中的3d模型的光照效果。
相對現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:本發(fā)明提供的光照效果渲染方法及裝置,通過獲取現(xiàn)實場景中的光照強度值,依據(jù)所述現(xiàn)實場景中的光照強度值調(diào)整虛擬場景中的光照強度值,依據(jù)所述虛擬場景中的光照強度值渲染虛擬場景中的3d模型的光照效果,實現(xiàn)了虛擬場景中的光照強度與現(xiàn)實場景的光照強度同步變化,使得3d模型的光照效果能夠隨著現(xiàn)實場景的光照強度變化而變化,給用戶的真實感更強,用戶體驗更好。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應被看作是對范圍的限定,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關的附圖。
圖1示出了本發(fā)明的光照效果渲染裝置應用于電子設備的示意圖。
圖2示出了本發(fā)明第一實施例提供的光照效果渲染裝置的結(jié)構(gòu)框圖。
圖3示出了本發(fā)明第二實施例提供的光照效果渲染方法的流程示意圖。
圖4示出了圖3中步驟s104的具體流程示意圖。
圖標:100-電子設備;200-光照效果渲染裝置;110-存儲器;120-存儲控制器;130-處理器;140-外設接口;150-顯示單元;160-光線感應器;210-光照強度獲取模塊;220-調(diào)整模塊;230-烘焙模塊;240-渲染模塊。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設計。
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,還需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。下面結(jié)合附圖,對本發(fā)明的一些實施方式作詳細說明。在不沖突的情況下,下述的實施例及實施例中的特征可以相互組合。
請參照圖1,為本發(fā)明實施例中光照效果渲染裝置200應用于電子設備100的示意圖,所述電子設備100可以是但不限于手機、平板電腦、個人數(shù)字助理(personaldigitalassistant,pda)、移動上網(wǎng)設備(mobileinternetdevice,mid)、頭戴式vr設備等便攜式電子裝置。在本實施例中,該電子設備100可以包括存儲器110、存儲控制器120、處理器130、外設接口140、顯示單元150及光線感應器160。所述存儲器110、存儲控制器120、處理器130、外設接口140、顯示單元150及光線感應器160,各元件之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或者交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現(xiàn)典型連接。在本實施例中,光照效果渲染裝置200包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器110中或固化在所述電子設備100的操作系統(tǒng)(operatingsystem,os)中的軟件功能模塊。該處理器130用于執(zhí)行所述存儲器110中存儲的可執(zhí)行模塊,例如該光照效果渲染裝置200所包括的軟件功能模塊及計算機程序等。
其中,所述存儲器110可以是但不限于,隨機存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。存儲器110可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的光照效果渲染方法、裝置,處理器130用于在接收到執(zhí)行指令后,執(zhí)行該程序。該處理器130以及其他可能的組件對存儲器110的訪問可在存儲控制器120的控制下進行。
所述處理器130可能是一種集成電路芯片,具有信號處理能力。該處理器130可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網(wǎng)絡處理器(networkprocessor,np)等;還可以是數(shù)字信號處理器(dsp))、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。
所述外設接口140將各種輸入/輸出裝置(例如顯示單元150、光線感應器160)耦合至該處理器130以及該存儲器110。在一些實施例中,外設接口140、處理器130以及存儲控制器120可以在單個芯片中實現(xiàn)。在其他一些實例中,它們可以分別由獨立的芯片實現(xiàn)。
所述顯示單元150在電子設備100與用戶之間同時提供一個交互界面(例如用戶操作界面)。在本實施例中,所述顯示單元150可以是液晶顯示器或觸控顯示器,其可為支持單點和多點觸控操作的電容式觸控屏或電阻式觸控屏等。支持單點和多點觸控操作是指觸控顯示器能感應到來自該觸控顯示器上一個或多個位置處產(chǎn)生的觸控操作,并將該感應到的觸控操作交由處理器130進行計算和處理。
所述光線感應器160,即光電感應器,目前主要用于根據(jù)電子設備100所處環(huán)境的光線來調(diào)節(jié)屏幕的亮度及鍵盤燈。例如,在光線充足的地方將屏幕的亮度調(diào)高,鍵盤燈關閉,在光線較暗的地方將屏幕的亮度調(diào)暗,鍵盤燈點亮,以此達到保護用戶的眼睛以及節(jié)省能量的目的。在本實施例中,所述光線感應器160主要用于獲取外界環(huán)境的光照強度值。
可以理解,圖1所示的結(jié)構(gòu)僅為示意,所述電子設備100還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。圖1中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
第一實施例
請參照圖2,為本發(fā)明第一實施例所提供的光照效果渲染裝置200的結(jié)構(gòu)框圖。所述光照效果渲染裝置200應用于上述的電子設備100,其包括光照強度獲取模塊210、調(diào)整模塊220、烘焙模塊230及渲染模塊240。
所述光照強度獲取模塊210用于獲取現(xiàn)實場景中的光照強度值。
在本實施例中,所述現(xiàn)實場景中的光照強度值可通過開啟電子設備100上的光線感應器160獲取,所述光線感應器160將所述現(xiàn)實場景中的光照強度值傳遞至3d引擎。
所述調(diào)整模塊220用于依據(jù)所述現(xiàn)實場景中的光照強度值調(diào)整虛擬場景中的光照強度值。
進一步地,所述調(diào)整模塊220依據(jù)所述現(xiàn)實場景中的光照強度值、預設的比例及預先設置的光照參數(shù)調(diào)整所述虛擬場景中的光照強度值。在預先設置所述光照參數(shù)時,一般需要考慮直接光照與間接光照,直接光照是指從光源發(fā)出的光直接照射到物體上所形成的照明效果,間接光照是指光源發(fā)出的光從其他物體表面反射在某些物體表面所形成的照明效果,全局光照(globalillumination,gi)是由直接光照與間接光照共同形成的照明效果,在實際中,全局光照更加符合現(xiàn)實場景中的光照效果。在本實施例中,主要考慮直接光照,因此,可以將間接光照強度的參數(shù)bounceintensity設置為0,其中,當該參數(shù)大于1,表示強制增大間接光照。
在本實施例中,調(diào)整所述虛擬場景中的光照強度值時,是按照預先設置的現(xiàn)實場景中的光照強度值與虛擬場景中的光照強度值的比例實現(xiàn)的。優(yōu)選地,可以按照1:1的比例進行調(diào)整,以實現(xiàn)虛擬場景中光源的光照強度與現(xiàn)實場景中的光照強度同步更新。例如,當現(xiàn)實場景中的光照強度值為300,則可以將3d引擎在虛擬場景下的光源的光照強度相應地調(diào)整為300。需要說明的是,所述比例可以根據(jù)實際需求進行設置,并不限定于此,本實施例中的光源優(yōu)選為定向光源。
所述烘焙模塊230用于烘焙光照以生成光照貼圖覆蓋在所述3d模型上。
在虛擬場景中,當光源照射在3d模型上時會在該3d模型表面形成反光和陰影,通過烘焙可將這些光照信息及陰影信息渲染成貼圖的形式覆蓋在該3d模型的表面。在實際的3d模型渲染過程中,這些光照貼圖記錄了虛擬場景中的光照信息及陰影信息,可以代替每次的光照計算,換句話說,3d模型在渲染時無需再對這些光照信息及陰影信息進行計算,可以大大提高運行效率,節(jié)約cpu資源。同時,在烘焙光照的過程中,光源的位置、方向、強度、顏色等可以實時調(diào)整,以實現(xiàn)非常真實的光照變化效果。在本實施例中,可以根據(jù)實際情況選擇烘焙模式(例如,realtime、baked、mixed)。
所述渲染模塊240用于依據(jù)所述虛擬場景中的光照強度值渲染虛擬場景中的3d模型的光照效果。
在本實施例中,當虛擬場景中的光照強度值依據(jù)現(xiàn)實場景中的光照強度值按照預設的比例調(diào)整后,渲染后的3d模型的光照效果也會依據(jù)現(xiàn)實場景中的光照變化而相應地變化,從而增強虛擬場景的真實感。例如,當現(xiàn)實場景中天色變暗,其光照強度值下降,虛擬場景中的光照強度值也會相應下降,該虛擬場景中的3d模型的光照效果渲染也會相應地變暗。
進一步地,所述渲染模塊240可依據(jù)虛擬場景中的光照強度值、預設的色彩空間、預設的著色路徑對所述3d模型進行著色。其中,所述虛擬場景中的光照強度值與色彩空間、著色路徑相關聯(lián)。例如,光照強度會影響色彩空間的亮度,著色路徑的設定也需要考慮影響3d模型光照效果的光源。需要說明的是,色彩空間對于虛擬場景中的畫面真實感有很大的影響,例如,它會讓3d模型的顏色隨著光照強度的增加而變亮,提高3d模型的色彩呈現(xiàn)效果以及計算的精度,使得最終渲染出的3d模型更為真實。在本實施例中,根據(jù)影響3d模型的光源的不同,優(yōu)選地可以采用正向渲染路徑來對該3d模型進行著色。
第二實施例
請參照圖3,為本發(fā)明第二實施例所提供的光照效果渲染方法的流程示意圖。需要說明的是,本發(fā)明所述的光照效果渲染方法并不以圖3以及以下所述的具體順序為限制,其基本原理及產(chǎn)生的技術(shù)效果與第一實施例相同,為簡要描述,本實施例中未提及部分,可參考第一實施例中的相應內(nèi)容。應當理解,在其它實施例中,本發(fā)明所述的光照效果渲染方法其中部分步驟的順序可以根據(jù)實際需要相互交換,或者其中的部分步驟也可以省略或刪除。下面將對圖3所示的具體流程進行詳細闡述。
步驟s101,獲取現(xiàn)實場景中的光照強度值。
在本實施例中,所述現(xiàn)實場景中的光照強度值可通過開啟電子設備100上的光線感應器160獲取,所述光線感應器160將所述現(xiàn)實場景中的光照強度值傳遞至3d引擎。
可以理解,該步驟s101可以由上述的光照強度獲取模塊210執(zhí)行。
步驟s102,依據(jù)所述現(xiàn)實場景中的光照強度值調(diào)整虛擬場景中的光照強度值。
在本實施例中,所述步驟s102具體包括:依據(jù)所述現(xiàn)實場景中的光照強度值、預設的比例及預先設置的光照參數(shù)調(diào)整所述虛擬場景中的光照強度值。在預先設置所述光照參數(shù)時,一般需要考慮直接光照與間接光照,直接光照是指從光源發(fā)出的光直接照射到物體上所形成的照明效果,間接光照是指光源發(fā)出的光從其他物體表面反射在某些物體表面所形成的照明效果,全局光照(globalillumination,gi)是由直接光照與間接光照共同形成的照明效果,在實際中,全局光照更加符合現(xiàn)實場景中的光照效果。在本實施例中,主要考慮直接光照,因此,可以將間接光照強度的參數(shù)bounceintensity設置為0,其中,當該參數(shù)大于1,表示強制增大間接光照。
在本實施例中,調(diào)整所述虛擬場景中的光照強度值時,是按照預先設置的現(xiàn)實場景中的光照強度值與虛擬場景中的光照強度值的比例實現(xiàn)的。優(yōu)選地,可以按照1:1的比例進行調(diào)整,以實現(xiàn)虛擬場景中光源的光照強度與現(xiàn)實場景中的光照強度同步更新。例如,當現(xiàn)實場景中的光照強度值為300,則可以將3d引擎在虛擬場景下的光源的光照強度相應地調(diào)整為300。需要說明的是,所述比例可以根據(jù)實際需求進行設置,并不限定于此,本實施例中的光源優(yōu)選為定向光源。
可以理解,該步驟s102可以由上述的調(diào)整模塊220執(zhí)行。
步驟s103,烘焙光照以生成光照貼圖覆蓋在所述3d模型上。
在虛擬場景中,當光源照射在3d模型上時會在該3d模型表面形成反光和陰影,通過烘焙可將這些光照信息及陰影信息渲染成貼圖的形式覆蓋在該3d模型的表面。在實際的3d模型渲染過程中,這些光照貼圖記錄了虛擬場景中的光照信息及陰影信息,可以代替每次的光照計算,換句話說,3d模型在渲染時無需再對這些光照信息及陰影信息進行計算,可以大大提高運行效率,節(jié)約cpu資源。同時,在烘焙光照的過程中,光源的位置、方向、強度、顏色等可以實時調(diào)整,以實現(xiàn)非常真實的光照變化效果。在本實施例中,可以根據(jù)實際情況選擇烘焙模式(例如,realtime、baked、mixed)。
可以理解,該步驟s103可以由上述的烘焙模塊230執(zhí)行。
步驟s104,依據(jù)所述虛擬場景中的光照強度值渲染虛擬場景中的3d模型的光照效果。
在本實施例中,當虛擬場景中的光照強度值依據(jù)現(xiàn)實場景中的光照強度值按照預設的比例調(diào)整后,渲染后的3d模型的光照效果也會依據(jù)現(xiàn)實場景中的光照變化而相應地變化,從而增強虛擬場景的真實感。例如,當現(xiàn)實場景中天色變暗,其光照強度值下降,虛擬場景中的光照強度值也會相應下降,該虛擬場景中的3d模型的光照效果渲染也會相應地變暗。
可以理解,該步驟s104可以由上述的渲染模塊240執(zhí)行。
如圖4所示,在本實施例中,該步驟s104進一步可包括如下子步驟:
子步驟s1041,依據(jù)預設的色彩空間對所述3d模型進行著色以提高所述3d模型的色彩呈現(xiàn)效果。
在本實施例中,色彩空間對于虛擬場景中的畫面真實感有很大的影響,例如,它可以讓3d模型的顏色隨著光照強度的增加而變亮,提高3d模型的色彩呈現(xiàn)效果以及計算的精度,使得最終渲染出的3d模型更為真實??梢岳斫猓撋士臻g與虛擬場景中的光照強度值相關聯(lián),例如,光照強度會影響色彩空間的亮度。
子步驟s1042,依據(jù)預設的著色路徑對所述3d模型進行著色。
在本實施例中,可根據(jù)影響3d模型光照效果的光源的不同設定著色路徑。例如,在本實施例中,優(yōu)選地可以采用正向渲染路徑來對該3d模型進行著色。
綜上所述,本發(fā)明提供的光照效果渲染方法及裝置,通過從光線感應器160獲取現(xiàn)實場景中的光照強度值,然后根據(jù)預設的比例以及預先設置的光照參數(shù)調(diào)整虛擬場景中的光照強度值以實現(xiàn)虛擬場景中的光照強度的實時更新,通過烘焙光照生成光照貼圖覆蓋在所述3d模型上以代替渲染中的光照計算進而提升運行效率,最后根據(jù)實時更新和調(diào)整的虛擬場景中的光照強度值、預設的色彩空間以及預設的著色路徑等渲染3d模型的光照效果。本發(fā)明實施例提供的光照效果渲染方法及裝置將虛擬場景中的光照強度與現(xiàn)實場景的光照強度同步變化,給用戶的真實感更強,用戶體驗更好。
需要說明的是,在本文中,諸如“第一”和“第二”等之類的關系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。