osg中的Impostor

来源:互联网 发布:淘宝企业店铺的要求 编辑:程序博客网 时间:2024/06/06 14:11

类说明:用图代替模型的LOD技术。
类继承图:
这里写图片描述
类中方法: Impostor () Impostor (const Impostor &lod, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
说明:构造函数。第二个从已有的Imposter中构造现在的Imposter。
参数
lod 源LOD
copyop 拷贝方式,默认为是浅拷贝,可以为深拷贝:DEEP_COPY_OBJECTS

virtual void traverse (osg::NodeVisitor &nv)
说明:接受NoeVisitor向下遍历
nv NodeVisitor

void setImpostorThreshold (float distance)
说明:设置视矩阀值。如果不设置按LOD的算
distance distance
float getImpostorThreshold () const
说明:得到设置的阀值

void setImpostorThresholdToBound (float ratio=1.0f)
说明:设置该阀值与包围球半径的比率关系
ratio 阀值与包围球比率。

ImpostorSprite * findBestImpostorSprite (unsigned int contextID, const osg::Vec3 &currLocalEyePoint) const
说明:找到一个当前视点看起来最合适的Sprite
contextID 上下文ID
currLocalEyePoint 当前局部视点

void addImpostorSprite (unsigned int contextID, ImpostorSprite *is)
说明:添加一个Sprite到contextID所指内容当中。
contextID 上下文ID
is Sprite的指针
ImpostorSpriteList & getImpostorSpriteList (unsigned int contexID) const
说明:得到ID为contextID的Sprite的列表。
contextID 上下文ID

virtual osg::BoundingSphere computeBound () const
说明:计算包围球。

0 0