HLSL效果框架

HLSL效果框架能簡化許多操作.這裏先不寫具體的效果框架的程序,在處理多光源光照的時候再整理.

下一章:效果框架-多種光源的多光源 疊加效果

這兒先列出效果框架的一個注意點:

在begin和end中間不建議設置着色器變量,雖然用CommitChanges()可強制傳入顯卡,但是太浪費性能,

調用默認的begin和end總是最好的.所以渲染框架如下:

for (int i = 0; i < 4; i++)//四個模型
   {
    WVPMatrix = m_WorldMatrices[i] * m_ViewMatrix * m_ProjMatrix;//世界觀察投影矩陣

    m_NLightEffect->SetMatrix(m_WVPMatrixHandle, &WVPMatrix);//設置着色器 世界觀察投影矩陣
    UINT numPass = 0;

    //開始技術
    m_NLightEffect->Begin(&numPass, 0);//在begin和end中間不建議設置着色器變量,要設置只能用CommitChanges()強制傳入
    for (UINT j = 0; j < numPass; ++j)//pass個數
    {
     m_NLightEffect->BeginPass(j); //開始pass
     m_Meshes[i]->DrawSubset(0);  //繪製第i個模型
     m_NLightEffect->EndPass();     //結束過程
    }
    //結束使用技術
    m_NLightEffect->End(); 
   }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章