渲染技術的總結

2021-07-05 13:50:24 字數 3188 閱讀 7240

渲染在計算機圖形學中是特別重要的環節,也是最能體現效果的,下面是我對渲染方面做的一些理論和技術總結,希望大家斧正。

渲染的定義:從模型生成影象的過程

本質上講:渲染過程試圖利用有限數目的畫素將影象空間連續函式表現成顏色

² 濃淡處理 ² 

紋理對映 ² 

距離模糊 ² 

陰影 ² 柔和陰影 ² 

反射 ² 透明,半透明 ² 

折射 ² 間接照明 ² 

焦散 ² 景深 ² 

運動模糊 ² 

真實感渲染 ² 

非真實感渲染

1.   

掃瞄線渲染和柵格化

2.   

光線投射:從眼睛投射光線到物體的每個點,查詢阻擋光線的最近物體,也就是把影象當作乙個屏風,每個點就是屏風上的乙個正方形。這個演算法可以確定物體的濃淡效果。

3.   

輻射著色:將表面當成漫反射表面,只考慮面與面之間漫反射的相互作用。

4.   

光線跟蹤:跟蹤從眼睛發出的光線而不是光源發出的光線,來將編排好的場景的數學模型顯現出來,效率高,效果好。

渲染研究工作主要集中在科學模型的改進(光照模型等)及高效的應用(gpu實時加速等)。

目前成功商業

3d遊戲普遍採用的碰撞檢測是採用

bsp樹及包裝盒方式。簡單講就是採用乙個描述用的正方體或者球型體包裹住

3d物體物件整體(或者是主要部分),之後根據

「描述用

」包裝盒的距離、位置等資訊來計算是否發生碰撞。

實時加速等)。

應用程式階段:

l  執行圖形系統,儲存執行狀態

l  接受使用者輸入

l  決定使用者所在的位置和他們的觀察範圍

l  計算碰撞檢測,使用加速演算法優化場景管理等

l  在繪製之前設定圖形硬體的狀態

l  傳送三角形資料到圖形硬體上用來繪製圖形

幾何處理階段:

l  頂點座標變換

l  光照計算,頂點混合,頂點投影等

l  幾何體裁減

l  視口座標到螢幕座標系的轉化

光柵化階段:

l  多邊形被細化分配到螢幕中的畫素

紋理貼圖階段:

l  使用來改變幾何體的表面顏色

片段處理階段:

l  幀快取操作,包括深度檢測,模板檢測等

l  混合操作,包括透明度混合,紋理混合等

顯示階段:

l  掃瞄幀快取資料顯示到裝置上;

3d實時渲染技術主要是將加速演算法應用到不同的渲染階段

為開發人員提供了直接操縱gpu內部資料處理過程的功能,它通過撰寫稱為著色器的程式來完成對gpu的控制,從而實現對頂點和畫素的處理。

可實現任意複雜的光照模型;可實現逐畫素光照效果;可實現過程文理效果

在頂點處理器中執行的程式叫做頂點程式,其作用是進行頂點變化

在乙個頂點程式中,允許的輸入有位置資訊(這個位置是區域性座標),頂點顏色(在三維繪製頂點時指定的),法向資訊,n個紋理座標,輸出通常有位置,顏色,n歌紋理座標,不輸出的有預設值。  在片元處理器中執行的程式稱作片元程式,其作用是為已經光柵化(圖元處理)的每乙個片元產生它的顏色。對於片元程式,它的輸入只有紋理資訊,輸出也只有顏色資訊。當然輸入的紋理資訊可以封裝其他的可以被光柵化的資訊(如位置,法向等),也可以根據不同的需要和紋理取樣來直接控制每個片元的最終顏色

1. 常用圖形系統api:opengl和direct3d

2. 著色器

l 頂點著色器(vertex shader):提供讀寫頂點屬性(頂點位置,法線及顏色屬性)的功能。缺點無法增減頂點。

l 片斷著色器[畫素著色器]pixel shader:提供讀寫畫素資料的功能,可以根據頂點屬性中的位置資訊,紋理座標資訊等計算出最終的畫素屬性,繪製出物體。

l 幾何著色器 geometry shader:可以直接生成頂點資料,彌補了頂點著色器的缺點增強了著色器的功能

3.幾種常見的高階著色語言

real-timeshading language(stanford,2001)

cg(nvidia,2003);

hlsl(microsoft 2003);

glsl(3dlabs,2003);

4.常用的圖形引擎

l ogre:開源

l torque:具備完整功能的3a級的遊戲引擎,跨平台

l gamebryo:跨平台

l unreal3:功能最為強大的圖形渲染引擎,**非常昂貴

5.實時渲染主要解決一下幾個問題

l 如何降低場景的複雜度

ø 空間資料結構,如何組織場景才能更高效的管理場景;

ø 裁剪和剔除,包括背面剔除,視錐體剔除,遮擋剔除,這是可見性演算法的基礎;

ø pvs和portal

ø 多解析度建模,如lod

l 如何提高影象的質量

ø 光照陰影生成方法和全域性照明模型

ø 紋理貼圖方法,包括貼圖原理和各種紋理貼圖演算法;

ø 基於影象的渲染演算法

ø 螢幕的反走樣方法

l 如何使用硬體支援的技術

ø 快取技術,如z-快取,幀快取,累積快取和模板快取

ø 紋理影射

ø 可程式設計著色器

l 如何進行渲染管線的優化

ø 應用程式階段的優化方法

ø 頂點和光柵階段的優化方法;

ø 效能瓶頸的檢測

6.加速演算法中的場景管理

目的:為了更好的對場景中的物體進行組織,從而可以高效的對不需要進行渲染的物體進行可見性提出操作

主要技術:包圍體層次結構方法;bsp樹方法;八叉樹方法;

7.    可見性剔除

view-frustrum culling 視錐體剔除

back-face culling 背面剔除,發生在幾何階段,可以在不同位置運用背面剔除

occlusion culling 遮擋剔除

Flash渲染技術公式

轉換為十進位制 trace hexvalue 十進位制轉換為十六進製制 trace decimalvalue.tostring 16 顏色合成 color24 red 16 green 8 blue color32 alpha 24 red 16 green 8 blue 顏色提取 red colo...

Unity Shader 基於物理的渲染技術

光是一種電磁波,由光源發射出來,與物體相交,一部分被吸收轉化為其他能量,而另一些被散射,最後被感應器 如眼睛 吸收成像 吸收 改變光的能量,不改變光的方向 散射 不改變光的能量,改變光的方向 影響光的乙個重要的特質就是物體材質的折射率 drdf可以用f l,v 來表示,l是入射方向,v是觀察方向 乙...

Unity PBR渲染技術系列一

國慶假期終於空閒了,利用休息這段時間,把最近一直研究unity的渲染技術成果給大家分享一下,目前,在遊戲開發方面,兩個職位比較火,乙個是圖形學程式,另乙個是美術ta。這兩個職位有個共同的特徵就是需要掌握shader程式設計。unity官方提供了一些shader的渲染比如standard。但是這個遠遠...