專利名稱:一種圖形渲染方法
技術(shù)領域:
本發(fā)明涉及多媒體技術(shù)領域,特別是涉及一種圖形渲染方法。
背景技術(shù):
隨著計算機圖形圖像技術(shù)和計算機硬件技術(shù)的發(fā)展,計算機動畫和圖形 圖像處理廣泛應用于軍事、娛樂、廣告、仿真、教育等領域。精彩的電影特 技,精美的產(chǎn)品模型設計,身臨其境的模擬訓練器和逼真的游戲動畫,無不 體現(xiàn)著現(xiàn)代圖形圖像技術(shù)的強大能力。計算機硬件技術(shù)的發(fā)展,為計算機圖 形圖像技術(shù)的發(fā)展提供了物質(zhì)保障,而計算機圖形圖像技術(shù)的發(fā)展,對計算 機硬件系統(tǒng)的要求越來越高,又促使計算機硬件系統(tǒng)不斷更新發(fā)展。圖形圖 像渲染引擎是圖形圖像處理系統(tǒng)的核心,每一個現(xiàn)代圖形圖像系統(tǒng)都需要與 之功能相適應的引擎,提供其圖形圖像處理的技術(shù)基礎。圖形圖像應用系統(tǒng) 通過渲染引擎把模型、動畫、光影、特效等所有效果計算出來并以圖像形式 顯示,圖像最終的輸出質(zhì)量由圖形圖像應用系統(tǒng)直接決定。
常見的渲染引擎,如OpenGL和Direct3D, 4吏用傳統(tǒng)的三維變^:渲染三 維圖形,將一個圖形生成圖像并顯示在屏幕上。如圖l所示,為現(xiàn)有技術(shù)中 圖形渲染方法流程圖,包括以下步驟
步驟101,通過建模變換將物體空間中的圖形放置在世界空間中。 步驟102,通過視變換將世界空間中的圖形放置在眼空間中。 步驟103,通過投影變換將眼空間中的圖形放置在剪裁空間中。 步驟104,通過透視除法將剪裁空間中的圖形放置在標準設備空間中。 步驟105,通過視圖和深度范圍變換將標準設備空間中的圖形放置在 窗口空間中。
上述步驟中,每個從一個空間到另一個空間的變換,都是一個矩陣的操 作。在工程中創(chuàng)建完一個圖形,該圖形會在物體空間中有一個物體空間坐標。如果想把該圖形放置在世界空間中,就需要得到該圖形的世界空間坐標。該 圖形的世界空間坐標是通過該圖形的物體空間坐標乘以 一個轉(zhuǎn)換矩陣得到 的,這個矩陣是物體空間坐標經(jīng)過旋轉(zhuǎn)、縮放和平移的體現(xiàn),稱為建模變換 矩陣。目前,對圖形在空間中的操控是在這一步完成的,也就是改變建模變 換的矩陣使圖形處于不同的空間位置。
在通常情況下,攝像機或觀眾的眼睛是沿著世界空間坐標的Z方向來觀 察圖形的,因此,被觀察的圖形正對攝像機或觀眾的眼睛。然而, 一旦改變 攝像機的位置或者觀察者的位置,即攝像機或觀眾的眼睛不再沿著世界空間 坐標的Z方向來觀察圖形,被觀察的圖形將不再正對攝像機或觀眾的眼睛。 在某些應用場景下,需要圖形始終正對著攝像機或觀眾的眼睛,顯然,現(xiàn)有 技術(shù)并不能滿足上述要求。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種圖形渲染方法,解決了圖形渲染中被渲染的圖形 不正對攝像機或觀眾的眼睛的問題。
為達到上述目的,本發(fā)明實施例一方面提出一種圖形渲染方法,包括以
下步驟
獲取空間變換矩陣; 對所述空間變換矩陣進行操作; 根據(jù)所述操作的結(jié)果進行圖形渲染。
其中,空間變換矩陣具體包括建模變換矩陣和視變換矩陣。 所述對空間變換矩陣進行操作,具體包括
分別從所述建模變換矩陣和所述視變換矩陣中分解出所述建模變換矩陣 的旋轉(zhuǎn)矩陣和所述視變換矩陣的旋轉(zhuǎn)矩陣;
計算所述建模變換矩陣的旋轉(zhuǎn)矩陣和所述視變換矩陣的旋轉(zhuǎn)矩陣的乘
積;
使用所述乘積作為新的建模變換矩陣的旋轉(zhuǎn)矩陣。 本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為采用了對空間變換矩陣的 操作機制,從而,不管攝像機或者觀察者的位置怎樣變化,渲染后輸出的圖爿像始終正對攝像機和觀察者的眼睛,完成了現(xiàn)有技術(shù)中不能完成的渲染效果。
圖1為現(xiàn)有技術(shù)中圖形渲染方法流程圖2為本發(fā)明實施例中圖形渲染方法流程圖3為本發(fā)明實施中圖形渲染具體實現(xiàn)方式流程圖。
具體實施例方式
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進一步詳細描述 如圖2所示,為本發(fā)明實施例中圖形渲染方法流程圖,包括以下步驟 步驟201,獲取空間變換矩陣。
在圖形流水線中,圖形從一個空間到另一個空間變換,都是一個空間變 換矩陣操作的結(jié)果??臻g變換矩陣包括建模變換矩陣、視變換矩陣和投影 變換矩陣,建模變換矩陣實現(xiàn)了圖形從物體空間到世界空間的變換,視變換 矩陣實現(xiàn)了圖形從世界空間到眼空間的變換,投影變換矩陣實現(xiàn)了圖形從眼 空間到剪裁空間的變換。
步驟202,對空間變換矩陣進行操作。
對空間變換矩陣的操作包括對空間變換矩陣的分解、運算和賦值。這 些操作通常在進行組合之后,才能達到操作的目的。 步驟203,根據(jù)操作的結(jié)果進行圖形渲染。
上述步驟的操作,可得到新的空間變換矩陣。通過這些新的空間變換 矩陣,可完成對圖形的渲染。在此之前,屏幕顯示還是基于原有的空間變換 矩陣的效果。
如圖3所示,為本發(fā)明實施中圖形渲染具體實現(xiàn)方式流程圖,包括以 下步驟
步驟301 ,通過建模變換矩陣將物體空間中的圖形放置在世界空間中。 將圖形在物體空間中的坐標乘以建模變換矩陣,即得到圖形在世界空 間中的坐標,圖形也被放置在世界空間中。
5步驟302,通過視變換矩陣將世界空間中的圖形放置在眼空間中。 將圖形在世界空間中的坐標乘以視變換矩陣,即得到圖形在眼空間中
的坐標,圖形也被放置在眼空間中。
步驟303,通過投影變換矩陣將眼空間中的圖形放置在剪裁空間中。 將圖形在眼空間中的坐標乘以投影變換矩陣,即得到圖形在剪裁空間
中的坐標,圖形也被放置在剪裁空間中。
步驟304,通過透視除法將剪裁空間中的圖形放置在標準設備空間中。 剪裁空間的坐標是齊次形式〈x,y,z,w〉的,使用透視除法,即用w除x、
y、 z,便可得到圖形在標準設備空間中的坐標,圖形也被放置在標準設備
空間中。
步驟305,通過視圖和深度范圍變換將標準設備空間中的圖形放置在 窗口空間中。
取圖形的標準設備坐標,進行視圖和深度范圍變換后,得到圖形早窗 口空間中的坐標,圖形被放置在窗口空間中,并以圖像的形式顯示輸出。 然而,輸出的圖像是否正對攝像機或觀察者的眼睛,依賴于攝像機或觀察 者的位置,即視變換矩陣。 一旦視變換矩陣分解后的旋轉(zhuǎn)矩陣不為單位陣, 輸出的圖像將不再正對攝像機或觀察者的眼睛。
步驟306,從圖形流水線中獲取空間變換矩陣。
獲取的空間變換矩陣包括建模變換矩陣、視變換矩陣和投影變換矩陣, 建模變換矩陣記為matModel,視變換矩陣記為matView,投影變換矩陣記為 matProj 。
步驟307,分別從建模變換矩陣和視變換矩陣中分解出建模變換矩陣的 旋轉(zhuǎn)矩陣和視變換矩陣的旋轉(zhuǎn)矩陣。
任何矩陣均可被分解為旋轉(zhuǎn),縮放,平移三個矩陣,在獲取matModel和 matView之后,可從上述兩個矩陣中分解出各自的旋轉(zhuǎn)矩陣,分別記為 matModelRot和matViewRot。
步驟308,計算建模變換矩陣的旋轉(zhuǎn)矩陣和視變換矩陣的旋轉(zhuǎn)矩陣的乘積。步驟309,使用上述乘積作為新的建模變換矩陣的旋轉(zhuǎn)矩陣。 matModelRot和matViewRot相乘后,得到 一個新的值,該值可作為新的 建模變換矩陣的旋轉(zhuǎn)矩陣,進行空間變換。
步驟310,通過新的建模變換矩陣將物體空間中的圖形放置在世界空間中。
將圖形在物體空間中的坐標乘以新的建模變換矩陣,即改變了建模變
換矩陣,圖形在世界空間中的坐標也隨之改變。
步驟311,通過視變換矩陣將世界空間中的圖形放置在眼空間中。 步驟312,通過投影變換矩陣將眼空間中的圖形放置在剪裁空間中。 步驟313,通過透視除法將剪裁空間中的圖形放置在標準設備空間中。 步驟314,通過視圖和深度范圍變換將標準設備空間中的圖形放置在
窗口空間中。
隨著建模變換矩陣的改變,圖形在世界空間、眼空間、剪裁空間、標 準設備空間和窗口空間的一系列坐標都隨之改變。無論視變換矩陣作何改 變,經(jīng)過上述空間變換后,輸出的圖像將始終正對攝像機或觀察者的眼睛。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為采用了對空間變換矩陣的 操作機制,不管攝像機或者觀察者的位置怎樣變化,渲染后的圖形始終正對 才聶像機和觀察者的眼睛顯示,完成了現(xiàn)有技術(shù)中不能完成的渲染效果。
通過以上的實施方式的描述,本領域的技術(shù)人員可以清楚地了解到本 發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬_ 件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技 術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體 現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使 得一臺終端設備(可以是手機,個人計算機,服務器,或者網(wǎng)絡設備等) 執(zhí)行本發(fā)明各個實施例所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領域的 普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進 和潤飾,這些改進和潤飾也應視本發(fā)明的保護范圍。
權(quán)利要求
1、一種圖形渲染方法,其特征在于,包括以下步驟獲取空間變換矩陣;對所述空間變換矩陣進行操作;根據(jù)所述操作的結(jié)果進行圖形渲染。
2、 如權(quán)利要求1所述圖形渲染方法,其特征在于,所述空間變換矩陣, 具體包括建模變換矩陣和視變換矩陣。
3、 如權(quán)利要求2所述圖形渲染方法,其特征在于,所述對空間變換矩陣 進行操作,具體包括分別從所述建模變換矩陣和所述視變換矩陣中分解出所述建模變換矩陣 的旋轉(zhuǎn)矩陣和所述^L變換矩陣的旋轉(zhuǎn)矩陣;計算所述建模變換矩陣的旋轉(zhuǎn)矩陣和所述視變換矩陣的旋轉(zhuǎn)矩陣的乘積;使用所述乘積作為新的建模變換矩陣的旋轉(zhuǎn)矩陣。
全文摘要
本發(fā)明實施例公開了一種圖形渲染方法,包括以下步驟獲取空間變換矩陣;對所述空間變換矩陣進行操作;根據(jù)所述操作的結(jié)果進行圖形渲染??臻g變換矩陣具體包括建模變換矩陣和視變換矩陣。通過本發(fā)明實施例公布的對空間變換矩陣的操作機制,不管攝像機或者觀察者的位置怎樣變化,渲染后輸出的圖像始終正對攝像機和觀察者的眼睛,完成了現(xiàn)有技術(shù)中不能完成的渲染效果。
文檔編號G06T15/00GK101593356SQ20081011270
公開日2009年12月2日 申請日期2008年5月26日 優(yōu)先權(quán)日2008年5月26日
發(fā)明者歡 蔡 申請人:新奧特(北京)視頻技術(shù)有限公司