Re: [請益] 請問關於 Shader 的問題
看板GameDesign (遊戲設計)作者pleaselouis (LOUISN)時間16年前 (2009/08/17 15:08)推噓2(2推 0噓 12→)留言14則, 3人參與討論串2/4 (看更多)
→
08/17 12:24,
08/17 12:24
謝謝你的回覆 但是這也是我所苦惱的地方 我上一篇文章寫的不清楚 請見諒
我苦惱的地方是 如果使用兩個以上 effect
那他載入的迴圈 要如何撰寫??
一個effect時候的迴圈如下 :
---
if (SUCCEEDED(g_pEffect->SetTechnique(hTechnique)))
{
if (SUCCEEDED(g_pEffect->Begin(&totalPasses, 0)))
{
for (UINT pass2 = 0; pass2 < totalPasses; ++pass2)
{
if (SUCCEEDED(g_pEffect->BeginPass(pass)))
{
g_pDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 12);
g_pEffect->EndPass();
}
}
g_pEffect->End();
}
}
---
應該不是單純的執行上述迴圈兩次吧?? 因為我這樣測試的結果
會讓第二次的執行的 effect 覆蓋第一次執行的結果 而不是同時執行兩個結果
也試過用兩個 effect 並使用下面的巢狀回圈執行過 但是只有出現到第一個effect的效果
---
if (SUCCEEDED(g_pEffect2->SetTechnique(hTechnique2)))
{
if (SUCCEEDED(g_pEffect2->Begin(&totalPasses2, 0)))
{
for (UINT pass = 0; pass < totalPasses2; ++pass)
{
if (SUCCEEDED(g_pEffect2->BeginPass(pass)))
{
// Render the cube.
if (SUCCEEDED(g_pEffect->SetTechnique(hTechnique)))
{
if (SUCCEEDED(g_pEffect->Begin(&totalPasses, 0)))
{
for (UINT pass = 0; pass < totalPasses; ++pass)
{
if (SUCCEEDED(g_pEffect->BeginPass(pass)))
{
g_pDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 12);
g_pEffect->EndPass();
}
}
g_pEffect->End();
}
}
g_pEffect2->EndPass();
}
g_pEffect2->End();
}
}
}
---
我不知道上述的程式碼 我是否哪邊有搞錯 不知可否請你指導一下 給一些提示
而且若使用上述的結構 那麼在必須 大量同時使用 Shader 時的情況下
難道就是使用 遞迴 的方式 寫一個巢狀迴圈 不斷的往內部執行嗎??
不好意思 打了一長串的問題 不過還是請你多多幫忙 謝謝你的推文 謝謝你 <(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.76.190.21
推
08/17 15:16, , 1F
08/17 15:16, 1F
→
08/17 15:36, , 2F
08/17 15:36, 2F
→
08/17 15:37, , 3F
08/17 15:37, 3F
→
08/17 15:37, , 4F
08/17 15:37, 4F
→
08/17 15:37, , 5F
08/17 15:37, 5F
→
08/17 15:38, , 6F
08/17 15:38, 6F
→
08/17 15:39, , 7F
08/17 15:39, 7F
→
08/17 15:40, , 8F
08/17 15:40, 8F
→
08/17 15:40, , 9F
08/17 15:40, 9F
→
08/17 15:40, , 10F
08/17 15:40, 10F
→
08/17 15:41, , 11F
08/17 15:41, 11F
→
08/17 15:50, , 12F
08/17 15:50, 12F
推
08/17 16:08, , 13F
08/17 16:08, 13F
→
08/17 16:24, , 14F
08/17 16:24, 14F
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章