|
楼主 |
发表于 2008-4-18 09:11:46
|
显示全部楼层
原帖由 array 于 2008-4-18 00:32 发表
呵呵,不过我个人觉得关闭显示列表并不是一个好方法,随着轨迹点的增加,速度的减慢会越来越难以忍受的。
建议还是使用Geometry类,以及试一试VBO
首先感谢你的帮助,但是我在geometry中的EventCallback中做了以下的事情:
class drawableEventCallback : public osg:rawable::EventCallback
{
virtual void event(osg::NodeVisitor* nv, osg::Drawable* drawable)
{
osg::Vec3Array* vertices = (osg::Vec3Array*)(drawable->asGeometry()->getVertexArray());
static int i=0;
vertices->push_back(osg::Vec3(i*0.001f,i*0.001f,1.259541));
i++;
std::cout<<"i = "<<i<<std::endl;
drawable->asGeometry()->setVertexArray(vertices);
std::cout<<"num = "<<vertices->size()<<std::endl;
}
};
也进行了如下设置:
setUseVertexBufferObjects(true);
结果显示vertices的size()的确在增加,但显示的结果并没有发生变化。 |
|