看板 GameDesign 關於我們 聯絡資訊
目前小弟正在研究 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
NDark:反過來 , 光源 - 3D物件的座標 , 這樣可以work嗎? 07/07 20:40
NDark:記得向量要normalize...超過1.0裡面計算會overflow 07/07 20:41
darkflier:你應該要了解的是什麼是normal map 為什麼要用他 07/07 21:11
darkflier:而不是專注在這些看不懂的方程式 07/07 21:11
darkflier:等你了解什麼是normal map之後你自然知道要怎樣使用 07/07 21:12
darkflier:你還提到了複數光的問題...那代表你現在需要的是 07/07 21:15
darkflier:知道什麼叫做打光 打光的用意在哪 07/07 21:15
scottnien:RGB只能存0~1.0f的值, 一般是把vector normalize後.. 07/08 00:33
scottnien:把x,y,z (介於-1~1之間) 分別 *0.5+0.5 07/08 00:35
scottnien:恩沒看清楚 原po的問題應該是沒把vector轉成tangent 07/08 00:49
scottnien:space吧?.如果normal map也是tangent space.. 07/08 00:50