游戏开发论坛

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

把一棵树放在场景中的指定的位置,如何做

[复制链接]

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2007-9-4 08:45:00 | 显示全部楼层 |阅读模式
如图,我的树老是在边上,放不到中间,另外树的黑色三角如何去掉
sf_2007948456.jpg

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2007-9-4 09:02:00 | 显示全部楼层

Re:把一棵树放在场景中的指定的位置,如何做

code:
  // Set camera look point
      SceneNode* camNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
      camNode->setPosition( 40, 300, 580 );
      camNode->attachObject(mCamera);
      mCamera->pitch( Degree(-30) );
      mCamera->yaw( Degree(-45) );
Entity *ent = mSceneMgr->createEntity("head", "taohua3.mesh");
        // Set material loaded from Example.material
       //ent->setMaterialName("Examples/EnvMappedRustySteel");
           ent->setMaterialName("Examples/taohua");
        // Add entity to the root scene node
        //SceneNode *node;
                        mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);
                mSceneMgr->getRootSceneNode()->createChildSceneNode()->setPosition( 1240, 1300, 1580 );

      // CEGUI setup
      mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);
      mGUISystem = new CEGUI::System(mGUIRenderer);
      CEGUI::SchemeManager::getSingleton().loadScheme((CEGUI::utf8*)"TaharezLookSkin.scheme");
     CEGUI::MouseCursor::getSingleton().setImage("TaharezLook", "MouseArrow");

51

主题

150

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2007-9-6 15:46:00 | 显示全部楼层

Re: 把一棵树放在场景中的指定的位置,如何做

mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(1240, 1300, 1580))->attachObject(ent);

MaterialPtr mat=MaterialManager::getSingleton().getByName("Examples/taohua");
Pass *pass=mat->getTechnique(0)->getPass(0);
pass->setSceneBlending(SBT_TRANSPARENT_ALPHA);
pass->setDepthCheckEnabled(false);

贴图带alpha通道.

44

主题

305

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-6 19:20:00 | 显示全部楼层

Re:把一棵树放在场景中的指定的位置,如何做

楼主后面发的和你的提问冒似无关啊

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2007-9-6 22:56:00 | 显示全部楼层

Re:把一棵树放在场景中的指定的位置,如何做

谢谢帮助:
但在Camera移动时,地形和树之间的位置会移动, 它们能相对不动吗?
void createScene(void)
    {
   mSceneMgr->setAmbientLight(ColourValue(1.5, 1.5, 1.5));

          mTerrainMgr = new ET::TerrainManager(mSceneMgr);
      mTerrainMgr->setLODErrorMargin(2, mCamera->getViewport()->getActualHeight());
      mTerrainMgr->setUseLODMorphing(true, 0.2, "morphFactor");

                ET::TerrainInfo terrainInfo (129, 129, vector<float>(129*129, 0.5f));
      // set position and size of the terrain
      terrainInfo.setExtents(AxisAlignedBox(0, 0, 0, 1500, 300, 1500));
      // now render it
      mTerrainMgr->createTerrain(terrainInfo);

       mSplatMgr = new ET::SplattingManager("ETSplatting", "ET", 128, 128, 3);
      
      mSplatMgr->setNumTextures(6);

      // create a manual lightmap texture
      TexturePtr lightmapTex = TextureManager::getSingleton().createManual(
        "ETLightmap", "ET", TEX_TYPE_2D, 128, 128, 1, PF_BYTE_RGB);
      Image lightmap;
      ET::createTerrainLightmap(terrainInfo, lightmap, 128, 128, Vector3(1, -1, 1), ColourValue::White,
        ColourValue(0.3, 0.3, 0.3));
      lightmapTex->getBuffer(0, 0)->blitFromMemory(lightmap.getPixelBox(0, 0));

      // load the terrain material and assign it
      MaterialPtr material (MaterialManager::getSingleton().getByName("ETTerrainMaterial"));
      mTerrainMgr->setMaterial(material);


Entity *ent =   mSceneMgr->createEntity("head", "taohua3.mesh");
      
          ent->setMaterialName("Examples/taohua");
      mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(240, 0, 580))->attachObject(ent);
MaterialPtr mat=MaterialManager::getSingleton().getByName("Examples/taohua");
Pass *pass=mat->getTechnique(0)->getPass(0);
pass->setSceneBlending(SBT_TRANSPARENT_ALPHA);
pass->setDepthCheckEnabled(false);


   SceneNode* camNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
      camNode->setPosition( 40, 300, 580 );
      camNode->attachObject(mCamera);
      mCamera->pitch( Degree(-30) );
      mCamera->yaw( Degree(-45) );
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-18 21:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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