在片段着色器中,我從3D模型中讀取了視圖座標軸系統中的法向量,以及從凹凸紋理中獲取的凸塊法線向量。 如果我想獲得漫反射係數和鏡面反射係數。難道我只是簡單地加上這兩個正常或做別的?如何用phong shading實現凹凸貼圖
0
A
回答
1
即時使用的最常見的正常映射技術,需要預先計算切線和雙切線每個頂點矢量,作爲除了正常的向量。
之後,你有正常的,切線,副法線向量,爲您創造一個矩陣(可以說TBN),以將來自視圖空間到模型的切線空間。
所以(在頂點着色器)使用TBN矩陣將光向量和眼睛向量(Lambert漫射項和Phong反射所需的)轉換爲切線空間;例如(在片段着色器中),漫射項將是D = L dot N; (其中L是切線空間中的輕位置,N是從法線貼圖紋理中提取的法向矢量)。
你可以找到詳細的教程:here。
+0
這是一個雙倍的,而不是一個副法師。你也可以用二維的「法線貼圖」,而不使用頂點法線,但你總是需要一個正切。 – Jessy 2014-10-16 14:47:10
+0
是的,你說的沒錯,把它稱之爲比喻更爲恰當。 – 2014-10-16 15:43:01
相關問題
- 1. THREEJS - OBJMTLLoader和凹凸貼圖
- 2. 凹凸貼圖上的iPhone相機
- 3. 需要凹凸貼圖的例子libgdx
- 4. 凹凸貼圖黑色碎片
- 5. Three.Js凹凸貼圖和UV佈局
- 6. OpenGL和GLSL中的凹凸貼圖
- 7. 導出凹凸和高光貼圖
- 8. OpenGL的凹凸貼圖沒有工作
- 9. 3D圖形:法線貼圖與凹凸貼圖?
- 10. Three.js加載的模型缺失凹凸和高光貼圖
- 11. Three.js ColladaLoader bumpScale /加權?調整凹凸貼圖強度的方法
- 12. 圖形中的凸凹 - Mathematica
- 13. 改善凹凸貼圖的質量in 3js
- 14. Three.js中程序生成的凹凸或高光貼圖?
- 15. Android的凹凸API
- 16. 凹凸+ OpenStreetMap錯誤
- 17. 使用重塑與凹凸
- 18. 如何使用x3d在一個對象中添加高光貼圖,凹凸貼圖和顏色紋理?
- 19. 如何將凹凸貼圖正常與真正的正常組合?
- 20. 如何NSKeyedUnarchiver與多塊來自凹凸?
- 21. 平滑Zedgraph線圖無「凹凸」
- 22. 凹面實現
- 23. Android OpenGL ES凹凸映射
- 24. JavaFX材質的凹凸和規格圖
- 25. 凹凸映射與烤燈
- 26. HLSL着色器(Phong/w法線貼圖)
- 27. 不使用`CURRENT_PROJECT_VERSION`凹凸版本號
- 28. 可以在three.js所料有凹凸貼圖和紋理貼圖單獨的重複值?
- 29. 使用SSL凹凸不能連接到真實網站ssl errror
- 30. 如何檢查多邊形是凹或凸?使用openGL
這很大程度上取決於您如何從凹凸紋理計算法線。當您沿紋理的x軸和y軸讀取深度值並計算導數以得到法線時,您必須將計算的法線從切線空間轉換爲模型空間,並在那裏使用它而不是對象的法線。 當您已經沿着模型空間計算了導數時,您可以簡單地替換該對象的法線而無需進一步轉換。 – BDL 2014-10-16 10:56:59