遍历所有节点做一件事情可以:
NiTNodeTraversal 有三个函数。可以根据具体的函数来做一些事情。需要自己实现一个函数去做事情。
函数类似如下
struct RemoveAlphaBlending
{
void operator () (NiAVObject* pkAVObject)
{
NiAlphaProperty *pkProperty =
(NiAlphaProperty*)pkAVObject->GetProperty(NiProperty::ALPHA);
if (pkProperty)
pkProperty->SetAlphaBlending(false);
}
};
快速镜面效果。交换渲染左右成像
NiRendere::SetLeftRightSwap
几个纹理操作速度对比
NiSourceTexture < NiDynamicTexture < NiRenderTexture
资源占用反过来
设置NiViewRenderClick 的排序方法:
pkViewClick->SetProcessor
一些不会被影响的元素应该独立一个view比如天空:
用Ni3DRenderView 单独处理一个特殊元素
让某些节点不参与排序
NiSortAdjustNode 类可以设置节点以及这个节点之下的子节点不参与排序
查看写在CPP里的shader可以最后使用的shader
NiD3DGPUProgramCache::GenerateProgram