1

这些天我正在研究 OpenSceneGraph:

// Assumes the Cessna's root node is a group node.
osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("cessna.osg");
osg::Group* convModel1 = model->asGroup(); // OK!
osg::Geode* convModel2 = model->asGeode(); // Returns NULL?

为什么是模型->asGeode(); 返回 NULL?

4

1 回答 1

3

如果您在文本编辑器中查看 cessna.osg:

Group {
  UniqueID Group_0
  DataVariance STATIC
  cullingActive TRUE
  num_children 1
  Geode {
    DataVariance DYNAMIC
    name "cessna.osg"
    cullingActive TRUE
    num_drawables 1
    Geometry {

您会看到顶级实体是组,而不是 Geode。您需要在从 readNodeFile 返回的节点上 getChild(),然后您应该能够 asGeode()。

于 2013-02-11T05:26:51.813 回答