ich hab ein ähnlöiches problem und im englischen forum hab ich gelsesn, dass du einen mesh mit 4 ecken erstellst, da dann deine textur drauflegst, und das damit ne meshscenenode erzeiugst, die einfach als parent die akutelle camera hat.
die könnte man dann rotieren. in der theorie, HA HA. ^^
ich hab das problem, das die node dann immer in richtung der camera schauen muss, und ich bekomme das jetzt seit etwa einer woche einfach nicht hin (soll ein mauszeiger werden). ein weiteres problem ist, dass dein gui element nicht einfach "vor" der camera sein darf, sondern wenn du es bewegst, muss das in kreisbahnen passieren, weil es sonst verzerrt aussieht wenn du in richtung der ecken kommst.
wer hilfe weiss mit dieser "lookat" funktion, ich würde mich freuen

das ist was ich bisher benutze, vll hilfts dir.
Code:
void shooterAPP::createAimCross(void)
{
video::ITexture* cursorImage = driver->getTexture("media/AimCross.tga");
scene::IMesh* cursorMesh= smgr->getMesh("media/cursorMesh.3ds");
cursorNode = smgr->addMeshSceneNode(cursorMesh);
cursorNode->setMaterialTexture(0, cursorImage);
cursorNode->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL);//irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL
cursorNode->setScale(core::vector3df(0.0051,0.0051,0.0051));
cursorNode->setMaterialFlag(video::EMF_LIGHTING, false);
};
void shooterAPP::moveCursor(void)
{
core::line3df line = smgr->getSceneCollisionManager()->getRayFromScreenCoordinates(device->getCursorControl()->getPosition(), camera);
core::vector3df rot( line.getVector().setLength(camera->getNearValue());
cursorNode->setPosition(camera->getAbsolutePosition() + rot);
//ROTATION TOWARDS CAM?
};
der mesh ist nichts anderes als n 3ds file mit nem quadrat mit 0 höhe, 8 dreiecken und ner textur.