|
在用osg模拟水花时,用到了很多三角形组成的网格来模拟水波,通过改变三角形的顶点高度来模拟水的波动。之前用opengl实现256*256大小的网格(有131072个三角形),帧率一直是85帧。但是用osg来做,帧率就很低。我用了三种方法:
(1)在OSG中直接用: waveGeometry->setVertexArray(vertices); 来画三角形帧率只有10帧左右。
(2)在OSG中调用opengl的代码,并且自己计算包围盒,帧率有一点点提高,但是也只有20帧左右。
(3)在OSG中使用camera的回调: myViewer.getCamera()->setPostDrawCallback(new CWaveCallBack);帧率有55帧左右
但是这三种方法都没有达到opengl的85帧。
我想知道是原因导致帧率这么低?有可能在OSG中达到85的帧率吗?
附件中是第二种方法的主要代码。
[ 本帖最后由 flying5 于 2009-1-12 22:36 编辑 ] |
|