欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種利用燈光索引號對像素進行光照著色的方法

文檔序號:6631432閱讀:464來源:國知局
一種利用燈光索引號對像素進行光照著色的方法
【專利摘要】本發(fā)明公開了一種利用燈光索引號對像素進行光照著色的方法,包括:獲取可見燈光的列表,并按照相機從遠到近排序為每個燈光定義索引號;繪制獲取的燈光索引號和燈光模型,得到一張燈光索引的buffer紋理,并把燈光的屬性寫入紋理;把基于buffer紋理的燈光材質(zhì)和獲取的燈光索引號打包成紋理,傳給像素著色程序,并進行像素光照著色。本發(fā)明所述利用燈光索引號對像素進行光照著色的方法,可以克服現(xiàn)有技術(shù)中計量量大、渲染效率低和適用范圍小等缺陷,以實現(xiàn)計算量小、渲染效率高和適用范圍大的優(yōu)點。
【專利說明】一種利用燈光索引號對像素進行光照著色的方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像處理【技術(shù)領(lǐng)域】,具體地,涉及一種利用燈光索引號對像素進行光 照著色的方法。

【背景技術(shù)】
[0002] 近幾年來,GPU可編程技術(shù)的發(fā)展,圖形硬件的編程能力也不斷的強大,在GPU編 程程序稱為著色(shader)程序,按照著色方式可分為兩種,一種是前向著色,一種是延時著 色,目前利用最多的是延時著色技術(shù),這種技術(shù)是一種對3D場景進行后期照明的技術(shù),它 的好處是只針對最后顯示在屏幕的像素進行著色的過程,而前向著色渲染會對很多被深度 遮擋的像素重復(fù)執(zhí)行著色過程。延時著色第一次渲染過程是將場景中未經(jīng)著色的幾何信息 寫到多渲染目標(biāo)中,這些幾何屬性包括位置、法線、材質(zhì)等信息,第二次渲染過程中,將視圖 空間中的光源屬性和第一次渲染過程得到的數(shù)據(jù)作為輸入,來執(zhí)行二維屏幕空間的后期處 理。這種方法將光照和幾何渲染分開,可以很方便的修改或者增加光照的特性。
[0003] 在游戲引擎中,場景被劃分為很多個地形快,而每個地形塊中都會有上百盞燈,靜 態(tài)的光源計算簡單,不需要每幀都重新創(chuàng)建,動態(tài)的光源是最耗費的,就需要我們提供一些 方法可以提高其性能了。
[0004] 目前游戲中大部分是基于延時著色處理場景中的光照,在后期處理優(yōu)化光照的方 法有很多中方法,一般處理的方法是:當(dāng)面臨大量動態(tài)光照的復(fù)雜場景實時渲染的應(yīng)用程 序中,先繪制光源的燈光模型,然后得到模型的所覆蓋的像素,然后對像素進行著色,這種 方法的缺點就是屏幕空間同時看到有多個燈光模型時,那么對該像素受燈光模型影響的計 算會巨大,渲染效率低下從而影響整個游戲性能。
[0005] 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在計量量大、渲染效率低 和適用范圍小等缺陷。


【發(fā)明內(nèi)容】

[0006] 本發(fā)明的目的在于,針對上述問題,提出一種利用燈光索引號對像素進行光照著 色的方法,以實現(xiàn)計算量小、渲染效率高和適用范圍大的優(yōu)點。
[0007] 為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種利用燈光索引號對像素進行光 照著色的方法,包括: a、 獲取可見燈光的列表,并按照相機從遠到近排序為每個燈光定義索引號; b、 繪制獲取的燈光索引號和燈光模型,得到一張燈光索引的buffer紋理,并把燈光的 屬性寫入紋理; c、 把基于buffer紋理的燈光材質(zhì)和獲取的燈光索引號打包成紋理,傳給像素著色程 序,并進行像素光照著色。
[0008] 進一步地,所述步驟a,具體包括: 在游戲引擎中,根據(jù)場景的需求放置大量的燈光,依次遍歷繪制整個場景中所有可見 燈光模型,按照相機的從遠到近的排序,依次為每個燈光模型定義索引號,并被輻射范圍內(nèi) 的像素進行著色。
[0009] 進一步地,所述步驟b,具體包括: 根據(jù)投影到屏幕空間像素著色的信息,得到屏幕空間中每個像素受哪些燈光影響,把 屏幕空間中每個像素的燈光影響的燈光索引號寫入紋理。
[0010] 進一步地,所述把屏幕空間中每個像素的燈光影響的燈光索引號寫入紋理的操 作,進一步包括: 保存索引號的紋理格式是ARGB32位,有4個通道,每個通道保存一個對應(yīng)的燈光索引 號,每個通道有8bit位,把bit位的最高位保存燈光索引號;那么,一個通道最多可記錄4 個燈光索引號,美術(shù)人員在場景中擺放可見模型燈光數(shù)量最大值為256,這樣把燈光索引號 寫入紋理; 對于每個像素可能受多個燈光的影響,那么在繪制該像素時,就要根據(jù)受燈光影響的 數(shù)量來決定繪制次數(shù)。
[0011] 進一步地,所述把燈光索引號寫入紋理的操作,更進一步包括: ⑴在第一次對燈光索引號繪制時,此時會把燈光索引保存到對應(yīng)的ARGB中,并把索引 號保存到每個通道的最高位,每次對同一個像素受不同燈光模型的繪制等同于混合,同時 在計算機中,移位運算符就是在二進制的基礎(chǔ)上對數(shù)字進行平移,其數(shù)學(xué)意義為:右移 一位相當(dāng)于除2,右移n位相當(dāng)于除以2的n次方,那么本發(fā)明是向右移動2位,所以前一次 渲染到屏幕像素除以4,即得到下面的混合像素的公式為:

【權(quán)利要求】
1. 一種利用燈光索引號對像素進行光照著色的方法,其特征在于,包括: a、 獲取可見燈光的列表,并按照相機從遠到近排序為每個燈光定義索引號; b、 繪制獲取的燈光索引號和燈光模型,得到一張燈光索引的buffer紋理,并把燈光的 屬性寫入紋理; c、 把基于buffer紋理的燈光材質(zhì)和獲取的燈光索引號打包成紋理,傳給像素著色程 序,并進行像素光照著色。
2. 根據(jù)權(quán)利要求1所述的利用燈光索引號對像素進行光照著色的方法,其特征在于, 所述步驟a,具體包括: 在游戲引擎中,根據(jù)場景的需求放置大量的燈光,依次遍歷繪制整個場景中所有可見 燈光模型,按照相機的從遠到近的排序,依次為每個燈光模型定義索引號,并被輻射范圍內(nèi) 的像素進行著色。
3. 根據(jù)權(quán)利要求1或2所述的利用燈光索引號對像素進行光照著色的方法,其特征在 于,所述步驟b,具體包括: 根據(jù)投影到屏幕空間像素著色的信息,得到屏幕空間中每個像素受哪些燈光影響,把 屏幕空間中每個像素的燈光影響的燈光索引號寫入紋理。
4. 根據(jù)權(quán)利要求3所述的利用燈光索引號對像素進行光照著色的方法,其特征在于, 所述把屏幕空間中每個像素的燈光影響的燈光索引號寫入紋理的操作,進一步包括: 保存索引號的紋理格式是ARGB32位,有4個通道,每個通道保存一個對應(yīng)的燈光索引 號,每個通道有Sbit位,把bit位的最高位保存燈光索引號;那么,一個通道最多可記錄4 個燈光索引號,美術(shù)人員在場景中擺放可見模型燈光數(shù)量最大值為256,這樣把燈光索引號 寫入紋理; 對于每個像素可能受多個燈光的影響,那么在繪制該像素時,就要根據(jù)受燈光影響的 數(shù)量來決定繪制次數(shù)。
5. 根據(jù)權(quán)利要求4所述的利用燈光索引號對像素進行光照著色的方法,其特征在于, 所述把燈光索引號寫入紋理的操作,更進一步包括: ⑴在第一次對燈光索引號繪制時,此時會把燈光索引保存到對應(yīng)的ARGB中,并把索引 號保存到每個通道的最高位,每次對同一個像素受不同燈光模型的繪制等同于混合,同時 在計算機中,移位運算符就是在二進制的基礎(chǔ)上對數(shù)字進行平移,其數(shù)學(xué)意義為:右移 一位相當(dāng)于除2,右移η位相當(dāng)于除以2的η次方,那么本發(fā)明是向右移動2位,所以前一次 渲染到屏幕像素除以4,即得到下面的混合像素的公式為:
其中,Pf;m彳為混合后的像素,為混合前像素,p為即將繪制的像素; 在開始繪制時,也就是把即將渲染到屏幕像素等于混合像素,最后將混合像素繪制到 渲染目標(biāo)中; ⑵當(dāng)?shù)诙卫L制燈光索引號時,把先前保存高位的燈光索引號,向后移動2位,把第二 次繪制的索引號放到高位; ⑶第三次繪制索引號時,先保存前面兩次繪制的索引號,再向后移動2位,把第三次繪 制得到的燈光索引號放入高位; ⑷第四次繪制索引號時,先保存前面三次繪制的索引號,再向后移動2位,把第四次繪 制得到的燈光索引號放入高位; 最終保留最后4個燈光索引號的繪制,也有部分像素受燈光影響小于4個,就按照對應(yīng) 的索引號繪制。
6. 根據(jù)權(quán)利要求4所述的利用燈光索引號對像素進行光照著色的方法,其特征在于, 所述對于每個像素可能受多個燈光的影響,那么在繪制該像素時,就要根據(jù)受燈光影響的 數(shù)量來決定繪制次數(shù)的操作,更進一步包括: ⑴當(dāng)像素受多個燈光模型影響時,距離相機越近,受該燈光材質(zhì)影響越大,距離相機越 遠,受該燈光材質(zhì)影響就越小,通常把重疊的燈光進行混合就可以的到最終像素的光照顏 色值; 與此同時把燈光的屬性寫入紋理,方便在像素著色階段獲取燈光的參數(shù)數(shù)據(jù); ⑵把燈光索引號"打包"到紋理中,得到一張燈光索引的buffer紋理,通過渲染目標(biāo)返 回每個像素受光照的索引信息。
7. 根據(jù)權(quán)利要求3所述的利用燈光索引號對像素進行光照著色的方法,其特征在于, 所述步驟c,具體包括: 在GPU編程中,分為頂點著色程序和像素著色程序,把步驟b得到的燈光索引紋理和燈 光材質(zhì)屬性傳入像素著色程序里; 經(jīng)過著色程序后"解壓"出與之對應(yīng)的燈光參數(shù),其中每個像素最多能夠得到不少于1 個燈光索引號,而之前每個像素只能得到一個燈光索引號; 然后將這些燈光參數(shù)與對應(yīng)像素關(guān)聯(lián),進行光照著色。
8. 根據(jù)權(quán)利要求1或2所述的利用燈光索引號對像素進行光照著色的方法,其特征在 于,在步驟b中,所述燈光模型,是指在游戲中為了模擬真實的不同光源的照射范圍,事先 為包含點光源和聚光燈的每個燈光指定的模型。
【文檔編號】G06T15/50GK104392479SQ201410573238
【公開日】2015年3月4日 申請日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】張翼 申請人:無錫梵天信息技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南投县| 扶绥县| 花垣县| 武汉市| 吉林省| 馆陶县| 托里县| 定兴县| 兴义市| 雷山县| 大连市| 永福县| 沅陵县| 南投县| 怀柔区| 禹州市| 洞口县| 彰化市| 濉溪县| 潼关县| 大埔县| 徐州市| 小金县| 正阳县| 富宁县| 巨鹿县| 东阳市| 青岛市| 阿克| 张家港市| 乌拉特中旗| 香港| 太白县| 哈密市| 武穴市| 馆陶县| 广河县| 修武县| 昌平区| 宝兴县| 天柱县|