|
|
发表于 2007-8-9 10:32:00
|
显示全部楼层
Re:请教一个hlsl的问题
1.如果使用后者,那当你的物体多了之后,
mFX->Begin(&numPasses, 0);
mFX->BeginPass(0);
之类的操作执行得太频繁了,也会影响效率.
2.如果使用前这,那每次更改渲染状态都要CommitChanges();,太频繁了也会影响效率.这时,一般的解决办法是对渲染状态进行分类,根据渲染状态,把物体分成几批渲染,有相同渲染状态的物体一起渲染;
如:
mFX->Begin(&numPasses, 0);
mFX->BeginPass(0);
//set something
CommitChange();
subScene1->Render()
//set something
CommitChange();
subScene2->Render()
......
mFX->EndPass();
mFX->End();
|
|