專利名稱:一種三維虛擬場景立體畫面的繪制方法
技術(shù)領域:
本發(fā)明屬于真實感三維虛擬場景繪制技術(shù)領域,涉及一種三維虛擬場景立體畫面的繪制方法。
背景技術(shù):
三維動畫電影作為近年來新興的計算機藝術(shù),發(fā)展勢頭非常迅猛,已經(jīng)在許多行業(yè)得到了廣泛的應用。為了產(chǎn)生更強的視覺沖擊力,目前很多三維動畫電影都具有立體視覺效果。立體視覺效果的基本原理是,觀眾在觀看動畫電影時,左右眼能分別互不干擾地看到左右眼虛擬相機拍攝的圖像畫面,再通過人腦的合成,最終產(chǎn)生畫面的入屏或者出屏效^ ο為了提高三維動畫電影畫面的真實感,往往要求在繪制的圖像中加入全局光照、 柔和陰影等效果。使用標準的光線跟蹤方法可以比較容易地繪制出全局光照效果。繪制柔和陰影效果往往需要計算繪制點處的面光源可見性,這一過程通常非常耗時。當照射三維虛擬場景的光源為面光源時,可以利用蒙特卡洛方法對面光源進行采樣,以計算面光源可見性,進而繪制出柔和陰影效果。此外,如果動畫電影三維虛擬場景的環(huán)境光照隨空間位置變化比較明顯,則需要進一步計算不同繪制點處的環(huán)境光照值;環(huán)境光照值可利用環(huán)境遮蔽體算法來計算(見2010年歐洲圖形學學會出版的High Performance Graphics會議論文集中的論文《Ambient Occlusion Volumes》,作者 Μ. McGuire)。傳統(tǒng)的三維虛擬場景立體畫面繪制方法采用分別獨立繪制左右眼虛擬相機的圖像畫面的方式來實現(xiàn)立體畫面的繪制。值得注意的是,如果漫反射表面上的某點對左右眼同時可見,則根據(jù)漫反射的特點可知,經(jīng)該點反射進入左右眼的實際光照值基本上相等。因此,如果已經(jīng)繪制出左眼虛擬相機的圖像畫面,則在繪制右眼虛擬相機的圖像畫面時,可以利用左眼虛擬相機的圖像畫面的繪制結(jié)果來避免重復計算。利用這一特點,可以大大提高三維虛擬場景立體畫面的繪制速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種三維虛擬場景立體畫面的繪制方法,首先繪制左眼虛擬相機的圖像畫面,并記錄從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的像素發(fā)射的所有主光線與三維虛擬場景的面片的相交信息以及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值;在繪制右眼虛擬相機的圖像畫面時,利用繪制左眼虛擬相機的圖像畫面時記錄的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值,來避免大量的重復光照計算,從而提高三維虛擬場景立體畫面的繪制速度。本發(fā)明方法提供一種光照數(shù)據(jù)記錄結(jié)構(gòu),其包括源自光源的漫反射光照值成員變量Is、源自環(huán)境光的漫反射光照值成員變量I。交點位置成員變量Ps和交點處的面片索引號成員變量Id。本發(fā)明方法提供一種像素位置映射結(jié)構(gòu),其包括標識成員變量tag、左眼圖像像素行號成員變量、左眼圖像像素列號成員變量Lp右眼圖像像素行號成員變量R”右眼圖像像素列號成員變量&、交點處的面片索引號成員變量id。本發(fā)明方法的第一部分繪制三維虛擬場景的左眼虛擬相機的圖像畫面,同時記錄所有從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的像素發(fā)射的主光線與三維虛擬場景中的面片的交點位置及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值,具體步驟如下步驟SlOl 創(chuàng)建一個光照數(shù)據(jù)記錄結(jié)構(gòu)類型的二維矩陣R,其包括MXN個元素,M 為左眼虛擬相機的像平面上的像素行數(shù),N為左眼虛擬相機的像平面上的像素列數(shù),二維矩陣R中的元素與左眼虛擬相機的像平面上的像素一一對應;將二維矩陣R的每個元素的源自光源的漫反射光照值成員變量Is和源自環(huán)境光的漫反射光照值成員變量Ie初始化為0 ;步驟S102 從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的每個像素發(fā)射主光線(AOl),并測試主光線(AOl)與三維虛擬場景的面片是否相交;如果不相交,則將主光線(AOl)對應的像素的顏色值設置為背景色,否則計算交點位置Pi,記錄交點處的面片索引號ID ;判斷交點位置Pi所在面片的光源漫反射系數(shù)kd是否為0,若不為0,則利用蒙特卡洛方法計算交點處的源自光源的漫反射光照值I1,否則源自光源的漫反射光照值I1設置為0 ;判斷交點位置Pi所在面片的環(huán)境光漫反射系數(shù)是否為0,若不為0,則利用環(huán)境遮蔽體算法計算源自環(huán)境光的漫反射光照值12,否則源自環(huán)境光的漫反射光照值I2設置為0 ; 將Ii、I2、Pi* ID分別賦值給二維矩陣R中與主光線(AOl)相對應的元素的源自光源的漫反射光照值成員變量Is、源自環(huán)境光的漫反射光照值成員變量I。交點位置成員變量Ps和交點處的面片索引號成員變量Id ;判斷交點位置Pi所在面片的鏡面反射系數(shù)ks是否為0, 若不為0,則利用蒙特卡洛方法計算源自光源的鏡面反射光照值13,同時生成鏡面反射二次光線,并遞歸地跟蹤計算源自鏡面反射二次光線的光照值14,否則源自光源的鏡面反射光照值I3設置為0,源自鏡面反射二次光線的光照值I4設置為0 ;將Ii+I2+I3+I4作為主光線 (AOl)對應的像素的顏色值。如圖1所示,三維虛擬場景中的某點(105)在左眼虛擬相機(101)的像平面(102) 上的成像點位于像素P1上,在右眼虛擬相機(102)的像平面(104)上的成像點位于像素P2 上,像素P1和像素P2相對于點(105)構(gòu)成映射關系;本發(fā)明方法的第二部分計算左眼虛擬相機的像平面上的像素與右眼虛擬相機的像平面上的像素的映射關系,具體步驟如下步驟S201 創(chuàng)建一個像素位置映射結(jié)構(gòu)類型的二維矩陣R',其包括MXN個元素, M為右眼虛擬相機的像平面上的像素行數(shù),N為右眼虛擬相機的像平面上的像素列數(shù),二維矩陣R'中的元素與右眼虛擬相機的像平面上的像素一一對應;將二維矩陣R'的每個元素的標識成員變量tag初始化為0 ;步驟S202 建立x-y-z坐標系,其原點位于右眼虛擬相機的像平面的中心,ζ軸正方向與右眼虛擬相機的前向方向向量F相同,y軸正方向與右眼虛擬相機的向上方向向量 U相同,χ軸正方向與向量FXU相同;根據(jù)右眼虛擬相機的水平方向視場角α和垂直方向視場角β以及右眼虛擬相機光心位置到x-y-z坐標系原點的距離確定右眼虛擬相機的像平面上的有效矩形成像區(qū)域A ;步驟S203 對二維矩陣R中的每個元素&,做如下計算連接元素&的交點位置成員變量Ps表示的空間位置和右眼虛擬相機光心位置P。,得到一條直線段L,計算直線段L與右眼虛擬相機的像平面的交點S1,判斷交點S1是否在有效矩形成像區(qū)域A之內(nèi),如果交點S1在有效矩形成像區(qū)域A內(nèi),則根據(jù)右眼虛擬相機的圖像分辨率和有效矩形成像區(qū)域A的幾何尺寸,計算右眼虛擬相機的像平面的像素的水平方向幾何尺寸S和垂直方向幾何尺寸Sy ;創(chuàng)建一個像素位置映射結(jié)構(gòu)類型的變量V,變量V的標識成員變量tag設置為1,變量V的左眼圖像像素行號成員變量Li設置為元素&的行號,變量V的左眼圖像像素列號成員變量Lj設置為元素&
的列號,變量ν的右眼圖像像素行號成員變量氏設置為,變量V的右眼圖像像素
L2 J
\Γ χ
列號成員變量民設置為t + !,其中A^ysi分別為交點31在1-7平面內(nèi)的橫、縱坐標,
L2 ?!?br>
變量ν的交點處的面片索引號成員變量id設置為元素&的交點處的面片索引號成員變量 Id ;將變量V賦值給二維矩陣R'中行號為變量V的右眼圖像像素行號成員變量氏表示的行號、列號為變量V的右眼圖像像素列號成員變量民表示的列號的元素。本發(fā)明方法的第三部分在本發(fā)明方法的第一部分和第二部分的計算結(jié)果的基礎上,繪制右眼虛擬相機的圖像畫面,具體步驟如下步驟S301 從右眼虛擬相機光心位置向右眼虛擬相機的像平面上的每個像素Pix 發(fā)射主光線(301),并測試主光線(301)與三維虛擬場景的面片是否相交;如果不相交,則將主光線(301)對應的像素的顏色值設置為背景色,否則計算交點位置Pi',記錄交點處的面片索引號ID';步驟S302 將像素Pix對應的二維矩陣R'的元素賦值給變量V';如果變量V' 的標識成員變量tag為1且ID'等于V'的交點處的面片索引號成員變量id的值,則轉(zhuǎn)步驟S303,否則轉(zhuǎn)步驟S304 ;步驟S303:將二維矩陣R中的元賦值給變量W,其中元的行號為V' 的左眼圖像像素行號成員變量Li表示的行號,元素的列號為V'的左眼圖像像素列號成員變量h表示的列號;判斷交點位置Pi'所在面片的鏡面反射系數(shù)ks是否為0,若不為0,則按照蒙特卡洛方法計算源自光源的鏡面反射光照值I3',同時生成鏡面反射二次光線,并遞歸地跟蹤計算源自鏡面反射二次光線的光照值I4',否則源自光源的鏡面反射光照值I3'設置為0,源自鏡面反射二次光線的光照值I4'設置為0;求變量W的源自光源的漫反射光照值成員變量Is、變量W的源自環(huán)境光的漫反射光照值成員變量I。光照值I3'、 光照值I4'等四個量的和,將其作為主光線(301)對應的像素的顏色值;轉(zhuǎn)步驟S305 ;步驟S304 判斷交點位置Pi'所在面片的光源漫反射系數(shù)kd是否為0,若不為0, 則利用蒙特卡洛方法計算交點處的源自光源的漫反射光照值I1',否則源自光源的漫反射光照值I/設置為0;判斷交點位置Pi'所在面片的環(huán)境光漫反射系數(shù)是否為0,若不為 0,則利用環(huán)境遮蔽體算法計算源自環(huán)境光的漫反射光照值I2',否則源自環(huán)境光的漫反射光照值I2'設置為0;判斷交點位置Pi'所在面片的鏡面反射系數(shù)ks是否為0,若不為0, 則按照蒙特卡洛方法計算源自光源的鏡面反射光照值I3',同時生成鏡面反射二次光線, 并遞歸地跟蹤計算源自鏡面反射二次光線的光照值I4',否則源自光源的鏡面反射光照值 I3'設置為0,源自鏡面反射二次光線的光照值I4'設置為0;將I1' +I2' +I3' +I4'作為主光線(301)對應的像素的顏色值;步驟S305:計算結(jié)束。有益效果本發(fā)明提供了一種三維虛擬場景立體畫面的繪制方法。由于在繪制右眼虛擬相機的圖像畫面時利用了左眼虛擬相機的圖像畫面繪制結(jié)果,因此減少了繪制三維虛擬場景立體畫面的總時間。利用本發(fā)明方法繪制三維虛擬場景立體畫面比傳統(tǒng)方法快15% 30%。
圖1是左右眼虛擬相機的像平面上的像素映射關系示意圖。
具體實施例方式為了使本發(fā)明的特征和優(yōu)點更加清楚明白,下面結(jié)合具體實施例對本發(fā)明作進一步的描述。在本實施例中,利用GPU加速三維虛擬場景的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值計算。本發(fā)明的目的在于提供一種三維虛擬場景立體畫面的繪制方法,首先繪制左眼虛擬相機的圖像畫面,并記錄從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的像素發(fā)射的所有主光線與三維虛擬場景的面片的相交信息以及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值;在繪制右眼虛擬相機的圖像畫面時, 利用繪制左眼虛擬相機的圖像畫面時記錄的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值,來避免大量的重復光照計算,從而提高三維虛擬場景立體畫面的繪制速度。本發(fā)明方法提供一種光照數(shù)據(jù)記錄結(jié)構(gòu),其包括源自光源的漫反射光照值成員變量Is、源自環(huán)境光的漫反射光照值成員變量I。交點位置成員變量Ps和交點處的面片索引號成員變量Id。本發(fā)明方法提供一種像素位置映射結(jié)構(gòu),其包括標識成員變量tag、左眼圖像像素行號成員變量、左眼圖像像素列號成員變量Lp右眼圖像像素行號成員變量R”右眼圖像像素列號成員變量&、交點處的面片索引號成員變量id。本發(fā)明方法的第一部分繪制三維虛擬場景的左眼虛擬相機的圖像畫面,同時記錄所有從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的像素發(fā)射的主光線與三維虛擬場景中的面片的交點位置及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值,具體步驟如下步驟SlOl 創(chuàng)建一個光照數(shù)據(jù)記錄結(jié)構(gòu)類型的二維矩陣R,其包括MXN個元素,M 為左眼虛擬相機的像平面上的像素行數(shù),N為左眼虛擬相機的像平面上的像素列數(shù),二維矩陣R中的元素與左眼虛擬相機的像平面上的像素一一對應;將二維矩陣R的每個元素的源自光源的漫反射光照值成員變量Is和源自環(huán)境光的漫反射光照值成員變量Ie初始化為0 ;步驟S102 從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的每個像素發(fā)射主光線(AOl),并測試主光線(AOl)與三維虛擬場景的面片是否相交;如果不相交,則將主光線(AOl)對應的像素的顏色值設置為背景色,否則計算交點位置Pi,記錄交點處的面片索引號ID ;判斷交點位置Pi所在面片的光源漫反射系數(shù)kd是否為0,若不為0,則利用蒙特卡洛方法計算交點處的源自光源的漫反射光照值I1,否則源自光源的漫反射光照值I1設置為0 ;判斷交點位置Pi所在面片的環(huán)境光漫反射系數(shù)是否為0,若不為0,則利用環(huán)境遮蔽體算法計算源自環(huán)境光的漫反射光照值12,否則源自環(huán)境光的漫反射光照值I2設置為0 ; 將Ii、I2、Pi* ID分別賦值給二維矩陣R中與主光線(AOl)相對應的元素的源自光源的漫反射光照值成員變量Is、源自環(huán)境光的漫反射光照值成員變量I。交點位置成員變量Ps和交點處的面片索引號成員變量Id ;判斷交點位置Pi所在面片的鏡面反射系數(shù)ks是否為0, 若不為0,則利用蒙特卡洛方法計算源自光源的鏡面反射光照值13,同時生成鏡面反射二次光線,并遞歸地跟蹤計算源自鏡面反射二次光線的光照值14,否則源自光源的鏡面反射光照值I3設置為0,源自鏡面反射二次光線的光照值I4設置為0 ;將Ii+I2+I3+I4作為主光線 (AOl)對應的像素的顏色值。如圖1所示,三維虛擬場景中的某點(105)在左眼虛擬相機(101)的像平面(102) 上的成像點位于像素P1上,在右眼虛擬相機(102)的像平面(104)上的成像點位于像素P2 上,像素P1和像素P2相對于點(105)構(gòu)成映射關系;本發(fā)明方法的第二部分計算左眼虛擬相機的像平面上的像素與右眼虛擬相機的像平面上的像素的映射關系,具體步驟如下步驟S201 創(chuàng)建一個像素位置映射結(jié)構(gòu)類型的二維矩陣R',其包括MXN個元素, M為右眼虛擬相機的像平面上的像素行數(shù),N為右眼虛擬相機的像平面上的像素列數(shù),二維矩陣R'中的元素與右眼虛擬相機的像平面上的像素一一對應;將二維矩陣R'的每個元素的標識成員變量tag初始化為0 ;步驟S202 建立x-y-z坐標系,其原點位于右眼虛擬相機的像平面的中心,ζ軸正方向與右眼虛擬相機的前向方向向量F相同,y軸正方向與右眼虛擬相機的向上方向向量 U相同,χ軸正方向與向量FXU相同;根據(jù)右眼虛擬相機的水平方向視場角α和垂直方向視場角β以及右眼虛擬相機光心位置到x-y-z坐標系原點的距離確定右眼虛擬相機的像平面上的有效矩形成像區(qū)域A ;步驟S203 對二維矩陣R中的每個元素&,做如下計算連接元素&的交點位置成員變量Ps表示的空間位置和右眼虛擬相機光心位置P。, 得到一條直線段L,計算直線段L與右眼虛擬相機的像平面的交點S1,判斷交點S1是否在有效矩形成像區(qū)域A之內(nèi),如果交點S1在有效矩形成像區(qū)域A內(nèi),則根據(jù)右眼虛擬相機的圖像分辨率和有效矩形成像區(qū)域A的幾何尺寸,計算右眼虛擬相機的像平面的像素的水平方向幾何尺寸S和垂直方向幾何尺寸Sy ;創(chuàng)建一個像素位置映射結(jié)構(gòu)類型的變量V,變量V的標識成員變量tag設置為1,變量V的左眼圖像像素行號成員變量Li設置為元素&的行號,變量V的左眼圖像像素列號成員變量Lj設置為元素&
的列號,變量V的右眼圖像像素行號成員變量氏設置為# + 1,變量V的右眼圖像像素
L2 iJ
M χ
列號成員變量民設置為τ + !,其中A^ysi分別為交點31在1-7平面內(nèi)的橫、縱坐標,
L2 ^」
變量ν的交點處的面片索引號成員變量id設置為元素&的交點處的面片索引號成員變量 Id ;將變量V賦值給二維矩陣R'中行號為變量V的右眼圖像像素行號成員變量氏表示的行號、列號為變量V的右眼圖像像素列號成員變量民表示的列號的元素。本發(fā)明方法的第三部分在本發(fā)明方法的第一部分和第二部分的計算結(jié)果的基礎上,繪制右眼虛擬相機的圖像畫面,具體步驟如下步驟S301 從右眼虛擬相機光心位置向右眼虛擬相機的像平面上的每個像素Pix 發(fā)射主光線(301),并測試主光線(301)與三維虛擬場景的面片是否相交;如果不相交,則將主光線(301)對應的像素的顏色值設置為背景色,否則計算交點位置Pi',記錄交點處的面片索引號ID';步驟S302 將像素Pix對應的二維矩陣R'的元素賦值給變量V';如果變量V' 的標識成員變量tag為1且ID'等于V'的交點處的面片索引號成員變量id的值,則轉(zhuǎn)步驟S303,否則轉(zhuǎn)步驟S304 ;步驟S303:將二維矩陣R中的元賦值給變量W,其中元素的行號為V' 的左眼圖像像素行號成員變量Li表示的行號,元素的列號為V'的左眼圖像像素列號成員變量h表示的列號;判斷交點位置Pi'所在面片的鏡面反射系數(shù)ks是否為0,若不為0,則按照蒙特卡洛方法計算源自光源的鏡面反射光照值I3',同時生成鏡面反射二次光線,并遞歸地跟蹤計算源自鏡面反射二次光線的光照值I4',否則源自光源的鏡面反射光照值I3'設置為0,源自鏡面反射二次光線的光照值I4'設置為0;求變量W的源自光源的漫反射光照值成員變量Is、變量W的源自環(huán)境光的漫反射光照值成員變量I。光照值I3'、 光照值I4'等四個量的和,將其作為主光線(301)對應的像素的顏色值;轉(zhuǎn)步驟S305 ;步驟S304 判斷交點位置Pi'所在面片的光源漫反射系數(shù)kd是否為0,若不為0, 則利用蒙特卡洛方法計算交點處的源自光源的漫反射光照值I1',否則源自光源的漫反射光照值I/設置為0;判斷交點位置Pi'所在面片的環(huán)境光漫反射系數(shù)是否為0,若不為 0,則利用環(huán)境遮蔽體算法計算源自環(huán)境光的漫反射光照值I2',否則源自環(huán)境光的漫反射光照值I2'設置為0;判斷交點位置Pi'所在面片的鏡面反射系數(shù)ks是否為0,若不為0, 則按照蒙特卡洛方法計算源自光源的鏡面反射光照值I3',同時生成鏡面反射二次光線, 并遞歸地跟蹤計算源自鏡面反射二次光線的光照值I4',否則源自光源的鏡面反射光照值 I3'設置為0,源自鏡面反射二次光線的光照值I4'設置為0;將I1' +I2' +I3' +I4'作為主光線(301)對應的像素的顏色值;步驟S305:計算結(jié)束。
權(quán)利要求
1. 一種三維虛擬場景立體畫面的繪制方法,其特征在于,所需的數(shù)據(jù)結(jié)構(gòu)及實現(xiàn)步驟如下本發(fā)明的目的在于提供一種三維虛擬場景立體畫面的繪制方法,首先繪制左眼虛擬相機的圖像畫面,并記錄從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的像素發(fā)射的所有主光線與三維虛擬場景的面片的相交信息以及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值;在繪制右眼虛擬相機的圖像畫面時,利用繪制左眼虛擬相機的圖像畫面時記錄的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值,來避免大量的重復光照計算,從而提高三維虛擬場景立體畫面的繪制速度;本發(fā)明方法提供一種光照數(shù)據(jù)記錄結(jié)構(gòu),其包括源自光源的漫反射光照值成員變量 Is、源自環(huán)境光的漫反射光照值成員變量I。交點位置成員變量Ps和交點處的面片索引號成員變量Id ;本發(fā)明方法提供一種像素位置映射結(jié)構(gòu),其包括標識成員變量tag、左眼圖像像素行號成員變量L”左眼圖像像素列號成員變量L”右眼圖像像素行號成員變量R”右眼圖像像素列號成員變量&、交點處的面片索引號成員變量id;本發(fā)明方法的第一部分繪制三維虛擬場景的左眼虛擬相機的圖像畫面,同時記錄所有從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的像素發(fā)射的主光線與三維虛擬場景中的面片的交點位置及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值, 具體步驟如下步驟SlOl 創(chuàng)建一個光照數(shù)據(jù)記錄結(jié)構(gòu)類型的二維矩陣R,其包括MXN個元素,M為左眼虛擬相機的像平面上的像素行數(shù),N為左眼虛擬相機的像平面上的像素列數(shù),二維矩陣R 中的元素與左眼虛擬相機的像平面上的像素一一對應;將二維矩陣R的每個元素的源自光源的漫反射光照值成員變量Is和源自環(huán)境光的漫反射光照值成員變量Ie初始化為0 ;步驟S102 從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的每個像素發(fā)射主光線(AOl),并測試主光線(AOl)與三維虛擬場景的面片是否相交;如果不相交,則將主光線(AOl)對應的像素的顏色值設置為背景色,否則計算交點位置Pi,記錄交點處的面片索引號ID ;判斷交點位置Pi所在面片的光源漫反射系數(shù)kd是否為0,若不為0,則利用蒙特卡洛方法計算交點處的源自光源的漫反射光照值I1,否則源自光源的漫反射光照值I1設置為0 ; 判斷交點位置Pi所在面片的環(huán)境光漫反射系數(shù)是否為0,若不為0,則利用環(huán)境遮蔽體算法計算源自環(huán)境光的漫反射光照值I2,否則源自環(huán)境光的漫反射光照值I2設置為0 ;將Ip I2、Pi* ID分別賦值給二維矩陣R中與主光線(AOl)相對應的元素的源自光源的漫反射光照值成員變量Is、源自環(huán)境光的漫反射光照值成員變量I。交點位置成員變量Ps和交點處的面片索引號成員變量Id ;判斷交點位置Pi所在面片的鏡面反射系數(shù)ks是否為0,若不為 0,則利用蒙特卡洛方法計算源自光源的鏡面反射光照值13,同時生成鏡面反射二次光線, 并遞歸地跟蹤計算源自鏡面反射二次光線的光照值I4,否則源自光源的鏡面反射光照值I3 設置為0,源自鏡面反射二次光線的光照值I4設置為0 ;將Ii+I2+I3+I4作為主光線(AOl)對應的像素的顏色值;如果三維虛擬場景中的某點(105)在左眼虛擬相機(101)的像平面(102)上的成像點位于像素P1上,在右眼虛擬相機(102)的像平面(104)上的成像點位于像素P2上,則像素 P1和像素P2相對于點(105)構(gòu)成映射關系;本發(fā)明方法的第二部分計算左眼虛擬相機的像平面上的像素與右眼虛擬相機的像平面上的像素的映射關系,具體步驟如下步驟S201 創(chuàng)建一個像素位置映射結(jié)構(gòu)類型的二維矩陣R',其包括MXN個元素,M為右眼虛擬相機的像平面上的像素行數(shù),N為右眼虛擬相機的像平面上的像素列數(shù),二維矩陣 R'中的元素與右眼虛擬相機的像平面上的像素一一對應;將二維矩陣R'的每個元素的標識成員變量tag初始化為0 ;步驟S202 建立x-y-z坐標系,其原點位于右眼虛擬相機的像平面的中心,ζ軸正方向與右眼虛擬相機的前向方向向量F相同,y軸正方向與右眼虛擬相機的向上方向向量U相同,χ軸正方向與向量FXU相同;根據(jù)右眼虛擬相機的水平方向視場角α和垂直方向視場角β以及右眼虛擬相機光心位置到x-y-z坐標系原點的距離確定右眼虛擬相機的像平面上的有效矩形成像區(qū)域A ;步驟S203 對二維矩陣R中的每個元素&,做如下計算連接元素&的交點位置成員變量Ps表示的空間位置和右眼虛擬相機光心位置P。,得到一條直線段L,計算直線段L與右眼虛擬相機的像平面的交點S1,判斷交點S1是否在有效矩形成像區(qū)域A之內(nèi),如果交點S1在有效矩形成像區(qū)域A內(nèi),則根據(jù)右眼虛擬相機的圖像分辨率和有效矩形成像區(qū)域A的幾何尺寸,計算右眼虛擬相機的像平面的像素的水平方向幾何尺寸S和垂直方向幾何尺寸sy ;創(chuàng)建一個像素位置映射結(jié)構(gòu)類型的變量V,變量V的標識成員變量tag設置為1,變量V的左眼圖像像素行號成員變量Li設置為元素&的行號,變量V的左眼圖像像素列號成員變量Lj設置為元素&的列號,變量V的右眼圖像像素行號成員變量氏設置為
全文摘要
本發(fā)明公開一種三維虛擬場景立體畫面的繪制方法,屬于真實感三維虛擬場景繪制技術(shù)領域。傳統(tǒng)的三維虛擬場景立體畫面繪制方法采用分別獨立繪制左右眼虛擬相機的圖像畫面的方式實現(xiàn)立體畫面的繪制。本發(fā)明方法首先繪制左眼虛擬相機的圖像畫面,記錄從左眼虛擬相機位置向左眼虛擬相機的像平面上的像素發(fā)射的所有主光線與三維虛擬場景的面片的相交信息以及相應的源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值;在繪制右眼虛擬相機的圖像畫面時,基于左眼虛擬相機的圖像畫面的繪制結(jié)果,計算源自光源的漫反射光照值和源自環(huán)境光的漫反射光照值,避免了大量的重復光照計算,可實現(xiàn)15%~30%的立體畫面繪制加速。
文檔編號G06T15/10GK102243768SQ20111016297
公開日2011年11月16日 申請日期2011年6月17日 優(yōu)先權(quán)日2011年6月17日
發(fā)明者丁瑩, 馮欣, 底曉強, 李奇, 楊華民, 范靜濤, 蔣振剛, 陳占芳, 陳純毅, 韓成 申請人:長春理工大學