GameDesign 板


LINE

1F:推 scottnien:normal map也可以用texture combine來做 不一定要用 07/10 01:15
2F:→ scottnien:pixel shader.. 07/10 01:16
3F:推 songfat:推一樓。可以用texture stage state 07/10 16:42
我目前的作法就是靠 texture stage state 來實做 Normal Map 技術 也就是根據前文有提到的 中文WIKI內的教學文件 : http://0rz.tw/eXR4W 以下為教學網頁連結內的 程式碼範例 以及我對其的理解 如有謬誤 煩請指正 : --- DWORD Vector2ARGB(D3DXVECTOR3 *v,float height) { DWORD r=(DWORD)(127.0f*v->x+128.0f); DWORD g=(DWORD)(127.0f*v->y+128.0f); DWORD b=(DWORD)(127.0f*v->z+128.0f); DWORD a=(DWORD)(255.0f*height); return((a<<24L)+(r<<16L)+(g<<8L)+b); } 上面這一段 是困擾我最多的地方 也就是我一直搞不太懂參數 D3DXVECTOR3 *v 的定義 教學網頁連結內 的內容有提到 : "從濃淡點到光源的單位向量與表面法線單位向量做點積, 得到的結果就是光線在表面上的強度。" 因此之前才會以 : 光線的"向量座標" = 3D物件的座標 - 光線的座標 當作參數v作測試 只是我現在把他反過來測試 : 光線的"向量座標" = 光線的座標 -3D物件的座標 這樣測試出來的結果 兩者都是雖然Mesh的確會有出現明顯的 凹凸陰影效果 ... 但只要將 Mesh 移動離光源遠一點 就會出現表面幾乎全黑的現象 雖然還是有表現凹凸感 也就是出現這樣的情況 : http://0rz.tw/4wD6p 上圖為靠近光源 下圖為遠離光源 的情形 但是我有在網路上另外找到另一個範例 是使用 Tangent Space 做運算 然後再把值填入 每一個 vertex 的 diffuse 實做 Normal Map 技術 這個範例 就算我將光源設定離開Mesh很遠 也不會出現我上述變黑的情形發生 我目前仍是認為 應該我將 參數v 的定義誤會 或是忽略少做了什麼運算 ... 因此才再度來請益 請版上的前輩 可以給予小弟指導與建議 謝謝大家 <(_ _)> --- D3DXComputeNormalMap(pNormalMap,pHeightMap,NULL,0,D3D_CHANNEL_RED,1.0f); 由於我自己已經有用 美術軟體產生的 法向量圖 所以並沒又使用這一行程式碼 --- DWORD F=Vector2ARGB(&light,0.0f); pD->SetRenderState(D3DRS_TEXTUREFACTOR,F); 這邊實際使用到 函式Vector2ARGB() 而其參數又定名為 "light" 但是其回傳的DWORD F 又只有使用 SetRenderState 將其填入 並非針對每一個vertex 因此我才會有關於 複數盞燈光的情況下 應該如何設定的疑問產生?? 至今我還是沒有理出頭緒...煩請版上的前輩 為小弟解答... --- pD->SetTexture(1,pTEXTURE); pD->SetTexture(0,pNormalMap); pD->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE); pD->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_DOTPRODUCT3); pD->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_TFACTOR); pD->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_TEXTURE); pD->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_MODULATE); pD->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_CURRENT); 這邊則是網路上的範例幾乎都一樣 所以應該是沒有問題的... 首先先把法向量圖 與 TFACTOR 作點乘積的運算 算出其代表的 光暗凹凸陰影面 再使用 MODULATE 將 Stage-0的結果 與 皮膚材質 做合成 ... --- 感謝你看完這邊文章 ... 最後 還是請版上的前輩 可以給予小弟指導與建議 謝謝大家 <(_ _)> --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.76.190.21
4F:推 NDark:mesh移動離光源遠 這邊容易搞混 最好直接給光與物體的座標 07/13 15:25
5F:→ NDark:說不定光跑到反向也不一定 07/13 15:25
剛剛再測試一次 連結是測試圖片 : http://0rz.tw/hUpBc 光線的位置座標為 ( 0, 0 ,175 ) 圖片由上至下三張圖片的 Mesh座標 依序為 : 1. Mesh-1 ( -30 , -30 , 100) 2. Mesh-2 ( -190 , 35 , 90) 3. Mesh-3 ( 180 , -160 , 100) 到這邊我又想到一個問題 如果是 平行光 那個他只有方向性 沒有 Position 那麼 平行光 是要如何算出他與 Mesh 的 向量 是多少呢?? 謝謝你的建議 麻煩請你再幫幫忙 給點建議 非常感謝你 謝謝 <(_ _)> ... ※ 編輯: pleaselouis 來自: 211.76.190.21 (07/13 16:05)
6F:→ pleaselouis:忘記說 我算完向量 有做 正規化 Normalize 的動作 07/13 16:19
7F:推 NDark:平行光有方向 可視作無窮遠的點 07/13 16:28
8F:推 NDark:然後要確定 錯誤是 光源位置 造成的(把NorMap關掉試) 07/13 16:38
9F:→ NDark:還是 Normal Map內部你有地方算錯了. 07/13 16:39
10F:→ NDark:然後 D3DRS_TEXTUREFACTOR 這是在定義multi-text的混色 07/13 16:43
11F:→ pleaselouis:有試過將Normal Map關閉過 應該是其他因素的說... 07/13 18:17
12F:→ pleaselouis:謝謝你的建議 我再努力去找找看我的錯誤 07/13 18:19
13F:推 scottnien:你的normal map如果是tangent space的..那麼傳進去的 07/14 03:35
14F:→ scottnien:光向量也應該是tangent space的. 07/14 03:36
15F:→ scottnien:因為每個端點的tangent space都不一樣.所以每個點都要 07/14 03:39
16F:→ scottnien:計算..而不是像範例中只傳進單一個向量.. 07/14 03:39
17F:→ pleaselouis:請問有網友有找到使用 Texture Stage State 實做 07/14 09:32
18F:→ pleaselouis:Normal Map 且有用到 Tangent space 的範例供參考嗎?? 07/14 09:33
19F:→ pleaselouis:我個人找到使用 Texture Stage State 的範例 都不是針 07/14 09:34
20F:→ pleaselouis:對Mesh的每一個頂點做運算 讓我很困擾 請大家幫幫忙 07/14 09:34
21F:→ pleaselouis:謝謝大家的幫忙 感謝大家 謝謝 <(_ _)> 07/14 09:35







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP