1.NiMaterialNodeLibrary中添加NiMaterialFragmentNode
2.NiMaterialFragmentNode继承于NiMaterialNode
3.输入输出的变量作为NiMaterialResource,SetType(float4等等),SetVariable(变量名字)
4.用NiMaterialFragmentNode的AddInputResource或者AddOutputResource来确定是输入或者输出变量
5.函数中的代码片用NiCodeBlock来进行维护参看下面代码
6.Contex.m_spConfigurator->AddBinding是将第一个参数NiMaterialNode输出参数赋值给第二个NiMaterialNode输入参数
7.Contex.m_spOutputs就是Shader中的Output结构体,同理Contex.m_spInputs就是Shader中的Input结构体,所有操作都会在相应的结构体中添加相关的参数.
8.Shader的组织方式非常简单,最后在生成的主函数Main中能够看到其具体的过程,大致代码可以参考如下,深入的需要仔细看NiStandMaterial
9.新的Shader组织方式,自己做一个类,继承自NiStandMaterial然后NiRenderer::GetRenderer()->SetDefaultMaterial(m_MRTMaterial);