看板 GameDesign 關於我們 聯絡資訊
darkflier:首先呢你必須要做的是 08/17 15:36
darkflier:\Samples\C++\Direct3D\PostProcess 08/17 15:37
darkflier:把這個範例看完你就懂了 08/17 15:37
darkflier:重點不是你有幾個shader有幾個effect 08/17 15:37
darkflier:重點是你要用哪個effect 08/17 15:38
darkflier:看來你不是很了解technique可以幹什麼 08/17 15:39
darkflier:並不是所有的technique都被需要使用 08/17 15:40
darkflier:你可以只用你要的 即使不是同一個effect 08/17 15:40
darkflier:只要輸入的vertex format是相同的 就可以被使用 08/17 15:40
darkflier:其實不同也可以啦 不過你現在應該不用考慮到那麼深 08/17 15:41
謝謝你的指導 看了兩天 還是有許多的疑問 想跟你請教 <(_ _)> 首先是使用多個 Shader 的理解部分 想請你看看 我這樣理解是否正確 基本上 就是將每一個關於 Effect 的部份 都各自獨立 宣告 載入 Begin Pass 顯示 我以範例 \Samples\C++\Direct3D\BasicHLSL Sample 作測試 他的功能是膨脹一個Mesh 我試著加入一個自己寫的 Shader 他的功能就只是 把所有Pixel塗成紅色 測試結果 兩個功能都有出現 但是我塗成紅色的Shader 所顯示的Mesh 並不會跟著膨脹 所以畫面看起來就變成 最一開始未膨脹時 是一個紅色的Mesh 但當Mesh開始膨脹後 就覆蓋掉紅色的部分 露出Mesh原本的紋理 等到又開始縮小到原本的大小後 才會出現紅色的Mesh 但是範例 PostProcess 他的所有特效 都可以同時且正確的顯示 看他的程式內容 好像是因為 他有把所有的 Texture 有作暫存?? 這我不是很確定?? 因為程式碼裡面 有一個 struct 的內容有 Texture 的物件 同時還包含了 Next Prev 等等的函數功能 但我不是很能理解他...囧 還是...範例 PostProcess 能正確的同時使用所有特效的功能 就是因為你所說的 "只要輸入的vertex format是相同的 就可以被使用" 的原因嗎...?? 看了兩天 還不是很懂 你給我的範例 很不好意思... 但還是麻煩你 給我一些指導 謝謝你 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.133.21
darkflier:.......聽起來很像shader code寫錯 08/19 22:50
darkflier:想一想什麼是shader VS PS 他們之間輸出傳入的資料 08/19 22:51
darkflier:你應該連這個最基礎的概念都搞錯才會這樣問 08/19 22:51
darkflier:多看多練習就會懂了 08/19 22:53
jhs1213:看起來好像是RENDER了兩次MESH 一次是原本範例的 08/20 02:47
jhs1213:一次是 不會膨脹但是pixel shader輸出都是紅色的 effect 08/20 02:48
jhs1213:膨脹效果是vertex shader做的事,顏色計算是pixel shader 08/20 02:50
jhs1213:兩者不衝突 只需要一個effect即可達成 08/20 02:50
jhs1213:當然也沒有 同時載入兩個特效就有兩種效果這種事 08/20 02:51