ManualObject 2D

From Ogre Wiki

Jump to: navigation, search

This demonstrates an easy way to use ManualObject for creating 2D overlays. The code works in Eihort (Ogre 1.4) and in Shoggoth (Ogre 1.6).

Note: You should use a material that has lighting and depth write turned off for this to behave correctly. See Displaying 2D Backgrounds for an example how to set up such a material programmatically.

// Create a manual object for 2D
ManualObject* manual = mSceneMgr->createManualObject("manual");

// Use identity view/projection matrices
manual->setUseIdentityProjection(true);
manual->setUseIdentityView(true);

manual->begin("BaseWhiteNoLighting", RenderOperation::OT_LINE_STRIP);

manual->position(-0.2, -0.2, 0.0);
manual->position( 0.2, -0.2, 0.0);
manual->position( 0.2,  0.2, 0.0);
manual->position(-0.2,  0.2, 0.0);

manual->index(0);
manual->index(1);
manual->index(2);
manual->index(3);
manual->index(0);

manual->end();

// Use infinite AAB to always stay visible
AxisAlignedBox aabInf;
aabInf.setInfinite();
manual->setBoundingBox(aabInf);

// Render just before overlays
manual->setRenderQueueGroup(RENDER_QUEUE_OVERLAY - 1);

// Attach to scene
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(manual);

Gives an outlined rectangle in the middle of the screen that is always visible.

See also

Personal tools
administration