|
通过- osg::ref_ptr < osg::MatrixTransform> scale = new osg::MatrixTransform;
- float scaleSize =100000.0f;
- scale->setMatrix( osg::Matrixd::scale( scaleSize, scaleSize, scaleSize ) * ( *mt ) );
复制代码 进行放缩操作,其中mt是一个 osg::Matrix *mt = new osg::Matrix;保存了模型要放置的位置,显示后,所有的模型都是黑色,开始以为是放的太大造成的,把放缩比例调小后,还是不行.
在论坛里看到了一个设置- scale->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL,osg::StateAttribute::ON);
复制代码 应用后,果然显示了出来.
原来是没有允许法线的重放缩模式 |
|