GameBryo Shader 组织方式
生活随笔
收集整理的這篇文章主要介紹了
GameBryo Shader 组织方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.NiMaterialNodeLibrary中添加NiMaterialFragmentNode
2.NiMaterialFragmentNode繼承于NiMaterialNode
3.輸入輸出的變量作為NiMaterialResource,SetType(float4等等),SetVariable(變量名字)
4.用NiMaterialFragmentNode的AddInputResource或者AddOutputResource來確定是輸入或者輸出變量
5.函數(shù)中的代碼片用NiCodeBlock來進(jìn)行維護(hù)參看下面代碼
6.Contex.m_spConfigurator->AddBinding是將第一個參數(shù)NiMaterialNode輸出參數(shù)賦值給第二個NiMaterialNode輸入?yún)?shù)
7.Contex.m_spOutputs就是Shader中的Output結(jié)構(gòu)體,同理Contex.m_spInputs就是Shader中的Input結(jié)構(gòu)體,所有操作都會在相應(yīng)的結(jié)構(gòu)體中添加相關(guān)的參數(shù).
8.Shader的組織方式非常簡單,最后在生成的主函數(shù)Main中能夠看到其具體的過程,大致代碼可以參考如下,深入的需要仔細(xì)看NiStandMaterial
9.新的Shader組織方式,自己做一個類,繼承自NiStandMaterial然后NiRenderer::GetRenderer()->SetDefaultMaterial(m_MRTMaterial);
By EnoroF
2.NiMaterialFragmentNode繼承于NiMaterialNode
3.輸入輸出的變量作為NiMaterialResource,SetType(float4等等),SetVariable(變量名字)
4.用NiMaterialFragmentNode的AddInputResource或者AddOutputResource來確定是輸入或者輸出變量
5.函數(shù)中的代碼片用NiCodeBlock來進(jìn)行維護(hù)參看下面代碼
6.Contex.m_spConfigurator->AddBinding是將第一個參數(shù)NiMaterialNode輸出參數(shù)賦值給第二個NiMaterialNode輸入?yún)?shù)
7.Contex.m_spOutputs就是Shader中的Output結(jié)構(gòu)體,同理Contex.m_spInputs就是Shader中的Input結(jié)構(gòu)體,所有操作都會在相應(yīng)的結(jié)構(gòu)體中添加相關(guān)的參數(shù).
8.Shader的組織方式非常簡單,最后在生成的主函數(shù)Main中能夠看到其具體的過程,大致代碼可以參考如下,深入的需要仔細(xì)看NiStandMaterial
9.新的Shader組織方式,自己做一個類,繼承自NiStandMaterial然后NiRenderer::GetRenderer()->SetDefaultMaterial(m_MRTMaterial);
By EnoroF
轉(zhuǎn)載于:https://www.cnblogs.com/EnoroF/p/3286194.html
總結(jié)
以上是生活随笔為你收集整理的GameBryo Shader 组织方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决bash: mysql: comma
- 下一篇: 简化工作流程,10款必备的HTML5开发