GameBryo Shader 组织方式

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);




posted @ 2013-08-27 22:49  EnoroF  阅读(242)  评论(0编辑  收藏  举报