亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

模擬太陽(yáng)的方法及裝置與流程

文檔序號(hào):12748928閱讀:789來(lái)源:國(guó)知局
模擬太陽(yáng)的方法及裝置與流程

本發(fā)明涉及場(chǎng)景渲染技術(shù)領(lǐng)域,尤其涉及模擬太陽(yáng)的方法及裝置。



背景技術(shù):

在當(dāng)今的三維游戲場(chǎng)景中,為了呈現(xiàn)更為逼真的自然環(huán)境,模擬出天空及其天空中的太陽(yáng)是必不可少的。而現(xiàn)如今3D游戲已不僅僅局限在PC機(jī)中安裝運(yùn)行,能在可移動(dòng)設(shè)備(比如手機(jī))中安裝運(yùn)行已成為了一種趨勢(shì)。由于可移動(dòng)設(shè)備的性能及其電量的限制,在PC機(jī)中使用的現(xiàn)有太陽(yáng)模擬技術(shù),過于復(fù)雜,使用在可移動(dòng)設(shè)備中就使得游戲渲染效率低下,耗電量大增。

比較常見的實(shí)現(xiàn)方式是模擬大氣散射,最常見的兩種大氣散射形式是Rayleigh散射和Mie散射。這兩種散射使得太陽(yáng)看上去有不同的顏色和光暈。比如太陽(yáng)光在日落時(shí)是黃橙色或是黃紅色,就是因?yàn)榘l(fā)生了Rayleigh散射的緣故。而當(dāng)大氣渾濁時(shí),太陽(yáng)周圍會(huì)出現(xiàn)一個(gè)大的白色暈輪,這是因?yàn)樘?yáng)光發(fā)生了Mie散射的緣故。

現(xiàn)有技術(shù)為了模擬這兩種大氣散射形式,要對(duì)散射方程求解。而散射方程有嵌套的積分,所以又分解為相位函數(shù)、外向散射方程、內(nèi)向散射方程、表面散射方程這四個(gè)方程來(lái)求近似解。實(shí)時(shí)模擬要進(jìn)行這一系列的方程計(jì)算,方程中又有大量的積分運(yùn)算。所以求解這些方程比較復(fù)雜且計(jì)算量非常大,在性能相對(duì)較差的移動(dòng)設(shè)備中容易造成性能瓶頸。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)?zhí)峁┠M太陽(yáng)的方法及裝置,以減少模擬太陽(yáng)的計(jì)算量。

本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:

一種模擬太陽(yáng)的方法,該方法包括:

預(yù)先設(shè)定太陽(yáng)模型為由四個(gè)頂點(diǎn)連接而成的正四邊形,預(yù)先設(shè)定與太陽(yáng)模型對(duì)應(yīng)的紋理坐標(biāo);

將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中,得到太陽(yáng)的裁剪頂點(diǎn);

對(duì)太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理,得到對(duì)應(yīng)的片元,對(duì)紋理坐標(biāo)進(jìn)行插值,得到片元中的每個(gè)像素點(diǎn)對(duì)應(yīng)的紋理地址;

根據(jù)各紋理地址,從預(yù)設(shè)的紋理圖像中采集對(duì)應(yīng)的紋素,將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘,得到片元中與該紋理地址對(duì)應(yīng)的像素點(diǎn)的顏色。

所述太陽(yáng)模型的四個(gè)頂點(diǎn)的坐標(biāo)分別為(-1,1)、(1,1)、(-1,-1)、(1,-1)。

所述紋理坐標(biāo)分別為(0,0)、(1,0)、(0,1)、(1,1)。

所述將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中包括:

根據(jù)太陽(yáng)模型的四個(gè)頂點(diǎn)坐標(biāo),以及預(yù)設(shè)的太陽(yáng)的方向、太陽(yáng)的半徑、世界轉(zhuǎn)換矩陣及旋轉(zhuǎn)偏移量,將太陽(yáng)的四個(gè)頂點(diǎn)從模型空間轉(zhuǎn)換到世界空間,根據(jù)預(yù)設(shè)的視見轉(zhuǎn)換矩陣,將太陽(yáng)的頂點(diǎn)從世界空間轉(zhuǎn)換到相機(jī)空間,根據(jù)預(yù)設(shè)的投影轉(zhuǎn)換矩陣將太陽(yáng)的頂點(diǎn)從相機(jī)空間轉(zhuǎn)換到裁剪空間。

所述將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中包括:頂點(diǎn)著色器將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中;

所述對(duì)太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理包括:光柵器對(duì)太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理;

所述對(duì)紋理坐標(biāo)進(jìn)行插值包括:光柵器對(duì)紋理坐標(biāo)進(jìn)行插值;

所述根據(jù)各紋理地址,從預(yù)設(shè)的紋理圖像中采集對(duì)應(yīng)的紋素,將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘包括:片元著色器根據(jù)各紋理地址,從預(yù)設(shè)的紋理圖像中采集對(duì)應(yīng)的紋素,將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘。

一種模擬太陽(yáng)的裝置,該裝置包括:

頂點(diǎn)著色器,用于將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中,得到太陽(yáng)的裁剪頂點(diǎn),其中,太陽(yáng)模型為由四個(gè)頂點(diǎn)連接而成的正四邊形;

光柵器,用于對(duì)頂點(diǎn)著色器得到的太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理,得到對(duì)應(yīng)的片元,對(duì)與太陽(yáng)模型對(duì)應(yīng)的紋理坐標(biāo)進(jìn)行插值,得到片元中的每個(gè)像素點(diǎn)對(duì)應(yīng)的紋理地址;

片元著色器,用于根據(jù)光柵器得到的各紋理地址,從預(yù)設(shè)的紋理圖像中采集對(duì)應(yīng)的紋素,將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘,得到片元中與該紋理地址對(duì)應(yīng)的像素點(diǎn)的顏色。

所述頂點(diǎn)著色器轉(zhuǎn)換的太陽(yáng)模型的四個(gè)頂點(diǎn)的坐標(biāo)分別為(-1,1)、(1,1)、(-1,-1)、(1,-1)。

所述光柵器進(jìn)行插值的紋理坐標(biāo)分別為(0,0)、(1,0)、(0,1)、(1,1)。

所述頂點(diǎn)著色器將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中包括:

根據(jù)太陽(yáng)模型的四個(gè)頂點(diǎn)坐標(biāo),以及預(yù)設(shè)的太陽(yáng)的方向、太陽(yáng)的半徑、世界轉(zhuǎn)換矩陣及旋轉(zhuǎn)偏移量,將太陽(yáng)的四個(gè)頂點(diǎn)從模型空間轉(zhuǎn)換到世界空間,根據(jù)預(yù)設(shè)的視見轉(zhuǎn)換矩陣,將太陽(yáng)的頂點(diǎn)從世界空間轉(zhuǎn)換到相機(jī)空間,根據(jù)預(yù)設(shè)的投影轉(zhuǎn)換矩陣將太陽(yáng)的頂點(diǎn)從相機(jī)空間轉(zhuǎn)換到裁剪空間。

可見,本申請(qǐng)能夠減少模擬太陽(yáng)的計(jì)算量,提高模擬太陽(yáng)的效率。

附圖說(shuō)明

圖1為本申請(qǐng)一實(shí)施例提供的模擬太陽(yáng)的方法流程圖;

圖2為本申請(qǐng)另一實(shí)施例提供的模擬太陽(yáng)的方法流程圖;

圖3為本申請(qǐng)實(shí)施例提供的太陽(yáng)模型的四個(gè)頂點(diǎn)的示意圖;

圖4為本申請(qǐng)實(shí)施例提供的紋理坐標(biāo)的示意圖;

圖5為本申請(qǐng)實(shí)施例提供的模擬太陽(yáng)的裝置的組成示意圖。

具體實(shí)施方式

下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。

圖1為本申請(qǐng)一實(shí)施例提供的模擬太陽(yáng)的方法流程圖,其具體步驟如下:

步驟101:預(yù)先設(shè)定太陽(yáng)模型為由四個(gè)頂點(diǎn)連接而成的正四邊形,預(yù)先設(shè)定與太陽(yáng)模型對(duì)應(yīng)的紋理坐標(biāo)。

其中,太陽(yáng)模型的四個(gè)頂點(diǎn)的坐標(biāo)分別為(-1,1)、(1,1)、(-1,-1)、(1,-1);紋理坐標(biāo)分別為(0,0)、(1,0)、(0,1)、(1,1)。

步驟102:將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中,得到太陽(yáng)的裁剪頂點(diǎn)。

步驟103:對(duì)太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理,得到對(duì)應(yīng)的片元,對(duì)紋理坐標(biāo)進(jìn)行插值,得到片元中的每個(gè)像素點(diǎn)對(duì)應(yīng)的紋理地址。

步驟104:根據(jù)各紋理地址,從預(yù)設(shè)的紋理圖像中采集對(duì)應(yīng)的紋素,將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘,得到片元中與該紋理地址對(duì)應(yīng)的像素點(diǎn)的顏色。

圖2為本申請(qǐng)另一實(shí)施例提供的模擬太陽(yáng)的方法流程圖,其具體步驟如下:

步驟201:預(yù)先設(shè)定太陽(yáng)的模型為由四個(gè)頂點(diǎn)連接而成的正四邊形,將太陽(yáng)模型的四個(gè)頂點(diǎn)的坐標(biāo)輸入OpenGL(開放圖形庫(kù))的頂點(diǎn)著色器,預(yù)先設(shè)定與太陽(yáng)模型對(duì)應(yīng)的四個(gè)紋理坐標(biāo),將四個(gè)紋理坐標(biāo)輸入頂點(diǎn)著色器;同時(shí),將預(yù)設(shè)的太陽(yáng)的方向、太陽(yáng)的半徑、世界轉(zhuǎn)換矩陣、視見轉(zhuǎn)換矩陣、投影轉(zhuǎn)換矩陣以及旋轉(zhuǎn)偏移量輸入OpenGL的頂點(diǎn)著色器。

本申請(qǐng)中,太陽(yáng)的模型如圖3所示,太陽(yáng)模型僅采用四個(gè)頂點(diǎn)構(gòu)成,并使用一張表現(xiàn)太陽(yáng)的圖像紋理來(lái)模擬。初始的四個(gè)頂點(diǎn):(-1,1)、(1,1)、(-1,-1)、(1,-1)的連線組成兩個(gè)三角形,進(jìn)而構(gòu)成一個(gè)正四邊形平面。

四個(gè)紋理坐標(biāo)如圖4所示,分別為(0,0)、(1,0)、(0,1)、(1,1),每個(gè)紋理坐標(biāo)分別賦予太陽(yáng)模型的一個(gè)頂點(diǎn),以便將圖像紋理正確映射到四個(gè)頂點(diǎn)構(gòu)成的平面上。

太陽(yáng)的方向、太陽(yáng)的半徑、世界轉(zhuǎn)換矩陣、視見轉(zhuǎn)換矩陣、投影轉(zhuǎn)換矩陣以及旋轉(zhuǎn)偏移量根據(jù)想要達(dá)到的太陽(yáng)的三維場(chǎng)景中的位置、大小等預(yù)先設(shè)置。

步驟202:頂點(diǎn)著色器根據(jù)太陽(yáng)模型的四個(gè)頂點(diǎn)坐標(biāo),以及太陽(yáng)的方向、太陽(yáng)的半徑、世界轉(zhuǎn)換矩陣及旋轉(zhuǎn)偏移量,將太陽(yáng)的四個(gè)頂點(diǎn)從模型空間轉(zhuǎn)換到世界空間,然后根據(jù)視見轉(zhuǎn)換矩陣,將太陽(yáng)的頂點(diǎn)從世界空間轉(zhuǎn)換到相機(jī)空間,再根據(jù)投影轉(zhuǎn)換矩陣將太陽(yáng)的頂點(diǎn)從相機(jī)空間轉(zhuǎn)換到裁剪空間,得到太陽(yáng)的裁剪頂點(diǎn),將太陽(yáng)的裁剪頂點(diǎn)的坐標(biāo)輸出到OpenGL的光柵器,同時(shí),將四個(gè)紋理坐標(biāo)輸出到光柵器。

步驟203:光柵器根據(jù)太陽(yáng)的裁剪頂點(diǎn)坐標(biāo),對(duì)太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理,得到對(duì)應(yīng)的片元,且,光柵器對(duì)四個(gè)紋理坐標(biāo)進(jìn)行插值處理,得到片元中的各像素點(diǎn)對(duì)應(yīng)的紋理地址,將該片元包含的各像素點(diǎn)的位置信息和各像素點(diǎn)對(duì)應(yīng)的紋理地址輸出到OpenGL的片元著色器。

步驟204:片元著色器根據(jù)各紋理地址從預(yù)設(shè)的紋理圖像中采集紋素(即紋理元素),將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘,得到片元中與該紋理地址對(duì)應(yīng)的像素點(diǎn)的顏色。

紋理圖像為根據(jù)想要達(dá)到的太陽(yáng)渲染效果如:光暈、光強(qiáng)度等所設(shè)置的。當(dāng)要更改太陽(yáng)的渲染效果時(shí),只需更改紋理圖像即可。

預(yù)設(shè)的太陽(yáng)顏色根據(jù)想要達(dá)到的太陽(yáng)顏色設(shè)置。

可見,本申請(qǐng)實(shí)施例無(wú)需對(duì)散射方程求解,減少了模擬太陽(yáng)的計(jì)算量,提高了模擬太陽(yáng)的效率,適用于應(yīng)用在移動(dòng)設(shè)備中的三維場(chǎng)景(如:游戲場(chǎng)景)太陽(yáng)模擬;且,在更改太陽(yáng)的顏色、大小、位置時(shí),只需更改預(yù)設(shè)的太陽(yáng)顏色、半徑、方向等參數(shù)即可;在更改太陽(yáng)的渲染效果時(shí),只需更改預(yù)設(shè)的紋理圖像即可。

圖5為本申請(qǐng)實(shí)施例提供的模擬太陽(yáng)的裝置的組成示意圖,該裝置主要包括:頂點(diǎn)著色器51、光柵器52和片元著色器53,其中:

頂點(diǎn)著色器51,用于將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中,得到太陽(yáng)的裁剪頂點(diǎn),將太陽(yáng)的裁剪頂點(diǎn)的坐標(biāo)和預(yù)設(shè)的與太陽(yáng)模型對(duì)應(yīng)的紋理坐標(biāo)輸出到光柵器52,其中,太陽(yáng)模型為由四個(gè)頂點(diǎn)連接而成的正四邊形。

光柵器52,用于對(duì)頂點(diǎn)著色器51得到的太陽(yáng)的裁剪頂點(diǎn)進(jìn)行光柵化處理,得到對(duì)應(yīng)的片元,對(duì)與太陽(yáng)模型對(duì)應(yīng)的紋理坐標(biāo)進(jìn)行插值,得到片元中的每個(gè)像素點(diǎn)對(duì)應(yīng)的紋理地址,將片元中包含的各像素點(diǎn)的位置信息和各像素點(diǎn)對(duì)應(yīng)的紋理地址輸出到片元著色器53。

片元著色器53,用于根據(jù)光柵器52得到的各紋理地址,從預(yù)設(shè)的紋理圖像中采集對(duì)應(yīng)的紋素,將該紋素的顏色與預(yù)設(shè)的太陽(yáng)顏色相乘,得到片元中與該紋理地址對(duì)應(yīng)的像素點(diǎn)的顏色。

一實(shí)施例中,頂點(diǎn)著色器51轉(zhuǎn)換的太陽(yáng)模型的四個(gè)頂點(diǎn)的坐標(biāo)分別為(-1,1)、(1,1)、(-1,-1)、(1,-1)。

一實(shí)施例中,光柵器52進(jìn)行插值的紋理坐標(biāo)分別為(0,0)、(1,0)、(0,1)、(1,1)。

一實(shí)施例中,頂點(diǎn)著色器51將太陽(yáng)模型轉(zhuǎn)換到裁剪空間中包括:

根據(jù)太陽(yáng)模型的四個(gè)頂點(diǎn)坐標(biāo),以及預(yù)設(shè)的太陽(yáng)的方向、太陽(yáng)的半徑、世界轉(zhuǎn)換矩陣及旋轉(zhuǎn)偏移量,將太陽(yáng)的四個(gè)頂點(diǎn)從模型空間轉(zhuǎn)換到世界空間,根據(jù)預(yù)設(shè)的視見轉(zhuǎn)換矩陣,將太陽(yáng)的頂點(diǎn)從世界空間轉(zhuǎn)換到相機(jī)空間,根據(jù)預(yù)設(shè)的投影轉(zhuǎn)換矩陣將太陽(yáng)的頂點(diǎn)從相機(jī)空間轉(zhuǎn)換到裁剪空間。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1