... OnRegisterSceneNode ... if (Imp.IsActive) { // impostor replaces the node if (reRender && now > Imp.Time + MinTime) { if (!Imp.IsQueued) { CacheMisses++; Imp.IsQueued = true; SRenderQueueItem q; q.Node = &Imp; //q.Value = val; RenderQueue.push_back(q); } else { //QueueHits++; } } else { // don't re-render the impostor texture, only draw it CacheHits++; } } if (!Imp.IsActive) // || ( Imp.BufferID == -1 && Imp.IsQueued)) { // original node is visible n->OnRegisterSceneNode(); // cache miss CacheMisses++; } } SceneManager->registerNodeForRendering(this, ESNRP_TRANSPARENT); } ... called by OnAnimate ... // draw the scene cam2->setProjectionMatrix(proj); E_CULLING_TYPE culltype = n->getAutomaticCulling(); n->setAutomaticCulling(EAC_OFF); n->setSceneManager(LocalManager); n->OnRegisterSceneNode(); LocalManager->drawAll(); n->setAutomaticCulling(culltype); n->setSceneManager(oldManager);