.[ ČeskéHry.cz ].
OGRE + terrain

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
niXon



Založen: 27. 10. 2007
Příspěvky: 22

PříspěvekZaslal: 28. březen 2008, 18:14:38    Předmět: OGRE + terrain Odpovědět s citátem

zdravim, uz dlhsie programujem v c++ , sdl a opengl, a nedavno asi pred tyzdnom som si povedal ze by to chcelo skusit nejaky engine, tak som sa kukol na OGRE, fajn, super, zopar tutorialov som si presiel, aka krasa, teren, LoD, super, vysoke FPS, a tu prisiel problem... zacal som sa trochu hrat, chcel som spravit kameru, ktora by chodila PO terene (resp. kusok nad terenom, to je detail), ale neviem, ako vytiahnut z terenu vysku v urcitom bode.. nasiel som par specifikacii, ze nejaky node by to mal podporovat, ale nikde som nenasiel ako ten node dostat, aby som s nim pripadne mohol manipulovat... pre teren pouzivam tento jednoduchy kod:

kód:
mSceneMgr->setWorldGeometry("terrain.cfg");

ako je uvedene v OGRE tutoriale http://www.ogre3d.org/wiki/index.php/Basic_Tutorial_3

staci ak ma na nieco odkazete, date mi nejake voditko, ale uz sa s tym trapim asi dva dni, a ani strejda google mi dokonca moc nepomohol

dakujem za odpoved
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
kerekes



Založen: 29. 07. 2007
Příspěvky: 57

PříspěvekZaslal: 28. březen 2008, 23:30:03    Předmět: Odpovědět s citátem

Zdravim. V OgreSDK je Demo_Terrain sample a prave toto sa tam riesi.
kód:

       static Ray updateRay;
       updateRay.setOrigin(mCamera->getPosition());
        updateRay.setDirection(Vector3::NEGATIVE_UNIT_Y);
        raySceneQuery->setRay(updateRay);
        RaySceneQueryResult& qryResult = raySceneQuery->execute();
        RaySceneQueryResult::iterator i = qryResult.begin();
        if (i != qryResult.end() && i->worldFragment)
        {
            mCamera->setPosition(mCamera->getPosition().x,
                i->worldFragment->singleIntersection.y + 10,
                mCamera->getPosition().z);
        }

EDIT: ked sa nemylim tak toto funguje len pre staticku geometriu (tj aj pre ten teren). Pre ostatne objekty to vrati len zoznam objektov (vysledok podla bounding boxov) a teda je potrebne rucne zistit priesecnik s modelom.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
andris11



Založen: 29. 07. 2008
Příspěvky: 22

PříspěvekZaslal: 22. září 2008, 03:04:34    Předmět: Odpovědět s citátem

Myslim, ze je tam metoda TerrainSceneManager::getHeightAt(float x, float z);
Je to rychlejsi nez vysilani paprsku, protoze je to optimalizace pro pripad kdy je paprsek rovnobezny s osou y
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna