游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5869|回复: 4

terrain.cfg 调用怎么不能成功?

[复制链接]

10

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2008-3-17 11:44:00 | 显示全部楼层 |阅读模式
我用OGRE SDK  wizzad创建了OGRe框架程序,加载天空盒,3DSMax等模型都成功了。但是只要加载这个地形就失败。

这个terrain.cfg应该和那些resouce.cfg放在一起吧?

还需要进行别的设置吗??

那位给指点一下?

mSceneMgr->setSkyBox( true, "Examples/CloudyNoonSkyBox" );

mSceneMgr->setWorldGeometry( "terrain.cfg" );

8

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2008-3-20 10:51:00 | 显示全部楼层

Re:terrain.cfg 调用怎么不能成功?

请给出调试信息和log

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2012-9-16 19:14:00 | 显示全部楼层

Re:terrain.cfg 调用怎么不能成功?

我都一样看到OGRE基础教程三就这样出错了,试了一天,上网都没找到问题所在,程序就两条命令真烦人,
#include "OGRE/ExampleApplication.h"
class TutorialApplication : public ExampleApplication
{
protected:
public:
    TutorialApplication()
    {
    }

    ~TutorialApplication()
    {
    }
protected:
        void chooseSceneManager(void)
        {
        mSceneMgr = (OctreeSceneManager*)mRoot->createSceneManager(ST_EXTERIOR_CLOSE);
        }
    void createScene(void)
        {
        mSceneMgr->setWorldGeometry( "terrain.cfg" );
        }
};

#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
    // Create application object
    TutorialApplication app;

    try {
        app.go();
    } catch( Exception& e ) {
#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32
        MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
        fprintf(stderr, "An exception has occured: %s\n",
                e.getFullDescription().c_str());
#endif
    }

    return 0;
}

抛出了这样的错误提示对话框:下面是log的异常,我看了这个异常是创建不到ST_EXTERIOR_CLOSE,不知道例程是怎么仿真的,编译是没错误运行时就有错
18:42:15: OGRE EXCEPTION(2:InvalidParametersException): World geometry is not supported by the generic SceneManager. in SceneManager::setWorldGeometry at ..\..\..\..\OgreMain\src\OgreSceneManager.cpp (line 1578)

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2012-9-17 09:34:00 | 显示全部楼层

Re:terrain.cfg 调用怎么不能成功?

原来是使用了新版1.8的啊,我昨天也遇到创建室外管理器再添加地形时出错,mSceneMgr=root->createSceneManager(ST_EXTERIOR_CLOSE,"MainSceneManager");可能是这里没有实现到,使用了默认的ST_GENERIC类型场景管理器,默认的ST_GENERIC类型场景管理器在调用mSceneMgr->setWorldGeometry( "terrain.cfg" );时会调用OgreSceneManager.cpp里场景管理器里的
void SceneManager::setWorldGeometry(const String& filename)
{
    // This default implementation cannot handle world geometry
    OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS,
        "World geometry is not supported by the generic SceneManager.",
        "SceneManager::setWorldGeometry");
}
并没有调用其派生类的此方法,而基类的方法是抛出异常不实现的,我也是初学Ogre 暂时未深入了解时什么原因,希望有高手解答下吧,幸好我在一个群里听到有人说是新版本的问题,我换了1.7.4的一试果真如此,初学的还是先用旧版的吧,毕竟教程都是旧版的多~

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-10-31 21:44:00 | 显示全部楼层

Re:terrain.cfg 调用怎么不能成功?

OGRE 1.8 把 TerrainSceneManager 删除了, 需要使用 Components/Terrain 组件, 这个是和场景管理器分离的.

见 1.8 的更新说明: http://www.ogre3d.org/tikiwiki/tiki-index.php?page=ByatisNotes
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-27 13:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表