查看: 5328|回复: 3

android下Could not find plugin to read objects from file

[复制链接]

该用户从未签到

发表于 2012-8-21 23:10:39 | 显示全部楼层 |阅读模式
已成功编译osg for android 3.1.3,并且加上了官网链接的第三方库。
跑osgandroidGLES1那个例子,打开cow.osg都能正常读取tga格式的纹理图片,但是我参照 例子 osgsimulation 的代码,创建了一个earth,只显示一个灰色的球,无法加载图片,readImageFile报错,信息为:
Could not find plugin to read objects from file "sdcard/xuhy/osgdata/Images/land_shallow_topo_2048.jpg".
图片路径是没有问题的。
创建earth的代码如下:
osg::Node* OsgMainApp::createEarth()
{
        osg::TessellationHints* hints = new osg::TessellationHints;
        hints->setDetailRatio(5.0f);


        osg::ShapeDrawable* sd = new osg::ShapeDrawable(new osg::Sphere(osg::Vec3(0.0,0.0,0.0), osg::WGS_84_RADIUS_POLAR), hints);

        osg::Geode* geode = new osg::Geode;
        geode->addDrawable(sd);

        osg::Image* image = osgDB::readImageFile("sdcard/xuhy/osgdata/Images/land_shallow_topo_2048.jpg");
        osg::notify(osg::ALWAYS)<<"read end"<<std::endl;
        if (image)
        {
            geode->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(image));
        }
        osg::CoordinateSystemNode* csn = new osg::CoordinateSystemNode;
        csn->setEllipsoidModel(new osg::EllipsoidModel());
        csn->addChild(geode);

        return csn;
}
我在android.mk中有相关的引用
LOCAL_LDFLAGS   := -L $(LIBDIR) \
-losgdb_dds \
-losgdb_openflight \
-losgdb_tga \
-losgdb_jpeg \
-losgdb_gdal \
-losgdb_rgb \
-losgdb_osgterrain \
-losgdb_osg \
-losgdb_ive \
……
不知道怎么搞?
另外,求一个osg场景编辑器

该用户从未签到

发表于 2012-8-28 10:33:40 | 显示全部楼层
是否在程序中有插件的调用宏,USE_OSGPLUGIN()
有关静态编译后IO插件的用法可以参考osgstaticviewer例子

该用户从未签到

发表于 2013-1-17 14:59:13 | 显示全部楼层
纹理的问题楼主解决了吗? 用什么方法解决的啊?

该用户从未签到

 楼主| 发表于 2013-3-13 23:14:05 | 显示全部楼层
可以,用USE_OSGPLUGIN(),并且添加对libjgp的引用,不过我后来都改为tga了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表