今天抄0.12版本ogre,在这里是每帧渲染的内容。以后可以再调试下高版本的,在这里设置个断点.
//-----------------------------------------------------------------------
void SceneManager::_renderScene(Camera* camera, Viewport* vp, bool includeOverlays)
{
mCameraInProgress = camera;
mCamChanged = true;
// Set the viewport
setViewport(vp);
// Update the scene
_applySceneAnimations();
_updateSceneGraph(camera);
_updateDynamicLights();
// Auto-track camera if required
camera->_autoTrack();
// Clear the render queue
mRenderQueue.clear();
// Parse the scene and tag visibles
_findVisibleObjects(camera);
// Add overlays, if viewport deems it
if (vp->getOverlaysEnabled())
{
OverlayManager::getSingleton()._queueOverlaysForRendering(camera, &mRenderQueue, vp);
}
// Queue skies
_queueSkiesForRendering(camera);
mDestRenderSystem->_beginGeometryCount();
// Begin the frame
mDestRenderSystem->_beginFrame();
// Set rasterisation mode
mDestRenderSystem->_setRasterisationMode(camera->getDetailLevel());
// Update controllers (after begineFrame since some are frameTime dependent)
ControllerManager::getSingleton().updateAllControllers();
// Render scene content (only entities in this SceneManager, no world geometry)
_renderVisibleObjects();
// End frame
mDestRenderSystem->_endFrame();
// Notify camera or vis faces
camera->_notifyRenderedFaces(mDestRenderSystem->_getFaceCount());
}