How to make a minimap as a picture in picture.


I’m trying to make a minimap for a car game im developing with Rainbow Brit.

What I want to achieve is to hang a camera above the scene and use the camera output as a texture on a minimap model in aspect2d. I’ve been looking at the manual (GraphicsBuffer, texturebuffers etc) and the forums for a clue as to how to achieve this, but I can’t figure out to do it.

Could someone with a clear understanding of how to do this point me in the right direction please?

I read that it should also be possible to make a texture card from a texturebuffer, which would be nice since then I would not need to worry about making a model to hang the texture on. Some directions here would be appreciated, too.


The BVW resource page has a link to a minimap example which might help. They use a camera, I believe: …

I wanted to use little icons on my minimap (which happens to be a fishfinder) so I used texture cards instead of a camera. I took my PNG images and compiled them into one egg file like this:

egg-texture-cards -p 256,256 -o fishfinder.egg fishfinder.png fishfinder_trout.png

Here is the class I use for updating it. This is just a prototype so it only shows one fish, but it should demonstrate the technique I’m using:

class fishfinder:
    def __init__(self):
        fishfinder_model = loader.loadModel("fishfinder")
        self.screen = fishfinder_model.find("**/fishfinder")   = fishfinder_model.find("**/fishfinder_trout")
    = aspect2d.attachNewNode("fishfinder")
       , 0, .7)
        taskMgr.add(self.update, "fishfinder")
    def update(self, task):
        pos = trout.getPos() -
        pos = Point2(pos.getX(), pos.getY())
        pos /= 50
        if Vec2(pos).length() > 1:
  , 0, pos.getY())
        return Task.cont

Thanks for answering, and for the useful link!

We ended up using makeCamera:

mmCam = base.makeCamera(, sort = 10, displayRegion = (0.5, 1, 0.5, 1))

It looks really cool!
You should all try it :slight_smile:

Have fun,
Rainbow Brite