王方+王艷淑
摘要:隨著計算機硬件與軟件技術的飛速發展,三維可視化技術也日臻成熟。它以現實性、直觀性和逼真的視覺效果收到了人們的日益青睞,特別在區域地形地貌表示、軍事指揮、水利農田重大工程規劃、城市仿真等案例中得到了廣泛的應用。在此技術應用的過程當中,渲染技術是不可缺少的一部分。
1 三維場景
1.1 三維的概念
三維是指在平面二維系中又加入了一個方向向量構成的空間系。
所謂三維,按大眾理論來講,只是人為規定的互相交錯(垂直是一個很有特性的理解)的三個方向,用這個三維坐標,看起來可以把整個世界任意一點的位置確定下來。原來,三維是為了確定位置。
三維既是坐標軸的三個軸,即x軸、y軸、z軸,其中x表示左右空間,y表示上下空間,z表示前后空間,這樣就形成了人的視覺立體感,三維動畫就是由三維制作軟件制作出來的立體動畫,實現再發展的趨勢。
所謂的三維空間是指我們所處的空間,可以理解為有前后--上下--左右 如果把時間當作一種物質存在的話再加上時間就是四維空間了。但是不難理解為,你可以在時間里任意往來 回到過去,只是應該理解為"剛才"和"現在"是不同的物質存在,可是你不可能回到"剛才"和"過去"。
三維是由二維組成的,二維即只存在兩個方向的交錯,將一個二維和一個一維疊合在一起就得到了三維。
三維具有立體性,但我們俗語常說的前后,左右,上下都只是相對于觀察的視點來說。沒有絕對的前后,左右,上下。
三維技術主要多運用于動漫產業,我國三維動畫主要有《探索地球村》(據說是中國第一部三維動畫),《魔比斯環》等。
1.2 三維地圖
2004年11月,阿拉丁在全球創造性地提出三維仿真城市的概念,并推出全球首個三維仿真網絡城市-E都市杭 州。公司從創辦之日起,憑借全球領先的三維仿真技術和工藝、一流的創業團隊和文化、巨額的風險資本注入,一直保持著高速發展。
通過三維實景模擬的表現方式,E都市網站無縫集成了城市電子地圖、三維電子黃頁、生活資訊、電子政務、同城電子商務、同城交友、虛擬社區等服務內容。該平臺是以一種全新的人性化WEB界面表現,為城市百姓的生活、工作、旅游、出行參考、網上辦事、網上創業等活動提供便捷的解決方案;為城市政府機關、事業單位、商家企業提供面向市民宣傳互動的快速通道,從而更方便地實現電子政務、地圖查詢、黃頁查詢、電子商務、推廣宣傳等社會活動和經濟活動。
E都市的建立和發展,開拓了全球WEBGIS行業應用的新方法和新思路,催生了一個新的技術領域,E都市模式已經成為事實的行業標準。作為中國目前最大的虛擬仿真電子地圖,E都市為普通人提供最優秀的電子地圖和本地搜索服務;為眾多商家提供出了企業標注、地圖廣告、定位廣告、商務地圖、API地圖租賃等多種產品服務;同時為3000多家合作網站提供了優質的三維位置地理信息服務。
2 渲染技術原理
渲染,英文為Render,也有的把它稱為著色,但我更習慣把Shade稱為著色,把Render稱為渲染。因為Render和Shade值兩個詞在三維軟件中是截然不同的兩個概念,雖然它們的功能很相似,但卻有不同。Shade是一種顯示方案,一般出現在三維軟件的主要窗口中,和三維模型的線框圖一樣起到輔助觀察模型的作用。很明顯,著色模式比線框模式更容易讓我們理解模型的結構,但它只是簡單的顯示而已,數字圖像中把它稱為明暗著色法。在像Maya這樣的高級三維軟件中,還可以用Shade顯示出簡單的燈光效果、陰影效果和表面紋理效果,當然,高質量的著色效果是需要專業三維圖形顯示卡來支持的,它可以加速和優化三維圖形的顯示。但無論怎樣優化,它都無法把顯示出來的三維圖形變成高質量的圖像,這時因為Shade采用的是一種實時顯示技術,硬件的速度限制它無法實時地反饋出場景中的反射、折射等光線追蹤效果。而現實工作中我們往往要把模型或者場景輸出成圖像文件、視頻信號或者電影膠片,這就必須經過Render程序。
2.1.1 渲染單元
渲染管線也稱為渲染流水線,是顯示芯片內部處理圖形信號相互獨立的的并行處理單元。在某種程度上可以把渲染管線比喻為工廠里面常見的各種生產流水線,工廠里的生產流水線是為了提高產品的生產能力和效率,而渲染管線則是提高顯卡的工作能力和效率。
渲染管線的數量是決定顯示芯片性能和檔次的最重要的參數之一,在相同的顯卡核心頻率下,更多的渲染管線也就意味著更大的像素填充率和紋理填充率,從顯卡的渲染管線數量上可以大致判斷出顯卡的性能高低檔次。但顯卡性能并不僅僅只是取決于渲染管線的數量,同時還取決于顯示核心架構、渲染管線的的執行效率、頂點著色單元的數量以及顯卡的核心頻率和顯存頻率等等方面。一般來說在相同的顯示核心架構下,渲染管線越多也就意味著性能越高,例如16×1架構的GeForce 6800GT其性能要強于12×1架構的GeForce 6800,就象工廠里的采用相同技術的2條生產流水線的生產能力和效率要強于1條生產流水線那樣;而在不同的顯示核心架構下,渲染管線的數量多就并不意味著性能更好,例如4×2架構的GeForce2 GTS其性能就不如2×2架構的GeForce4 MX440,就象工廠里的采用了先進技術的1條流水線的生產能力和效率反而還要強于只采用了老技術的2條生產流水線那樣。
2.1.2 像素渲染
像素渲染可在功能上取代傳統的多紋理階段,它位于光柵化階段之后。它從光柵器、頂點渲染器、應用程序、紋理貼圖幾處獲取數據。像素渲染器的計算結果可以寫入一個渲染目標,然后將該渲染目標設置為后續渲染的輸入紋理,這種技術稱為渲染到目標。像素渲染器通常輸出一個float4類型的值。如果像素渲染器同時對幾個渲染目標進行渲染,則最多可以輸出4個float4值,這種技術稱為多渲染目標。
2.1.3 頂點渲染
頂點渲染可在功能上取代傳統的變換與光照階段,它位于鑲嵌階段之后,剔除與裁剪階段之前。鑲嵌階段結束后,便將一個頂點數據傳遞給頂點渲染器,頂點可能包含位置、紋理坐標、頂點顏色、法線等數據。頂點渲染器不能創建或刪除頂點,它處理結束后至少要輸出頂點中的位置數據。
2.1.4 渲染紋理
色彩是光的一種特性,我們通常看到的色彩是光作用于眼睛的結果。但光線照射到物體上的時候,物體會吸收一些光色,同時也會漫反射一些光色,這些漫反射出來的光色到達我們的的眼睛之后,就決定物體看起來是什么顏色,這種顏色在繪畫中稱為“固有色”。這些被漫反射出來的光色除了會影響我們的視覺之外,還會影響它周圍的物體,這就是光能傳遞。當然,影響的范圍不會像我們的視覺范圍那么大,它要遵循光能衰減的原理。另外,有很多資料把RADIOSITY翻譯成“熱輻射”,其實這也蠻貼切的,因為物體在反射光色的時候,光色就是以輻射的形式發散出去的,所以,它周圍的物體才會出現“染色”現象。
在這之后,渲染程序還要根據物體的材質來計算物體表面的顏色,材質的類型不同,屬性不同,紋理不同都會產生各種不同的效果。而且,這個結果不是獨立存在的,它必須和前面所說的光源結合起來。如果場景中有粒子系統,比如火焰、煙霧等,渲染程序都要加以“考慮”。