3d game programming lab5- texture mapping
DESCRIPTION
3D Game Programming Lab5- Texture Mapping. Goal. 讀入材質並對應貼圖座標到幾何物體 設定材質中的各項參數 管理多個材質 自行製作能對應到模型的材質貼圖 了解各種貼圖的原理. 貼圖技術. Bump mapping(1978) Normal mapping (1996) Displacement mapping (1984) Parallax mapping (2001) Relief mapping(2005). Bump mapping. 凹凸貼圖背後的原理 - 表面起伏細節的加強 什麼是凹凸貼圖. - PowerPoint PPT PresentationTRANSCRIPT
貼圖技術貼圖技術Bump mapping(1978)Normal mapping (1996)Displacement mapping (1984)Parallax mapping (2001)Relief mapping(2005)
Bump mappingBump mapping
Bump map的缺陷-Per-pixel 的凹凸紋理以較低的花費增加了豐富的幾何細節。但該方法在側影輪廓處存在缺陷。這些地方,我們看到的還是光滑的輪廓線,而沒有任何凹凸感。
- 凹凸紋理不會投下自身陰影,從而看起來不真實。
Normal mappingNormal mapping
[Krishnamurthy 1996] normal mapping
法向量資訊生成表面的細節
Normal Map兩種主要形式-世界空間 Normal Map(不實用 )- 切空間的 Normal Map(常見 )
切空間 (tangent space)切空間 (tangent space)
Z:原本表面的法向量方向XY:表面的 UV座標兩個方向 ( 切線和
bitanget vector)以 XYZ為基底的空間 : tangent space
Normal mappingNormal mapping
RGB表示法向量在切空間的向量
•面臨取負值的問題
•把 XYZ每個軸上的法線投影長度進行N+1/2的運算。這樣就把所有的法線壓縮到了0 和 1 的範圍裡
Displacement mappingDisplacement mapping
由 Cook提出,並在 Renderman中得到了商業應用。改變幾何,而不是一般凹凸貼圖中改變的法向量
Bump mapping
Displacement Displacement mappingmapping
Relief mappingRelief mapping
[Fabio 2005] Real-Time Relief Mapping on Arbitrary Polygonal Surfaces
計算光線與高度場相交
圖 :Relief mapping
光線高度場相交演算法光線高度場相交演算法1.計算從視點到多邊形表面上的 3D 位置點的方向 (VD),用向量來表示這個方向
2. 把 VD 轉換到切線空間 (tangent space)(定義為切線、法線和次法線組成的向量)
3. 從 VD'(轉換過的 VD)和A 、貼圖坐標(s,t) ,直到計算到B,貼圖坐標 (u,v),這個位置已經到了深度值是 1.0 的地方
4.使用 A 和 B 之間的二分查找來計算 VD' 和高度域表面的相交點
5.使用計算出來的相交點的貼圖坐標來渲染每一個 fragment的屬性