|
项目里需要根据漫游过程实时绘制运动的轨迹线 所以轨迹线的顶点数组的长度就不停的动态变化
我在UpdateCallback中需要先把Geometry中旧的Line Primitive Set删除 在添加新的顶点之后 建立更新后的Line Primitive Set并添加到Geometry中去
这样的话设置Geometry使用VBO还有效吗 或者哪位大侠有更好的实现思路 不吝赐教
osg::Vec3Array* vertices=dynamic_cast<osg::Vec3Array*>(geom->getVertexArray());
if (vertices)
{
osg::Vec3 newPt;
newPt.set(intFrameNumber,intFrameNumber,intFrameNumber);
vertices->push_back(newPt);
geom->setVertexArray(vertices);
geom->removePrimitiveSet(0);
geom->addPrimitiveSet(new osg:rawArrays(osg::DrawArrays:INE_STRIP,0,vertices->getNumElements()));
vertices->dirty();
} |
|