c++ - 使用 OpenSceneGraph 创建和导出球体

标签 c++ opengl openscenegraph

我尝试使用 OpenSceneGraph 创建和导出球体。我没有收到任何错误消息,但导出的 .obj 文件是空的。

我不知道,我做错了什么。

int main( int argc, char** argv )
{
    osg::ref_ptr<osg::Group> root = new osg::Group;

    osg::Sphere* unitSphere = new osg::Sphere( osg::Vec3(0,0,0), 1.0);
    osg::ShapeDrawable* unitSphereDrawable = new osg::ShapeDrawable(unitSphere);

    osg::Geode* basicShapesGeode = new osg::Geode();
    basicShapesGeode->addDrawable(unitSphereDrawable);

    root->addChild(basicShapesGeode);

    osgDB::writeNodeFile(*(root.get()), "sphere.obj");

    return 0;
}

我想导出一个雪人,它只有 3 个球体,一个在另一个上面。但是,如果我尝试导出球体或其他形状,则 .obj 文件为空。

最佳答案

我认为 ShapeDrawable 是一种自定义类,它不仅仅是数组中的基本几何图形(就像保存程序想要导出的那样)。

这些类无论如何都被弃用了,因为它们使用了旧的 OpenGL 调用,而这些调用无论如何都不能很好地执行。

你真正想完成什么?

我相信 osgWorks 库(一个补充工具包,不是基本 OSG 的一部分)具有创建实际的基于几何体的球体等的工具。

关于c++ - 使用 OpenSceneGraph 创建和导出球体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419298/

相关文章:

c++ - SDL_Surface 透明度问题

android - 类 'stat64' 没有构造函数 stat64(const char *,stat64*)

c++ - C/C++ 编程中需要全局析构函数吗?

c++ - 有没有办法在 Windows 上的 C++ 中以编程方式设置环境路径?

c++ - OpenGL 中的地形小 map ?

qt - OpenCV + OpenGL + Qt

c++ - OpenSceneGraph:第三人称视角

qt - OSG +QT 切换到全屏和返回

C++:作为条件语句的逻辑比较?

c++ - 通过指向虚函数的成员函数指针调用基类成员函数实现