渲染在計算機圖形學中是特別重要的環節,也是最能體現效果的,下面是我對渲染方面做的一些理論和技術總結,希望大家斧正。
渲染的定義:從模型生成影象的過程
本質上講:渲染過程試圖利用有限數目的畫素將影象空間連續函式表現成顏色
² 濃淡處理 ²
紋理對映 ²
距離模糊 ²
陰影 ² 柔和陰影 ²
反射 ² 透明,半透明 ²
折射 ² 間接照明 ²
焦散 ² 景深 ²
運動模糊 ²
真實感渲染 ²
非真實感渲染
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。但是這個遠遠...