[請益] 請教 Normal Map 的相關問題

看板GameDesign作者 (LOUIS￾N)時間15年前 (2009/07/07 20:26), 編輯推噓4(407)
留言11則, 3人參與, 最新討論串1/5 (看更多)
目前小弟正在研究 Normal Map 中... 主要是參考下面兩個網頁的教學 1.中文WIKI教學 http://zh.wikipedia.org/w/index.php?title=%E6%B3%95%E5%90%91%E6%98%A0%E5%B0%84&variant=zh-tw 2.一個外國的DirectX範例程式教學 左選單的 Downloads 便可以下載範例 http://www.two-kings.de/tutorials/dxgraphics/dxgraphics14.html 這兩個教學網頁 都是以幾乎一樣的方式呈現Normal Map這個技術 但是關於其中幾點 不是很了解 故來此請教各位前輩 以第一個WIKI網頁中的程式碼舉例 其中有一個function: "DWORD Vector2ARGB(D3DXVECTOR3 *v,float height)" 其參數 D3DXVECTOR3 *v 我參考第二個網頁內的範例程式 我原本認為這個參數 應該是指 光線的"向量座標" 於是我以下列的方式求值 光線的"向量座標" = 3D物件的座標 - 光線的座標 然後將其填入 Vector2ARGB 中...但是結果完全錯誤... 而我將其參數定為 (-0.7f,0.0f,0.5f) 時 結果看起來好像還算不錯... 因此我想我對於其參數的認知是錯誤的 希望可以有前輩給我一些指導來了解 另外 根據WIKI網頁中提到 其原理為"光源的單位向量與表面法線單位向量做點積" 但若是場景內有複數以上的燈光 那麼應該要如何呢?? 麻煩版上的前輩 給小弟一些指導與建議 謝謝大家 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.190.21

07/07 20:40, , 1F
反過來 , 光源 - 3D物件的座標 , 這樣可以work嗎?
07/07 20:40, 1F

07/07 20:41, , 2F
記得向量要normalize...超過1.0裡面計算會overflow
07/07 20:41, 2F

07/07 21:11, , 3F
你應該要了解的是什麼是normal map 為什麼要用他
07/07 21:11, 3F

07/07 21:11, , 4F
而不是專注在這些看不懂的方程式
07/07 21:11, 4F

07/07 21:12, , 5F
等你了解什麼是normal map之後你自然知道要怎樣使用
07/07 21:12, 5F

07/07 21:15, , 6F
你還提到了複數光的問題...那代表你現在需要的是
07/07 21:15, 6F

07/07 21:15, , 7F
知道什麼叫做打光 打光的用意在哪
07/07 21:15, 7F

07/08 00:33, , 8F
RGB只能存0~1.0f的值, 一般是把vector normalize後..
07/08 00:33, 8F

07/08 00:35, , 9F
把x,y,z (介於-1~1之間) 分別 *0.5+0.5
07/08 00:35, 9F

07/08 00:49, , 10F
恩沒看清楚 原po的問題應該是沒把vector轉成tangent
07/08 00:49, 10F

07/08 00:50, , 11F
space吧?.如果normal map也是tangent space..
07/08 00:50, 11F
文章代碼(AID): #1AKpxOM4 (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #1AKpxOM4 (GameDesign)