niXon
Založen: 27. 10. 2007 Příspěvky: 22
|
Zaslal: 28. březen 2008, 18:14:38 Předmět: OGRE + terrain |
|
|
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 |
|
kerekes
Založen: 29. 07. 2007 Příspěvky: 57
|
Zaslal: 28. březen 2008, 23:30:03 Předmět: |
|
|
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. |
|
andris11
Založen: 29. 07. 2008 Příspěvky: 22
|
Zaslal: 22. září 2008, 03:04:34 Předmět: |
|
|
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 |
|