国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于紋理渲染與紋理映射的實時球幕圖像生成方法

2014-03-31 10:39柳喆俊
藝術與設計·理論 2014年1期
關鍵詞:虛擬現(xiàn)實

柳喆俊

摘 要:大多數(shù)影像設備與3D API都是基于平面影像設計的,因此,一般而言實時渲染圖像并不能直接運用于球幕顯示,必須通過稱為“幾何校正”(Geometric Correction)的運算才能產(chǎn)生正確的最終結果。目前主流的幾何校正方法或者依賴昂貴的硬件設備完成,或者需要通過復雜的算法實現(xiàn),對于缺少程序設計背景的創(chuàng)作者來說無法自由掌控。文章介紹了一種利用3D API中成熟的紋理渲染(RTT)與紋理映射(Texture Mapping)技術生成球幕圖像的方法,不涉及任何C++或HLSL編程,在任何支持RTT的三維引擎上均可實現(xiàn)。

關鍵詞:實時紋理渲染 紋理映射 球幕 虛擬現(xiàn)實 交互藝術

一、研究背景

如何在球幕上根據(jù)需求產(chǎn)生無變形的圖像已經(jīng)有了成熟的解決方案。但根據(jù)作者的調(diào)研,其中絕大部分解決方案所針對的都是預渲染電影而非實時圖像。即使有少量針對實時圖像的解決方案通常也需要創(chuàng)作者具有豐富的編程經(jīng)驗才能將之與常用的實時三維引擎嫁接起來,而這對于許多非程序員背景的虛擬現(xiàn)實創(chuàng)作者或交互藝術家來說顯然是難度過高了。因此,本文將介紹一種簡單、通用,并且運行效率令人滿意的方法生成實時球幕三維影像,以幫助不具備編程經(jīng)驗的創(chuàng)作者更方便、更自由地創(chuàng)作球幕互動作品。

二、研究案例

(一)案例概述

為了便于陳述,本文將以筆者創(chuàng)作的球幕互動作品《入侵》為原型進行分析(圖1)。《入侵》是一款互動裝置作品,利用投影機在懸掛于半空的球幕上投射出一派生機盎然的自然美景。當觀眾進入球幕下方以后,其運動會被球幕頂部的傳感器捕獲,并被“解讀”為人類對于自然的入侵。觀眾人數(shù)越多,動作越劇烈,對于自然的破壞就越嚴重:環(huán)境的惡化會實時地反應在球幕影像之上。自然資源日益枯竭便會引發(fā)戰(zhàn)爭,如果觀眾不及時停止運動(意即停止對于自然的“破壞”),最終將會導致“核子末日”的來臨。

(二)硬件系統(tǒng)

球幕:直徑為3.5米,圓心角為180°,是一個標準的半球體。本文所介紹的方法適用但不僅適用于180°的半球體,也可以用小于180°的球冠甚至是非標準的橢球體。

投影機:工程投影機,分辨率為1024x768,亮度為4500流明。投影機鏡頭采用了視場角為180°的數(shù)字魚眼鏡頭。

(三)軟件工具

三維動畫軟件:筆者選用的是3ds Max這款三維動畫軟件。事實上你可以選擇包括Maya、Softimage在內(nèi)的任何一款主流三維軟件,只要確保渲染器支持自定義相機鏡頭即可。

三維引擎:筆者選用的是Quest3D這款三維引擎,同樣,你可以選擇Unity 3D、Torque 3D等各種不同的三維引擎,只需確保它支持RTT(Render To Texture)功能即可。

三、實時球幕圖像生成方法

(一)問題分析與解決思路

要生成實時球幕圖像,至少需要解決以下三方面的問題:第一、獲得實時三維渲染結果;第二、對三維渲染結果進行幾何校正;第三,將經(jīng)過幾何校正的圖像投影至球幕,并得到與預期一致的最終畫面。

先分析第三個問題。假設球幕球心角與鏡頭視場角均為180°,且鏡頭光學中心處于球心的位置,那么根據(jù)魚眼鏡頭的光學特性可以知道,對于一幅4:3的圖像而言最終將被映射到球幕上的部分是其中央的內(nèi)切正圓形區(qū)域。在這個正圓形區(qū)域內(nèi),與圓周平行的同心圓將會成為球幕上的緯線,而從圓心引向圓周的半徑則會成為球幕上的經(jīng)線,這是數(shù)字魚眼鏡頭成像的基本特點。

然后,我們分析一下前兩個問題,如何利用三維引擎產(chǎn)生合適球幕投影的圖像。Mental Ray這樣的渲染器大都支持針對球幕設計的鏡頭著色器(Lens Shader),這類著色器利用光線跟蹤算法可以產(chǎn)生直接能夠用于數(shù)字魚眼鏡頭的圖像。但包括Direct3D、OpenGL在內(nèi)的實時3D API中均只支持標準攝像機,也就是說它們嚴格遵循理想化針孔相機的成像規(guī)律,所以,三維引擎中不可能僅通過一個攝像機來實現(xiàn)球幕圖像的輸出。可行的辦法是擺放多個攝像機將完整的場景記錄為多幅平面圖像,然后通過拼接與幾何校正生成一幅完整的、可用于球幕投影的圖像。

我們總共需要5臺攝像機并根據(jù)圖2所示的方式進行擺放,獲得分別表示前、后、左、右、頂?shù)匿秩井嬅?。理想情況下,在使用光學特征相同的魚眼鏡頭時,通過鏡頭投影和通過鏡頭拍攝是一個可以互逆的過程,也就是說通過魚眼鏡頭拍攝的圖像可以通過相同規(guī)格的魚眼鏡頭還原?,F(xiàn)已確定最終將采用視場角為180°的魚眼鏡頭進行投影,那么假如采用同樣為180°的魚眼鏡頭拍攝,結果獲得的圖像應該可以直接在球幕上正確還原。

除了這個結論以外,還有另外一個結論也至關重要,它可由Cubemap的原理推導得出:如果將Cubemap按照正確的角度賦予給一個法線指向內(nèi)部的正方體,當攝像機位于該正方體中央時,攝像機拍攝Cubemap所獲結果與拍攝Cubemap對應環(huán)境所獲的結果完全一致。

將以上兩個結論(第一,投影與拍攝過程可互逆;第二,Cubemap可以取代三維場景)結合起來,可以得出:以180°魚眼鏡頭拍攝的真實場景與(以其為中心的)Cubemap完全一致,并且所獲圖像可以直接用于球幕投影。最終這個結論建立起了Cubemap與投影圖像之間的對應關系,這就意味著可以利用紋理映射的方法來重構Cubemap表面與投影圖象表面每一個點之間的對應關系,并在此基礎上將5個獨立畫面拼合、校正為可用于球幕投影的單一畫面。

(二)具體實現(xiàn)步驟

1.步驟一:設置RTT攝像機

進入三維引擎,在場景中選取任一坐標位置作為代表觀眾視點的觀測點,在這一位置重合擺放5個攝像機,并將它們的旋轉(zhuǎn)角度分別設為(0,0,0)、(π/2,0,0)、(π,0,0)、(3π/2,0,0)、(3π/2, π/2,0)。此外,為了保證每個相機的視野(FOV)恰能相交,應將其投影矩陣設為:endprint

然后,為這5個攝像機分別設立5個Render Target,如此便能將實時地將其渲染結果記錄為5張貼圖。

2.步驟二:制作校正模型

根據(jù)上節(jié)的思路,只要能夠推算出魚眼鏡頭所拍攝的畫面中Cubemap立方體表面每一點的位置,就能以此為依據(jù)生成校正模型。顯然,我們可以利用數(shù)學公式推導出頂點位置并通過編寫腳本自動生成校正模型,但為了避免復雜的編程工作,本文將另辟蹊徑采用一種更簡單的方法來實現(xiàn):在三維軟件中利用球幕魚眼鏡頭渲染立方體表面的網(wǎng)格結構,并且根據(jù)渲染結果重置頂點位置,這樣做同樣能夠達到目的。

首先,應在三維軟件中建立5個正方形平面,并將之擺放成立方體的前、后、左、右、頂5個表面。這5個正方形平面的縱、橫細分數(shù)量將決定最終幾何校正的精確度,細分越多則校正結果越精確,但是手工擺放頂點的工作量也會增加。

然后,在立方體中央位置擺放攝像機,并使鏡頭指向正上方。由于投影使用的球幕只是半球體,所以應將前、后、左、右4個平面位于鏡頭以下的部分刪除。(圖3)

接下去,將5個平面的材質(zhì)設為線框模式,并選擇180°的球幕魚眼鏡頭進行渲染,這樣便能得到如圖4所示的結果。

可以看到,渲染結果明確反映了立方體與投影圖像之間的一一對應關系,只需以此渲染結果為依據(jù)(可將之設為視窗背景)編輯三維空間中的構成半立方體各個表面的頂點,使所有頂點與參考圖中相應的頂點位置相重合,這樣形成的圓形三維模型就是我們所需要的校正模型。

3.步驟三:完成紋理映射實現(xiàn)球幕圖像輸出

最后,將步驟二獲得的校正模型導入引擎,然后將步驟一中生成的5張貼圖按照正確的順序賦予給校正模型的五個部分,便能產(chǎn)生如圖5所示可以用于球幕投影的實時圖像。

四、本文方法的優(yōu)勢與局限性

本文所介紹的實時球幕圖像生成方法,其優(yōu)勢與局限性都非常明顯。這種方法的優(yōu)勢在于:

首先,它具有很高的普適性。本文所介紹的方法中,除了RTT以外其余使用的都是每一款三維引擎必須具備的基本功能,而時至今日RTT在三維引擎中也極為常見,所以本文所介紹的方法具有很高的普適性,幾乎可以在任何平臺上運用。

其次,這種方法的執(zhí)行效率令人滿意。由于紋理映射是最基本的三維渲染功能,所有的顯卡、三維引擎都對其提供了最底層、最優(yōu)化的支持,所以紋理映射所耗費的運算資源幾乎可以忽略不計,所以其執(zhí)行效率相當令人滿意的。

最后,這種方法所提供的思路具有良好的擴展性?;诒疚乃榻B的紋理映射的思路,我們不僅可以生成用于180°半球型銀幕的圖像,也可以生成用于小于180°球冠型銀幕的圖像,甚至可以將之延用到環(huán)形、柱型等曲面銀幕上,具有良好的擴展空間。

這種方法的局限性在于:首先,雖然球幕上的影像是實時運算的,但是對于影像的調(diào)整卻不能實時進行。其次,本方法不適用于多通道拼接式球幕圖像的生成。由于多通道拼接的過程中通常要對幾何校正進行實時調(diào)節(jié),并且需要依賴幾何校正的信息進行邊緣融合運算,所以本方法不適用于此類應用場合。最后,本方法不宜用于成像精確性要求苛刻的場合。紋理映射的基礎是三角面頂點UV坐標插值運算,因此本文所介紹的方法是一種“近似”而非精確的幾何校正方法。即使不考慮手工設定頂點位置可能引起的誤差,其精確程度還是會受到校正模型頂點數(shù)量的限制:頂點越多,則結果越接近理論值,頂點越少,則偏差越大。但是,如果頂點過多、整理UV的工作量過大,這種方法就失去了其簡便易行的優(yōu)勢,所以一般而言它更適用于以視覺表現(xiàn)而非科學研究為主要目的應用領域。

五、結束語

本文介紹了一種簡單易行的實時球幕圖像生成方法,并且經(jīng)過作者實踐檢驗行之有效,希望能夠為不具備豐富程序編寫經(jīng)驗的虛擬現(xiàn)實與交互藝術創(chuàng)作者提供一些有益的借鑒。當然,這種方法也存在不少局限,希望各位同仁與專家能夠不吝賜教,進一步改良這種方法,使之具有更廣闊的應用前景。

參考文獻

1 陳琛,王寶琦,李臣友.魚眼鏡頭在數(shù)字電影和數(shù)字投影中的應用[J].現(xiàn)代電影技術,2008,(1).

2 薛軍濤,賀懷清.一種采用紋理映射技術實現(xiàn)魚眼鏡頭快速校正的方法[J].電子技術應用,2008,(8).

3 英向華,胡占義.一種基于球面透視投影約束的魚眼鏡頭校正方法[J].計算機學報,2003.(12).

4 袁輝.魚眼鏡頭視頻圖像實時校正算法研究與實現(xiàn)[D].廣州:中山大學,2007.endprint

然后,為這5個攝像機分別設立5個Render Target,如此便能將實時地將其渲染結果記錄為5張貼圖。

2.步驟二:制作校正模型

根據(jù)上節(jié)的思路,只要能夠推算出魚眼鏡頭所拍攝的畫面中Cubemap立方體表面每一點的位置,就能以此為依據(jù)生成校正模型。顯然,我們可以利用數(shù)學公式推導出頂點位置并通過編寫腳本自動生成校正模型,但為了避免復雜的編程工作,本文將另辟蹊徑采用一種更簡單的方法來實現(xiàn):在三維軟件中利用球幕魚眼鏡頭渲染立方體表面的網(wǎng)格結構,并且根據(jù)渲染結果重置頂點位置,這樣做同樣能夠達到目的。

首先,應在三維軟件中建立5個正方形平面,并將之擺放成立方體的前、后、左、右、頂5個表面。這5個正方形平面的縱、橫細分數(shù)量將決定最終幾何校正的精確度,細分越多則校正結果越精確,但是手工擺放頂點的工作量也會增加。

然后,在立方體中央位置擺放攝像機,并使鏡頭指向正上方。由于投影使用的球幕只是半球體,所以應將前、后、左、右4個平面位于鏡頭以下的部分刪除。(圖3)

接下去,將5個平面的材質(zhì)設為線框模式,并選擇180°的球幕魚眼鏡頭進行渲染,這樣便能得到如圖4所示的結果。

可以看到,渲染結果明確反映了立方體與投影圖像之間的一一對應關系,只需以此渲染結果為依據(jù)(可將之設為視窗背景)編輯三維空間中的構成半立方體各個表面的頂點,使所有頂點與參考圖中相應的頂點位置相重合,這樣形成的圓形三維模型就是我們所需要的校正模型。

3.步驟三:完成紋理映射實現(xiàn)球幕圖像輸出

最后,將步驟二獲得的校正模型導入引擎,然后將步驟一中生成的5張貼圖按照正確的順序賦予給校正模型的五個部分,便能產(chǎn)生如圖5所示可以用于球幕投影的實時圖像。

四、本文方法的優(yōu)勢與局限性

本文所介紹的實時球幕圖像生成方法,其優(yōu)勢與局限性都非常明顯。這種方法的優(yōu)勢在于:

首先,它具有很高的普適性。本文所介紹的方法中,除了RTT以外其余使用的都是每一款三維引擎必須具備的基本功能,而時至今日RTT在三維引擎中也極為常見,所以本文所介紹的方法具有很高的普適性,幾乎可以在任何平臺上運用。

其次,這種方法的執(zhí)行效率令人滿意。由于紋理映射是最基本的三維渲染功能,所有的顯卡、三維引擎都對其提供了最底層、最優(yōu)化的支持,所以紋理映射所耗費的運算資源幾乎可以忽略不計,所以其執(zhí)行效率相當令人滿意的。

最后,這種方法所提供的思路具有良好的擴展性?;诒疚乃榻B的紋理映射的思路,我們不僅可以生成用于180°半球型銀幕的圖像,也可以生成用于小于180°球冠型銀幕的圖像,甚至可以將之延用到環(huán)形、柱型等曲面銀幕上,具有良好的擴展空間。

這種方法的局限性在于:首先,雖然球幕上的影像是實時運算的,但是對于影像的調(diào)整卻不能實時進行。其次,本方法不適用于多通道拼接式球幕圖像的生成。由于多通道拼接的過程中通常要對幾何校正進行實時調(diào)節(jié),并且需要依賴幾何校正的信息進行邊緣融合運算,所以本方法不適用于此類應用場合。最后,本方法不宜用于成像精確性要求苛刻的場合。紋理映射的基礎是三角面頂點UV坐標插值運算,因此本文所介紹的方法是一種“近似”而非精確的幾何校正方法。即使不考慮手工設定頂點位置可能引起的誤差,其精確程度還是會受到校正模型頂點數(shù)量的限制:頂點越多,則結果越接近理論值,頂點越少,則偏差越大。但是,如果頂點過多、整理UV的工作量過大,這種方法就失去了其簡便易行的優(yōu)勢,所以一般而言它更適用于以視覺表現(xiàn)而非科學研究為主要目的應用領域。

五、結束語

本文介紹了一種簡單易行的實時球幕圖像生成方法,并且經(jīng)過作者實踐檢驗行之有效,希望能夠為不具備豐富程序編寫經(jīng)驗的虛擬現(xiàn)實與交互藝術創(chuàng)作者提供一些有益的借鑒。當然,這種方法也存在不少局限,希望各位同仁與專家能夠不吝賜教,進一步改良這種方法,使之具有更廣闊的應用前景。

參考文獻

1 陳琛,王寶琦,李臣友.魚眼鏡頭在數(shù)字電影和數(shù)字投影中的應用[J].現(xiàn)代電影技術,2008,(1).

2 薛軍濤,賀懷清.一種采用紋理映射技術實現(xiàn)魚眼鏡頭快速校正的方法[J].電子技術應用,2008,(8).

3 英向華,胡占義.一種基于球面透視投影約束的魚眼鏡頭校正方法[J].計算機學報,2003.(12).

4 袁輝.魚眼鏡頭視頻圖像實時校正算法研究與實現(xiàn)[D].廣州:中山大學,2007.endprint

然后,為這5個攝像機分別設立5個Render Target,如此便能將實時地將其渲染結果記錄為5張貼圖。

2.步驟二:制作校正模型

根據(jù)上節(jié)的思路,只要能夠推算出魚眼鏡頭所拍攝的畫面中Cubemap立方體表面每一點的位置,就能以此為依據(jù)生成校正模型。顯然,我們可以利用數(shù)學公式推導出頂點位置并通過編寫腳本自動生成校正模型,但為了避免復雜的編程工作,本文將另辟蹊徑采用一種更簡單的方法來實現(xiàn):在三維軟件中利用球幕魚眼鏡頭渲染立方體表面的網(wǎng)格結構,并且根據(jù)渲染結果重置頂點位置,這樣做同樣能夠達到目的。

首先,應在三維軟件中建立5個正方形平面,并將之擺放成立方體的前、后、左、右、頂5個表面。這5個正方形平面的縱、橫細分數(shù)量將決定最終幾何校正的精確度,細分越多則校正結果越精確,但是手工擺放頂點的工作量也會增加。

然后,在立方體中央位置擺放攝像機,并使鏡頭指向正上方。由于投影使用的球幕只是半球體,所以應將前、后、左、右4個平面位于鏡頭以下的部分刪除。(圖3)

接下去,將5個平面的材質(zhì)設為線框模式,并選擇180°的球幕魚眼鏡頭進行渲染,這樣便能得到如圖4所示的結果。

可以看到,渲染結果明確反映了立方體與投影圖像之間的一一對應關系,只需以此渲染結果為依據(jù)(可將之設為視窗背景)編輯三維空間中的構成半立方體各個表面的頂點,使所有頂點與參考圖中相應的頂點位置相重合,這樣形成的圓形三維模型就是我們所需要的校正模型。

3.步驟三:完成紋理映射實現(xiàn)球幕圖像輸出

最后,將步驟二獲得的校正模型導入引擎,然后將步驟一中生成的5張貼圖按照正確的順序賦予給校正模型的五個部分,便能產(chǎn)生如圖5所示可以用于球幕投影的實時圖像。

四、本文方法的優(yōu)勢與局限性

本文所介紹的實時球幕圖像生成方法,其優(yōu)勢與局限性都非常明顯。這種方法的優(yōu)勢在于:

首先,它具有很高的普適性。本文所介紹的方法中,除了RTT以外其余使用的都是每一款三維引擎必須具備的基本功能,而時至今日RTT在三維引擎中也極為常見,所以本文所介紹的方法具有很高的普適性,幾乎可以在任何平臺上運用。

其次,這種方法的執(zhí)行效率令人滿意。由于紋理映射是最基本的三維渲染功能,所有的顯卡、三維引擎都對其提供了最底層、最優(yōu)化的支持,所以紋理映射所耗費的運算資源幾乎可以忽略不計,所以其執(zhí)行效率相當令人滿意的。

最后,這種方法所提供的思路具有良好的擴展性?;诒疚乃榻B的紋理映射的思路,我們不僅可以生成用于180°半球型銀幕的圖像,也可以生成用于小于180°球冠型銀幕的圖像,甚至可以將之延用到環(huán)形、柱型等曲面銀幕上,具有良好的擴展空間。

這種方法的局限性在于:首先,雖然球幕上的影像是實時運算的,但是對于影像的調(diào)整卻不能實時進行。其次,本方法不適用于多通道拼接式球幕圖像的生成。由于多通道拼接的過程中通常要對幾何校正進行實時調(diào)節(jié),并且需要依賴幾何校正的信息進行邊緣融合運算,所以本方法不適用于此類應用場合。最后,本方法不宜用于成像精確性要求苛刻的場合。紋理映射的基礎是三角面頂點UV坐標插值運算,因此本文所介紹的方法是一種“近似”而非精確的幾何校正方法。即使不考慮手工設定頂點位置可能引起的誤差,其精確程度還是會受到校正模型頂點數(shù)量的限制:頂點越多,則結果越接近理論值,頂點越少,則偏差越大。但是,如果頂點過多、整理UV的工作量過大,這種方法就失去了其簡便易行的優(yōu)勢,所以一般而言它更適用于以視覺表現(xiàn)而非科學研究為主要目的應用領域。

五、結束語

本文介紹了一種簡單易行的實時球幕圖像生成方法,并且經(jīng)過作者實踐檢驗行之有效,希望能夠為不具備豐富程序編寫經(jīng)驗的虛擬現(xiàn)實與交互藝術創(chuàng)作者提供一些有益的借鑒。當然,這種方法也存在不少局限,希望各位同仁與專家能夠不吝賜教,進一步改良這種方法,使之具有更廣闊的應用前景。

參考文獻

1 陳琛,王寶琦,李臣友.魚眼鏡頭在數(shù)字電影和數(shù)字投影中的應用[J].現(xiàn)代電影技術,2008,(1).

2 薛軍濤,賀懷清.一種采用紋理映射技術實現(xiàn)魚眼鏡頭快速校正的方法[J].電子技術應用,2008,(8).

3 英向華,胡占義.一種基于球面透視投影約束的魚眼鏡頭校正方法[J].計算機學報,2003.(12).

4 袁輝.魚眼鏡頭視頻圖像實時校正算法研究與實現(xiàn)[D].廣州:中山大學,2007.endprint

猜你喜歡
虛擬現(xiàn)實
在虛擬現(xiàn)實中體驗上課 Experiencing a class in VR
移動VR正照進現(xiàn)實
虛擬現(xiàn)實,讓學習更“沉浸”
培訓新勢力從人工智能到虛擬現(xiàn)實
虛擬現(xiàn)實LG 360 VR眼鏡
Facebook組建虛擬現(xiàn)實社交團隊
View Master虛擬現(xiàn)實顯示器
满洲里市| 兴安盟| 丁青县| 云浮市| 桐梓县| 武平县| 拜城县| 惠安县| 梧州市| 砚山县| 阿城市| 平邑县| 望城县| 永善县| 墨玉县| 香格里拉县| 涡阳县| 黑龙江省| 德清县| 承德市| 关岭| 秦安县| 治多县| 新和县| 浮梁县| 阿图什市| 略阳县| 东乡县| 阿拉善左旗| 新和县| 建宁县| 丹寨县| 泰和县| 拉萨市| 温州市| 吉安市| 淅川县| 城口县| 南丹县| 桑植县| 孝昌县|