OGRE-Next
3.0.0
Object-Oriented Graphics Rendering Engine
|
Manages the organisation and rendering of a 'scene' i.e. More...
#include <OgreSceneManager.h>
Classes | |
class | Listener |
Class that allows listening in on the various stages of SceneManager processing, so that custom behaviour can be implemented from outside. More... | |
struct | RenderContext |
Public Types | |
typedef MapIterator< AnimationList > | AnimationIterator |
typedef VectorIterator< CameraList > | CameraIterator |
enum | EnvFeatures { EnvFeatures_DiffuseGiFromReflectionProbe = 1u << 0u } |
enum | IlluminationRenderStage { IRS_NONE , IRS_RENDER_TO_TEXTURE } |
Describes the stage of rendering when performing complex illumination. More... | |
typedef VectorIterator< MovableObjectVec > | MovableObjectIterator |
typedef vector< MovableObject * >::type | MovableObjectVec |
enum | PrefabType { PT_PLANE , PT_CUBE , PT_SPHERE } |
Prefab shapes available without loading a model. More... | |
typedef vector< SceneNode * >::type | SceneNodeList |
enum | SkyMethod { SkyCubemap , SkyEquirectangular } |
Public Member Functions | |
SceneManager (const String &instanceName, size_t numWorkerThreads) | |
Constructor. More... | |
virtual | ~SceneManager () |
Default destructor. More... | |
virtual void | _addAutotrackingSceneNode (SceneNode *source, SceneNode *target, const Vector3 &offset, const Vector3 &localDirection) |
Internal method for notifying the manager that a SceneNode is autotracking. More... | |
void | _addCompositorTexture (IdString name, TextureGpu *tex) |
Used by Compositor, tells of which compositor textures active, so Materials can access them. More... | |
void | _addWireAabb (WireAabb *wireAabb) |
virtual void | _applySceneAnimations () |
Internal method for applying animations to scene nodes. More... | |
virtual bool | _areRenderStateChangesSuppressed () const |
Are render state changes suppressed? More... | |
AxisAlignedBox | _calculateCurrentCastersBox (uint32 viewportVisibilityMask, uint8 firstRq, uint8 lastRq) const |
bool | _collectForwardPlusObjects (const Camera *camera) |
Returns true if collection code was run. More... | |
virtual InternalCubemapProbe * | _createCubemapProbe (SceneMemoryMgrTypes sceneType) |
virtual SceneNode * | _createSceneNode (SceneNode *parent, NodeMemoryManager *nodeMemoryManager) |
virtual TagPoint * | _createTagPoint (SceneNode *parent, NodeMemoryManager *nodeMemoryManager) |
Don't call this function directly. More... | |
virtual void | _cullPhase01 (Camera *cullCamera, Camera *renderCamera, const Camera *lodCamera, uint8 firstRq, uint8 lastRq, bool reuseCullData) |
Performs the frustum culling that will later be needed by _renderPhase02. More... | |
virtual void | _destroyAllCubemapProbes () |
virtual void | _destroyCubemapProbe (InternalCubemapProbe *probe) |
void | _frameEnded () |
Called when the frame has fully ended (ALL passes have been executed to all RTTs) More... | |
ForwardPlusBase * | _getActivePassForwardPlus () |
AutoParamDataSource * | _getAutoParamDataSource () const |
uint32 | _getCombinedVisibilityMask () const |
Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask. More... | |
IlluminationRenderStage | _getCurrentRenderStage () const |
ObjectMemoryManager & | _getEntityMemoryManager (SceneMemoryMgrTypes sceneType) |
Retrieves the main entity memory manager. More... | |
ObjectMemoryManager & | _getLightMemoryManager () |
NodeMemoryManager & | _getNodeMemoryManager (SceneMemoryMgrTypes sceneType) |
NodeMemoryManager & | _getTagPointNodeMemoryManager () |
VisibleObjectsPerThreadArray & | _getTmpVisibleObjectsList () |
void | _handleLodEvents () |
Handle LOD events. More... | |
virtual void | _markGpuParamsDirty (uint16 mask) |
Method to allow you to mark gpu parameters as dirty, causing them to be updated according to the mask that you set when updateGpuProgramParameters is next called. More... | |
void | _notifyEntityMaterialLodChanged (EntityMaterialLodChangedEvent &evt) |
Notify that an entity material LOD change event has occurred. More... | |
void | _notifyEntityMeshLodChanged (EntityMeshLodChangedEvent &evt) |
Notify that an entity mesh LOD change event has occurred. More... | |
void | _notifyMovableObjectLodChanged (MovableObjectLodChangedEvent &evt) |
Notify that a movable object LOD change event has occurred. More... | |
virtual RenderContext * | _pauseRendering () |
Pause rendering of the frame. More... | |
virtual void | _releaseManualHardwareResources () |
Notifies the scene manager that hardware resources were lost. More... | |
virtual void | _removeAutotrackingSceneNode (SceneNode *source) |
void | _removeCompositorTextures (size_t from) |
Removes all compositor textures from 'from' to end. More... | |
void | _removeSkeletonDef (const SkeletonDef *skeletonDef) |
Removes a skeleton definition from its memory manager. More... | |
void | _removeWireAabb (WireAabb *wireAabb) |
virtual void | _renderPhase02 (Camera *camera, const Camera *lodCamera, uint8 firstRq, uint8 lastRq, bool includeOverlays) |
Prompts the class to send its contents to the renderer. More... | |
virtual void | _renderSingleObject (Renderable *pRend, const MovableObject *pMovableObject, bool casterPass, bool dualParaboloid) |
virtual void | _restoreManualHardwareResources () |
Notifies the scene manager that hardware resources should be restored. More... | |
virtual void | _resumeRendering (RenderContext *context) |
Resume rendering of the frame. More... | |
void | _setAtmosphere (AtmosphereComponent *atmosphere) |
Sets an external atmosphere provider. More... | |
void | _setCamerasInProgress (const CamerasInProgress &cameras) |
void | _setCurrentCompositorPass (CompositorPass *pass) |
void | _setCurrentRenderStage (IlluminationRenderStage stage) |
void | _setCurrentShadowNode (CompositorShadowNode *shadowNode) |
virtual void | _setDestinationRenderSystem (RenderSystem *sys) |
Notifies the scene manager of its destination render system. More... | |
void | _setForwardPlusEnabledInPass (bool bEnable) |
For internal use. More... | |
void | _setLightCullingVisibility (Camera *camera, bool collectLights, bool isCubemap) |
See Camera::setLightCullingVisibility. More... | |
void | _setPrePassMode (PrePassMode mode, const TextureGpuVec &prepassTextures, TextureGpu *prepassDepthTexture, TextureGpu *ssrTexture) |
For internal use. More... | |
void | _setRefractions (TextureGpu *depthTextureNoMsaa, TextureGpu *refractionsTexture) |
virtual void | _suppressRenderStateChanges (bool suppress) |
Indicates to the SceneManager whether it should suppress changing the RenderSystem states when rendering objects. More... | |
unsigned long | _updateWorkerThread (ThreadHandle *threadHandle) |
Called from the worker thread, polls to process frustum culling requests when a sync is performed. More... | |
void | _warmUpShaders (Camera *camera, uint32_t visibilityMask, uint8 firstRq, uint8 lastRq) |
virtual void | addListener (Listener *s) |
Add a listener which will get called back on scene manager events. More... | |
void | addLodListener (LodListener *listener) |
Add a level of detail listener. More... | |
virtual void | addRenderObjectListener (RenderObjectListener *newListener) |
Registers a new Render Object Listener which will be notified when rendering an object. More... | |
virtual void | addRenderQueueListener (RenderQueueListener *newListener) |
Registers a new RenderQueueListener which will be notified when render queues are processed. More... | |
void | clearFrameData () |
Clears temporary buffers and other data that needs to live every frame. More... | |
virtual void | clearScene (bool deleteIndestructibleToo, bool reattachCameras=true) |
Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc. More... | |
virtual AxisAlignedBoxSceneQuery * | createAABBQuery (const AxisAlignedBox &box, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates an AxisAlignedBoxSceneQuery for this scene manager. More... | |
virtual v1::Animation * | createAnimation (const String &name, Real length) |
Creates an animation which can be used to animate scene nodes. More... | |
virtual v1::AnimationState * | createAnimationState (const String &animName) |
Create an AnimationState object for managing application of animations. More... | |
virtual v1::BillboardChain * | createBillboardChain () |
Create a BillboardChain, an object which you can use to render a linked chain of billboards. More... | |
virtual v1::BillboardSet * | createBillboardSet (unsigned int poolSize=20, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Creates a new BillboardSet for use with this scene manager. More... | |
virtual Camera * | createCamera (const String &name, bool notShadowCaster=true, bool forCubemapping=false) |
Creates a camera to be managed by this scene manager. More... | |
virtual Decal * | createDecal (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
virtual v1::Entity * | createEntity (const String &meshName, const String &groupName=ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Entity (instance of a discrete mesh). More... | |
virtual v1::Entity * | createEntity (const v1::MeshPtr &pMesh, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Entity (instance of a discrete mesh). More... | |
virtual v1::Entity * | createEntity (PrefabType ptype, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Entity (instance of a discrete mesh) from a range of prefab shapes. More... | |
virtual IntersectionSceneQuery * | createIntersectionQuery (uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates an IntersectionSceneQuery for this scene manager. More... | |
virtual Item * | createItem (const MeshPtr &pMesh, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Item (instance of a discrete mesh). More... | |
virtual Item * | createItem (const String &meshName, const String &groupName=ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC, bool bUseMeshMat=true) |
Create an Item (instance of a discrete mesh). More... | |
virtual Light * | createLight () |
Creates a light for use in the scene. More... | |
virtual ManualObject * | createManualObject (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface. More... | |
virtual MovableObject * | createMovableObject (const String &typeName, ObjectMemoryManager *objectMemMgr, const NameValuePairList *params=0) |
Create a movable object of the type specified without a name. More... | |
virtual ParticleSystem * | createParticleSystem (const String &templateName) |
Creates a particle system based on a template. More... | |
virtual ParticleSystem * | createParticleSystem (size_t quota=500, const String &resourceGroup=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Create a blank particle system. More... | |
virtual PlaneBoundedVolumeListSceneQuery * | createPlaneBoundedVolumeQuery (const PlaneBoundedVolumeList &volumes, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates a PlaneBoundedVolumeListSceneQuery for this scene manager. More... | |
virtual RaySceneQuery * | createRayQuery (const Ray &ray, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates a RaySceneQuery for this scene manager. More... | |
virtual Rectangle2D * | createRectangle2D (SceneMemoryMgrTypes sceneType=SCENE_STATIC) |
Creates a 2D rectangle that can be displayed for screen space effects or showing a basic GUI. More... | |
virtual v1::RibbonTrail * | createRibbonTrail () |
Create a RibbonTrail, an object which you can use to render a linked chain of billboards which follows one or more nodes. More... | |
virtual SceneNode * | createSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Creates an instance of a SceneNode. More... | |
SkeletonInstance * | createSkeletonInstance (const SkeletonDef *skeletonDef) |
Creates an instance of a skeleton based on the given definition. More... | |
virtual SphereSceneQuery * | createSphereQuery (const Sphere &sphere, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates a SphereSceneQuery for this scene manager. More... | |
virtual TagPoint * | createTagPoint () |
Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone. More... | |
virtual WireAabb * | createWireAabb () |
Create an WireAabb. More... | |
void | cullLights (Camera *camera, Light::LightTypes startType, Light::LightTypes endType, LightArray &outLights) |
void | defragmentMemoryPools () |
Triggers on demand a defragmentation of the pools, so that all slots become contiguous in memory. More... | |
virtual void | destroyAllAnimations () |
Removes all animations created using this SceneManager. More... | |
virtual void | destroyAllAnimationStates () |
Removes all animation states created using this SceneManager. More... | |
virtual void | destroyAllBillboardChains () |
Removes & destroys all BillboardChains from the SceneManager. More... | |
virtual void | destroyAllBillboardSets () |
Removes & destroys all BillboardSets. More... | |
virtual void | destroyAllCameras () |
Removes (and destroys) all cameras from the scene. More... | |
virtual void | destroyAllDecals () |
virtual void | destroyAllEntities () |
Removes & destroys all Entities. More... | |
virtual void | destroyAllItems () |
Removes & destroys all Items. More... | |
virtual void | destroyAllLights () |
Removes and destroys all lights in the scene. More... | |
virtual void | destroyAllManualObjects () |
Removes & destroys all ManualObjects from the SceneManager. More... | |
virtual void | destroyAllMovableObjects () |
Destroy all MovableObjects. More... | |
virtual void | destroyAllMovableObjectsByType (const String &typeName) |
Destroy all MovableObjects of a given type. More... | |
virtual void | destroyAllParticleSystems () |
Removes & destroys all ParticleSystems from the SceneManager. More... | |
virtual void | destroyAllRectangle2D () |
Removes & destroys all Rectangle2D. More... | |
virtual void | destroyAllRibbonTrails () |
Removes & destroys all RibbonTrails from the SceneManager. More... | |
virtual void | destroyAllWireAabbs () |
Removes & destroys all WireAabbs. More... | |
virtual void | destroyAnimation (const String &name) |
Destroys an Animation. More... | |
virtual void | destroyAnimationState (const String &name) |
Destroys an AnimationState. More... | |
virtual void | destroyBillboardChain (v1::BillboardChain *obj) |
Removes & destroys a BillboardChain from the SceneManager. More... | |
virtual void | destroyBillboardSet (v1::BillboardSet *set) |
Removes & destroys an BillboardSet from the SceneManager. More... | |
virtual void | destroyCamera (Camera *cam) |
Removes a camera from the scene. More... | |
virtual void | destroyDecal (Decal *decal) |
virtual void | destroyEntity (v1::Entity *ent) |
Removes & destroys an Entity from the SceneManager. More... | |
virtual void | destroyItem (Item *item) |
Removes & destroys an Item from the SceneManager. More... | |
virtual void | destroyLight (Light *light) |
Removes the light from the scene and destroys it based on a pointer. More... | |
virtual void | destroyManualObject (ManualObject *obj) |
Removes & destroys a ManualObject from the SceneManager. More... | |
virtual void | destroyMovableObject (MovableObject *m) |
Destroys a MovableObject. More... | |
virtual void | destroyMovableObject (MovableObject *m, const String &typeName) |
Destroys a MovableObject with the name specified, of the type specified. More... | |
virtual void | destroyParticleSystem (ParticleSystem *obj) |
Removes & destroys a ParticleSystem from the SceneManager. More... | |
virtual void | destroyQuery (SceneQuery *query) |
Destroys a scene query of any type. More... | |
virtual void | destroyRectangle2D (Rectangle2D *rect) |
Removes & destroys an Entity from the SceneManager. More... | |
virtual void | destroyRibbonTrail (v1::RibbonTrail *obj) |
Removes & destroys a RibbonTrail from the SceneManager. More... | |
virtual void | destroySceneNode (SceneNode *sn) |
Destroys a SceneNode. More... | |
void | destroySkeletonInstance (SkeletonInstance *skeletonInstance) |
Destroys an instance of a skeleton created with createSkeletonInstance(). More... | |
virtual void | destroyWireAabb (WireAabb *wireAabb) |
Removes & destroys an WireAabb from the SceneManager. More... | |
void | executeUserScalableTask (UniformScalableTask *task, bool bBlock) |
Processes a user-defined UniformScalableTask in the worker threads spawned by SceneManager. More... | |
virtual void | extractAllMovableObjectsByType (const String &typeName) |
Extract all injected MovableObjects of a given type. More... | |
virtual void | extractMovableObject (MovableObject *m) |
Extract a previously injected MovableObject. More... | |
virtual Camera * | findCamera (IdString name) const |
Finds the camera with the given name. More... | |
virtual Camera * | findCameraNoThrow (IdString name) const |
Finds the camera with the given name. More... | |
virtual MovableObjectVec | findMovableObjects (const String &type, const String &name) |
Finds all the movable objects with the type and name passed as parameters. More... | |
virtual_l1 SceneNodeList | findSceneNodes (const String &name) const |
Finds all the scene nodes with the name passed as parameter. More... | |
const Vector3 & | getAmbientLightHemisphereDir () const |
const ColourValue & | getAmbientLightLowerHemisphere () const |
const ColourValue & | getAmbientLightUpperHemisphere () const |
Returns the ambient light level to be used for the scene. More... | |
virtual v1::Animation * | getAnimation (const String &name) const |
Looks up an Animation object previously created with createAnimation. More... | |
AnimationIterator | getAnimationIterator () |
Returns a specialised MapIterator over all animations in the scene. More... | |
const AnimationList & | getAnimations () const |
Returns a const version of the animation list. More... | |
virtual v1::AnimationState * | getAnimationState (const String &animName) const |
Retrieves animation state as previously created using createAnimationState. More... | |
v1::AnimationStateIterator | getAnimationStateIterator () |
Returns a specialised MapIterator over all animation states in the scene. More... | |
AtmosphereComponent * | getAtmosphere () |
Gets currently set atmosphere. It's never nullptr. More... | |
AtmosphereComponent * | getAtmosphereRaw () |
Gets currently set atmosphere. Can be nullptr if none is set. More... | |
CameraIterator | getCameraIterator () |
Returns a specialised MapIterator over all cameras in the scene. More... | |
const CameraList & | getCameras () const |
Returns a const version of the camera list. More... | |
CamerasInProgress | getCamerasInProgress () const |
Gets the current camera being rendered (advanced use only, only valid during viewport update. More... | |
const CompositorTextureVec & | getCompositorTextures () const |
const AxisAlignedBox & | getCurrentCastersBox () const |
const CompositorPass * | getCurrentCompositorPass () const |
Note: May be null. More... | |
TextureGpu * | getCurrentPassDepthTextureNoMsaa () const |
TextureGpu * | getCurrentPrePassDepthTexture () const |
PrePassMode | getCurrentPrePassMode () const |
const TextureGpuVec & | getCurrentPrePassTextures () const |
TextureGpu * | getCurrentRefractionsTexture () const |
const CompositorShadowNode * | getCurrentShadowNode () const |
TextureGpu * | getCurrentSsrTexture () const |
Viewport * | getCurrentViewport0 () const |
Gets the current viewport being rendered (advanced use only, only valid during viewport update. More... | |
TextureGpu * | getDecalsDiffuse () const |
TextureGpu * | getDecalsEmissive () const |
TextureGpu * | getDecalsNormals () const |
RenderSystem * | getDestinationRenderSystem () |
Get the rendersystem subclass to which the output of this Scene Manager gets sent. More... | |
virtual bool | getDisplaySceneNodes () const |
Returns true if all scene nodes axis are to be displayed. More... | |
SceneNode * | getDummySceneNode () const |
Unlike mNodeMemoryManager->_getDummyNode(), this dummy node is fully allocated, which makes it possible to actually attach objects to this dummy, while we guarantee the dummy won't change its transform. More... | |
uint32 | getEnvFeatures () const |
virtual bool | getFindVisibleObjects () |
Gets whether the SceneManager should search for visible objects, or whether they are being manually handled. More... | |
virtual bool | getFlipCullingOnNegativeScale () const |
Get whether to automatically flip the culling mode on objects whenever they are negatively scaled. More... | |
ForwardPlusBase * | getForwardPlus () |
const LightListInfo & | getGlobalLightList () const |
virtual const PlaneList & | getLightClippingPlanes (const Light *l) |
Retrieve a set of clipping planes for a given light. More... | |
virtual_l2 uint32 | getLightMask () const |
Gets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light. More... | |
virtual const RealRect & | getLightScissorRect (const Light *l, const Camera *cam) |
Retrieve a scissor rectangle for a given light and camera. More... | |
void | getMinMaxDepthRange (const Frustum *shadowMapCamera, Real &outMin, Real &outMax) const |
virtual MovableObjectIterator | getMovableObjectIterator (const String &typeName) |
Get an iterator over all MovableObect instances of a given type. More... | |
const String & | getName () const |
Return the instance name of this SceneManager. More... | |
size_t | getNumCompositorTextures () const |
Gets the number of currently active compositor textures. More... | |
size_t | getNumWorkerThreads () const |
virtual bool | getOption (const String &strKey, void *pDestValue) |
Method for getting the value of an implementation-specific Scene Manager option. More... | |
virtual bool | getOptionKeys (StringVector &refKeys) |
Method for getting all the implementation-specific options of the scene manager. More... | |
virtual bool | getOptionValues (const String &strKey, StringVector &refValueList) |
Method for getting all possible values for a specific option. More... | |
RadialDensityMask * | getRadialDensityMask () const |
Vector3 | getRelativeOrigin () const |
Returns the current relative origin. (Only when non-permanent) More... | |
RenderQueue * | getRenderQueue () const |
Returns the RenderQueue. More... | |
SceneNode * | getRootSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Gets the SceneNode at the root of the scene hierarchy. More... | |
virtual_l1 SceneNode * | getSceneNode (IdType id) |
Retrieves a SceneNode based on it's ID from the scene graph. More... | |
virtual_l1 const SceneNode * | getSceneNode (IdType id) const |
virtual const ColourValue & | getShadowColour () const |
Get the colour used to modulate areas in shadow. More... | |
virtual Real | getShadowDirectionalLightExtrusionDistance () const |
Gets the distance a shadow volume is extruded for a directional light. More... | |
virtual Real | getShadowDirLightTextureOffset () const |
Gets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space. More... | |
virtual Real | getShadowFarDistance () const |
Gets the default maximum distance away from the camera that shadows will be visible. More... | |
virtual Real | getShadowFarDistanceSquared () const |
virtual bool | getShowBoundingBoxes () const |
Returns if all bounding boxes of scene nodes are to be displayed. More... | |
Rectangle2D * | getSky () |
MaterialPtr | getSkyMaterial () |
SkyMethod | getSkyMethod () const |
const float * | getSphericalHarmonics () const |
virtual ViewPoint | getSuggestedViewpoint (bool random=false) |
Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed. More... | |
virtual const String & | getTypeName () const =0 |
Retrieve the type name of this scene manager. More... | |
virtual_l2 uint32 | getVisibilityMask () const |
Gets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible. More... | |
virtual bool | hasAnimation (const String &name) const |
Returns whether an animation with the given name exists. More... | |
virtual bool | hasAnimationState (const String &name) const |
Returns whether an animation state with the given name exists. More... | |
virtual bool | hasMovableObject (MovableObject *m) |
Returns if this SceneManager contains the specified MovableObject. More... | |
virtual bool | hasOption (const String &strKey) const |
Method for verifying whether the scene manager has an implementation-specific option. More... | |
virtual void | injectMovableObject (MovableObject *m) |
Inject a MovableObject instance created externally. More... | |
bool | isDecalsDiffuseEmissiveMerged () const |
bool | isSkyEnabled () const |
bool | isUsingInstancedStereo () const |
void | notifyStaticAabbDirty (MovableObject *movableObject) |
Notifies that the given MovableObject is dirty (i.e. More... | |
void | notifyStaticDirty (Node *node) |
Notifies that the given Node is dirty (i.e. More... | |
OGRE_DEPRECATED_VER (3) virtual const ColourValue &getFogColour() const | |
Returns the fog colour for the scene. More... | |
OGRE_DEPRECATED_VER (3) virtual FogMode getFogMode() const | |
Returns the fog mode for the scene. More... | |
OGRE_DEPRECATED_VER (3) virtual Real getFogDensity() const | |
Returns the fog density for the scene. More... | |
OGRE_DEPRECATED_VER (3) virtual Real getFogEnd() const | |
Returns the fog end distance for the scene. More... | |
OGRE_DEPRECATED_VER (3) virtual Real getFogStart() const | |
Returns the fog start distance for the scene. More... | |
OGRE_MUTEX (sceneGraphMutex) | |
Mutex to protect the scene graph from simultaneous access from multiple threads. More... | |
virtual void | registerSceneNodeListener (SceneNode *sceneNode) |
Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms. More... | |
virtual void | removeListener (Listener *s) |
Remove a listener. More... | |
void | removeLodListener (LodListener *listener) |
Remove a level of detail listener. More... | |
virtual void | removeRenderObjectListener (RenderObjectListener *delListener) |
Removes a listener previously added with addRenderObjectListener. More... | |
virtual void | removeRenderQueueListener (RenderQueueListener *delListener) |
Removes a listener previously added with addRenderQueueListener. More... | |
void | reserveSlotsInGlobalLightList (size_t addSlotsToCapacity=0) |
Allocates required memory in mGlobalLightList. More... | |
void | setAmbientLight (const ColourValue &upperHemisphere, const ColourValue &lowerHemisphere, const Vector3 &hemisphereDir, Real envmapScale=1.0f, uint32 envFeatures=0xffffffff) |
Sets the ambient light level to be used for the scene. More... | |
void | setBuildLegacyLightList (bool bEnable) |
Enables or disables the legace 1.9 way of building light lists which can be used by HlmsLowLevel materials. More... | |
void | setDecalsDiffuse (TextureGpu *tex) |
Sets the decal texture for diffuse. More... | |
void | setDecalsEmissive (TextureGpu *tex) |
See SceneManager::setDecalsDiffuse. More... | |
void | setDecalsNormals (TextureGpu *tex) |
Sets the decal texture normal maps. More... | |
virtual void | setDisplaySceneNodes (bool display) |
Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene. More... | |
virtual void | setFindVisibleObjects (bool find) |
Sets whether the SceneManager should search for visible objects, or whether they are being manually handled. More... | |
virtual void | setFlipCullingOnNegativeScale (bool n) |
Set whether to automatically flip the culling mode on objects whenever they are negatively scaled. More... | |
void | setFog (FogMode mode=FOG_NONE, const ColourValue &colour=ColourValue::White, Real expDensity=Real(0.001), Real linearStart=Real(0.0), Real linearEnd=Real(1.0)) |
Sets the fogging mode applied to the scene. More... | |
void | setForward3D (bool bEnable, uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, float minDistance, float maxDistance) |
Enables or disables the Forward3D implementation for using many non-shadowed lights in the scene. More... | |
void | setForwardClustered (bool bEnable, uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, uint32 decalsPerCell, uint32 cubemapProbesPerCel, float minDistance, float maxDistance) |
virtual_l2 void | setLightMask (uint32 mask) |
Sets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light. More... | |
virtual bool | setOption (const String &strKey, const void *pValue) |
Method for setting a specific option of the Scene Manager. More... | |
void | setRadialDensityMask (bool bEnabled, const float radius[3]) |
Draws a Radial Density Mask to lower the quality around the edges in VR. More... | |
virtual void | setRelativeOrigin (const Vector3 &relativeOrigin, bool bPermanent) |
Set whether to use relative offset co-ordinates when rendering, ie offset to subtract to the camera, lights & objects. More... | |
virtual void | setShadowColour (const ColourValue &colour) |
Set the colour used to modulate areas in shadow. More... | |
virtual void | setShadowDirectionalLightExtrusionDistance (Real dist) |
Sets the distance a shadow volume is extruded for a directional light. More... | |
virtual void | setShadowDirLightTextureOffset (Real offset) |
Sets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space. More... | |
virtual void | setShadowFarDistance (Real distance) |
Sets the default maximum distance away from the camera that shadows will be visible. More... | |
virtual void | setShadowTextureFadeEnd (Real fadeEnd) |
Sets the proportional distance at which texture shadows finish to fading out. More... | |
virtual void | setShadowTextureFadeStart (Real fadeStart) |
Sets the proportional distance at which texture shadows begin to fade out. More... | |
void | setSky (bool bEnabled, SkyMethod skyMethod, const String &texName, const String &resourceGroup) |
void | setSky (bool bEnabled, SkyMethod skyMethod, TextureGpu *texture) |
Sets a sky, to use a particular material based on SkyMethod. More... | |
void | setSphericalHarmonics (Vector3 ambientSphericalHarmonics[9]) |
virtual_l2 void | setVisibilityMask (uint32 vmask) |
Sets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible. More... | |
virtual void | showBoundingBoxes (bool bShow) |
Allows all bounding boxes of scene nodes to be displayed. More... | |
void | shrinkToFitMemoryPools () |
Defragments memory, then reallocates a smaller pool that tightly fits the current number of objects. More... | |
virtual void | unregisterSceneNodeListener (SceneNode *sceneNode) |
Unregisters a registered node for listening. More... | |
void | updateAllAnimations () |
Updates all skeletal animations in the scene. More... | |
void | updateAllBounds (const ObjectMemoryManagerVec &objectMemManager) |
Updates the world aabbs from all entities in the scene. More... | |
void | updateAllLods (const Camera *lodCamera, Real lodBias, uint8 firstRq, uint8 lastRq) |
Updates the Lod values of all objects relative to the given camera. More... | |
void | updateAllTagPoints () |
Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints. More... | |
void | updateAllTransforms () |
Updates the derived transforms of all nodes in the scene. More... | |
void | updateSceneGraph () |
Updates the scene: Perform high level culling, Node transforms and entity animations. More... | |
void | waitForPendingUserScalableTask () |
Blocks until the the task from processUserScalableTask finishes. More... | |
Public Member Functions inherited from Ogre::IdObject | |
IdObject (IdType id) | |
We don't call generateNewId() here, to prevent objects in the stack (i.e. More... | |
IdType | getId () const |
Get the unique id of this object. More... | |
bool | operator() (const IdObject &left, const IdObject &right) |
bool | operator() (const IdObject *left, const IdObject *right) |
Static Public Attributes | |
static uint32 | QUERY_ENTITY_DEFAULT_MASK |
Default query mask for entities. More... | |
static uint32 | QUERY_FRUSTUM_DEFAULT_MASK |
Default query mask for frusta and cameras. More... | |
static uint32 | QUERY_FX_DEFAULT_MASK |
Default query mask for effects like billboardsets / particle systems. More... | |
static uint32 | QUERY_LIGHT_DEFAULT_MASK |
Default query mask for lights. More... | |
static uint32 | QUERY_STATICGEOMETRY_DEFAULT_MASK |
Default query mask for StaticGeometry. More... | |
Manages the organisation and rendering of a 'scene' i.e.
a collection of objects and potentially world geometry.
typedef MapIterator<AnimationList> Ogre::SceneManager::AnimationIterator |
typedef VectorIterator<CameraList> Ogre::SceneManager::CameraIterator |
typedef vector<MovableObject *>::type Ogre::SceneManager::MovableObjectVec |
typedef vector<SceneNode *>::type Ogre::SceneManager::SceneNodeList |
Ogre::SceneManager::SceneManager | ( | const String & | instanceName, |
size_t | numWorkerThreads | ||
) |
Constructor.
|
virtual |
Default destructor.
|
virtual |
Internal method for notifying the manager that a SceneNode is autotracking.
void Ogre::SceneManager::_addCompositorTexture | ( | IdString | name, |
TextureGpu * | tex | ||
) |
Used by Compositor, tells of which compositor textures active, so Materials can access them.
If MRT, there could be more than one
name | Name of the texture(s) as referenced in the compositor (may not be the texture's real name in case it's just one) |
tex | The actual texture(s) associated with that name |
void Ogre::SceneManager::_addWireAabb | ( | WireAabb * | wireAabb | ) |
|
virtual |
Internal method for applying animations to scene nodes.
|
inlinevirtual |
Are render state changes suppressed?
AxisAlignedBox Ogre::SceneManager::_calculateCurrentCastersBox | ( | uint32 | viewportVisibilityMask, |
uint8 | firstRq, | ||
uint8 | lastRq | ||
) | const |
bool Ogre::SceneManager::_collectForwardPlusObjects | ( | const Camera * | camera | ) |
Returns true if collection code was run.
When false, you cannot trust the contents of _getTmpVisibleObjectsList to be empty
|
virtual |
|
virtual |
|
virtual |
Don't call this function directly.
|
virtual |
Performs the frustum culling that will later be needed by _renderPhase02.
camera | Pointer to a camera from whose viewpoint the scene is to be rendered. |
vp | The target viewport |
firstRq | first render queue ID to render (gets clamped if too big) |
lastRq | last render queue ID to render (gets clamped if too big) |
|
virtual |
|
virtual |
void Ogre::SceneManager::_frameEnded | ( | ) |
Called when the frame has fully ended (ALL passes have been executed to all RTTs)
|
inline |
|
inline |
uint32 Ogre::SceneManager::_getCombinedVisibilityMask | ( | ) | const |
Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask.
|
inline |
|
inline |
Retrieves the main entity memory manager.
|
inline |
|
inline |
|
inline |
|
inline |
void Ogre::SceneManager::_handleLodEvents | ( | ) |
Handle LOD events.
|
virtual |
Method to allow you to mark gpu parameters as dirty, causing them to be updated according to the mask that you set when updateGpuProgramParameters is next called.
Only really useful if you're controlling parameter state in inner rendering loop callbacks.
mask | Some combination of GpuParamVariability which is bitwise OR'ed with the current dirty state. |
void Ogre::SceneManager::_notifyEntityMaterialLodChanged | ( | EntityMaterialLodChangedEvent & | evt | ) |
Notify that an entity material LOD change event has occurred.
void Ogre::SceneManager::_notifyEntityMeshLodChanged | ( | EntityMeshLodChangedEvent & | evt | ) |
Notify that an entity mesh LOD change event has occurred.
void Ogre::SceneManager::_notifyMovableObjectLodChanged | ( | MovableObjectLodChangedEvent & | evt | ) |
Notify that a movable object LOD change event has occurred.
|
virtual |
Pause rendering of the frame.
This has to be called when inside a renderScene call (Usually using a listener of some sort)
|
virtual |
Notifies the scene manager that hardware resources were lost.
|
virtual |
void Ogre::SceneManager::_removeCompositorTextures | ( | size_t | from | ) |
Removes all compositor textures from 'from' to end.
void Ogre::SceneManager::_removeSkeletonDef | ( | const SkeletonDef * | skeletonDef | ) |
Removes a skeleton definition from its memory manager.
void Ogre::SceneManager::_removeWireAabb | ( | WireAabb * | wireAabb | ) |
|
virtual |
Prompts the class to send its contents to the renderer.
camera | Pointer to a camera from whose viewpoint the scene is to be rendered. |
lodCamera | Pointer to a camera from whose LOD calculations will be based upon. Can't be null; can be equal to camera. |
vp | The target viewport |
firstRq | first render queue ID to render (gets clamped if too big) |
lastRq | last render queue ID to render (gets clamped if too big) |
includeOverlays | Whether or not overlay objects should be rendered |
|
virtual |
|
virtual |
Notifies the scene manager that hardware resources should be restored.
|
virtual |
Resume rendering of the frame.
This has to be called after a _pauseRendering call
context | The rendring context, as returned by the _pauseRendering call |
void Ogre::SceneManager::_setAtmosphere | ( | AtmosphereComponent * | atmosphere | ) |
Sets an external atmosphere provider.
Multiple SceneManagers can have the same atmosphere
atmosphere | The atmosphere to set. Can be nullptr to unset (a default dummy ptr will be set instead). |
|
inline |
void Ogre::SceneManager::_setCurrentCompositorPass | ( | CompositorPass * | pass | ) |
|
inline |
void Ogre::SceneManager::_setCurrentShadowNode | ( | CompositorShadowNode * | shadowNode | ) |
|
virtual |
Notifies the scene manager of its destination render system.
sys | Pointer to the RenderSystem subclass to be used as a render target. |
void Ogre::SceneManager::_setForwardPlusEnabledInPass | ( | bool | bEnable | ) |
For internal use.
void Ogre::SceneManager::_setLightCullingVisibility | ( | Camera * | camera, |
bool | collectLights, | ||
bool | isCubemap | ||
) |
void Ogre::SceneManager::_setPrePassMode | ( | PrePassMode | mode, |
const TextureGpuVec & | prepassTextures, | ||
TextureGpu * | prepassDepthTexture, | ||
TextureGpu * | ssrTexture | ||
) |
For internal use.
void Ogre::SceneManager::_setRefractions | ( | TextureGpu * | depthTextureNoMsaa, |
TextureGpu * | refractionsTexture | ||
) |
|
virtual |
Indicates to the SceneManager whether it should suppress changing the RenderSystem states when rendering objects.
suppress | If true, no RenderSystem state changes will be issued until this method is called again with a parameter of false. |
unsigned long Ogre::SceneManager::_updateWorkerThread | ( | ThreadHandle * | threadHandle | ) |
Called from the worker thread, polls to process frustum culling requests when a sync is performed.
void Ogre::SceneManager::_warmUpShaders | ( | Camera * | camera, |
uint32_t | visibilityMask, | ||
uint8 | firstRq, | ||
uint8 | lastRq | ||
) |
|
virtual |
Add a listener which will get called back on scene manager events.
void Ogre::SceneManager::addLodListener | ( | LodListener * | listener | ) |
Add a level of detail listener.
|
virtual |
Registers a new Render Object Listener which will be notified when rendering an object.
|
virtual |
Registers a new RenderQueueListener which will be notified when render queues are processed.
void Ogre::SceneManager::clearFrameData | ( | ) |
Clears temporary buffers and other data that needs to live every frame.
|
virtual |
Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc.
Cameras are not deleted at this stage since they are still referenced by viewports, which are not destroyed during this process.
deleteIndestructibleToo | If a node is marked as indestructible, it won't be deleted unless deleteIndestructibleToo is marked as true. Note that some Ogre compoenents mark some of their objects as internal to prevent them from becoming dangling pointers. |
If you don't know what to put here, set it to false.
reattachCameras | When true, all Cameras that have no parent node after clearing will be reattached to the root node. |
|
virtual |
Creates an AxisAlignedBoxSceneQuery for this scene manager.
box | Details of the box which describes the region for this query. |
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
|
virtual |
Creates an animation which can be used to animate scene nodes.
name | The name of the animation, must be unique within this SceneManager. |
length | The total length of the animation. |
|
virtual |
Create an AnimationState object for managing application of animations.
animName | The name of an animation created already with createAnimation. |
|
virtual |
Create a BillboardChain, an object which you can use to render a linked chain of billboards.
|
virtual |
Creates a new BillboardSet for use with this scene manager.
poolSize | The initial size of the pool of billboards (see BillboardSet for more information) |
|
virtual |
Creates a camera to be managed by this scene manager.
name | Name to give the new camera. Must be unique. |
notShadowCaster | True if this camera should be considered when creating the global light list of culled lights against all cameras. For example, cameras used for shadow mapping shouldn't be taken into account (set to false) |
forCubemapping | True this camera will be used at least once in one of its passes as a cubemap (thus having to change the orientation but not position mid-rendering) |
|
virtual |
|
virtual |
Create an Entity (instance of a discrete mesh).
meshName | The name of the Mesh it is to be based on (e.g. 'knot.oof'). The mesh will be loaded if it is not already. |
|
virtual |
Create an Entity (instance of a discrete mesh).
pMesh | The pointer to the Mesh it is to be based on. |
|
virtual |
Create an Entity (instance of a discrete mesh) from a range of prefab shapes.
ptype | The prefab type. |
|
virtual |
Creates an IntersectionSceneQuery for this scene manager.
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
|
virtual |
|
virtual |
|
virtual |
Creates a light for use in the scene.
|
virtual |
Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface.
|
virtual |
Create a movable object of the type specified without a name.
typeName | The type of object to create |
objectMemMgr | Memory Manager that will hold ObjectData data. |
params | Optional name/value pair list to give extra parameters to the created object. |
|
virtual |
Creates a particle system based on a template.
templateName | The name of the template to base the new instance on. |
|
virtual |
Create a blank particle system.
quota | The maximum number of particles to allow in this system. |
resourceGroup | The resource group which will be used to load dependent resources |
|
virtual |
Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.
volumes | Details of the volumes which describe the region for this query. |
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
|
virtual |
Creates a RaySceneQuery for this scene manager.
ray | Details of the ray which describes the region for this query. |
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
|
virtual |
Creates a 2D rectangle that can be displayed for screen space effects or showing a basic GUI.
Notice that due to engine's requirements, you need to attach this object to a scene node in order to be rendered correctly.
sceneType | Whether you will be moving the Rectangle2D's scene node around. Unless you're planning to use this Rectangle2D for 3D purposes, it is highly recomended that you use SCENE_STATIC (you can safely use SCENE_STATIC and change Rectangle2D::setCorners and Rectangle2D::setNormal every frame). |
|
virtual |
Create a RibbonTrail, an object which you can use to render a linked chain of billboards which follows one or more nodes.
|
virtual |
Creates an instance of a SceneNode.
sceneType | Dynamic if this node is to be updated frequently. Static if you don't plan to be updating this node in a long time (performance optimization). |
SkeletonInstance* Ogre::SceneManager::createSkeletonInstance | ( | const SkeletonDef * | skeletonDef | ) |
Creates an instance of a skeleton based on the given definition.
|
virtual |
Creates a SphereSceneQuery for this scene manager.
sphere | Details of the sphere which describes the region for this query. |
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
|
virtual |
Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone.
void Ogre::SceneManager::cullLights | ( | Camera * | camera, |
Light::LightTypes | startType, | ||
Light::LightTypes | endType, | ||
LightArray & | outLights | ||
) |
void Ogre::SceneManager::defragmentMemoryPools | ( | ) |
Triggers on demand a defragmentation of the pools, so that all slots become contiguous in memory.
ArrayMemoryManager::destroySlot already does this when the number of fragmented slots reaches mCleanupThreshold
|
virtual |
Removes all animations created using this SceneManager.
|
virtual |
Removes all animation states created using this SceneManager.
|
virtual |
Removes & destroys all BillboardChains from the SceneManager.
|
virtual |
Removes & destroys all BillboardSets.
|
virtual |
Removes (and destroys) all cameras from the scene.
|
virtual |
|
virtual |
Removes & destroys all Entities.
|
virtual |
Removes & destroys all Items.
|
virtual |
Removes and destroys all lights in the scene.
|
virtual |
Removes & destroys all ManualObjects from the SceneManager.
|
virtual |
Destroy all MovableObjects.
|
virtual |
Destroy all MovableObjects of a given type.
|
virtual |
Removes & destroys all ParticleSystems from the SceneManager.
|
virtual |
Removes & destroys all Rectangle2D.
|
virtual |
Removes & destroys all RibbonTrails from the SceneManager.
|
virtual |
Removes & destroys all WireAabbs.
|
virtual |
Destroys an Animation.
|
virtual |
Destroys an AnimationState.
|
virtual |
Removes & destroys a BillboardChain from the SceneManager.
|
virtual |
Removes & destroys an BillboardSet from the SceneManager.
|
virtual |
Removes a camera from the scene.
cam | Pointer to the camera to remove |
|
virtual |
|
virtual |
Removes & destroys an Entity from the SceneManager.
|
virtual |
Removes & destroys an Item from the SceneManager.
|
virtual |
Removes the light from the scene and destroys it based on a pointer.
|
virtual |
Removes & destroys a ManualObject from the SceneManager.
|
virtual |
Destroys a MovableObject.
|
virtual |
Destroys a MovableObject with the name specified, of the type specified.
|
virtual |
Removes & destroys a ParticleSystem from the SceneManager.
|
virtual |
Destroys a scene query of any type.
|
virtual |
Removes & destroys an Entity from the SceneManager.
|
virtual |
Removes & destroys a RibbonTrail from the SceneManager.
|
virtual |
Destroys a SceneNode.
void Ogre::SceneManager::destroySkeletonInstance | ( | SkeletonInstance * | skeletonInstance | ) |
Destroys an instance of a skeleton created with createSkeletonInstance().
|
virtual |
Removes & destroys an WireAabb from the SceneManager.
void Ogre::SceneManager::executeUserScalableTask | ( | UniformScalableTask * | task, |
bool | bBlock | ||
) |
Processes a user-defined UniformScalableTask in the worker threads spawned by SceneManager.
task | Task to perform. Pointer must be valid at least until the task is finished |
bBlock | True if you want the function to block until the task is done. False if you want to do something in between, in this case you MUST call waitForPendingUserScalableTask later. |
|
virtual |
Extract all injected MovableObjects of a given type.
|
virtual |
Extract a previously injected MovableObject.
Finds the camera with the given name.
Throws if not found.
name | Hash of the name of the camera to find |
Finds the camera with the given name.
Returns null pointer if not found.
name | Hash of the name of the camera to find |
|
virtual |
Finds all the movable objects with the type and name passed as parameters.
virtual_l1 SceneNodeList Ogre::SceneManager::findSceneNodes | ( | const String & | name | ) | const |
Finds all the scene nodes with the name passed as parameter.
|
inline |
|
inline |
|
inline |
Returns the ambient light level to be used for the scene.
|
virtual |
Looks up an Animation object previously created with createAnimation.
|
inline |
Returns a specialised MapIterator over all animations in the scene.
|
inline |
Returns a const version of the animation list.
|
virtual |
Retrieves animation state as previously created using createAnimationState.
|
inline |
Returns a specialised MapIterator over all animation states in the scene.
|
inline |
Gets currently set atmosphere. It's never nullptr.
AtmosphereComponent* Ogre::SceneManager::getAtmosphereRaw | ( | ) |
Gets currently set atmosphere. Can be nullptr if none is set.
|
inline |
Returns a specialised MapIterator over all cameras in the scene.
|
inline |
Returns a const version of the camera list.
|
inline |
Gets the current camera being rendered (advanced use only, only valid during viewport update.
|
inline |
const AxisAlignedBox& Ogre::SceneManager::getCurrentCastersBox | ( | ) | const |
|
inline |
Note: May be null.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Gets the current viewport being rendered (advanced use only, only valid during viewport update.
|
inline |
|
inline |
|
inline |
RenderSystem* Ogre::SceneManager::getDestinationRenderSystem | ( | ) |
Get the rendersystem subclass to which the output of this Scene Manager gets sent.
|
inlinevirtual |
Returns true if all scene nodes axis are to be displayed.
|
inline |
Unlike mNodeMemoryManager->_getDummyNode(), this dummy node is fully allocated, which makes it possible to actually attach objects to this dummy, while we guarantee the dummy won't change its transform.
|
inline |
|
inlinevirtual |
Gets whether the SceneManager should search for visible objects, or whether they are being manually handled.
|
inlinevirtual |
Get whether to automatically flip the culling mode on objects whenever they are negatively scaled.
|
inline |
|
inline |
Retrieve a set of clipping planes for a given light.
|
inline |
Gets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light.
|
virtual |
Retrieve a scissor rectangle for a given light and camera.
void Ogre::SceneManager::getMinMaxDepthRange | ( | const Frustum * | shadowMapCamera, |
Real & | outMin, | ||
Real & | outMax | ||
) | const |
|
virtual |
Get an iterator over all MovableObect instances of a given type.
|
inline |
Return the instance name of this SceneManager.
|
inline |
Gets the number of currently active compositor textures.
|
inline |
|
inlinevirtual |
Method for getting the value of an implementation-specific Scene Manager option.
strKey | The name of the option |
pDestValue | A pointer to a memory location where the value will be copied. Currently, the memory will be allocated by the scene manager, but this may change |
|
inlinevirtual |
Method for getting all the implementation-specific options of the scene manager.
refKeys | A reference to a list that will be filled with all the available options. |
|
inlinevirtual |
Method for getting all possible values for a specific option.
When this list is too large (i.e. the option expects, for example, a float), the return value will be true, but the list will contain just one element whose size will be set to 0. Otherwise, the list will be filled with all the possible values the option can accept.
strKey | The name of the option to get the values for. |
refValueList | A reference to a list that will be filled with the available values. |
|
inline |
Vector3 Ogre::SceneManager::getRelativeOrigin | ( | ) | const |
Returns the current relative origin. (Only when non-permanent)
|
inline |
Returns the RenderQueue.
SceneNode* Ogre::SceneManager::getRootSceneNode | ( | SceneMemoryMgrTypes | sceneType = SCENE_DYNAMIC | ) |
Gets the SceneNode at the root of the scene hierarchy.
virtual_l1 SceneNode* Ogre::SceneManager::getSceneNode | ( | IdType | id | ) |
Retrieves a SceneNode based on it's ID from the scene graph.
virtual_l1 const SceneNode* Ogre::SceneManager::getSceneNode | ( | IdType | id | ) | const |
|
virtual |
Get the colour used to modulate areas in shadow.
|
virtual |
Gets the distance a shadow volume is extruded for a directional light.
|
inlinevirtual |
Gets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space.
|
inlinevirtual |
Gets the default maximum distance away from the camera that shadows will be visible.
|
inlinevirtual |
|
virtual |
Returns if all bounding boxes of scene nodes are to be displayed.
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed.
random | If true, and there is more than one possible suggestion, a random one will be used. If false the same one will always be suggested. |
|
pure virtual |
Retrieve the type name of this scene manager.
Implemented in Ogre::DefaultSceneManager.
|
inline |
Gets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible.
|
virtual |
Returns whether an animation with the given name exists.
|
virtual |
Returns whether an animation state with the given name exists.
|
virtual |
Returns if this SceneManager contains the specified MovableObject.
|
inlinevirtual |
Method for verifying whether the scene manager has an implementation-specific option.
strKey | The name of the option to check for. |
|
virtual |
Inject a MovableObject instance created externally.
bool Ogre::SceneManager::isDecalsDiffuseEmissiveMerged | ( | ) | const |
|
inline |
bool Ogre::SceneManager::isUsingInstancedStereo | ( | ) | const |
void Ogre::SceneManager::notifyStaticAabbDirty | ( | MovableObject * | movableObject | ) |
Notifies that the given MovableObject is dirty (i.e.
the AABBs have changed). Note that the parent SceneNodes of this/these objects are not updated and you will have to call
void Ogre::SceneManager::notifyStaticDirty | ( | Node * | node | ) |
Notifies that the given Node is dirty (i.e.
the position, orientation and/or scale has changed). The call will cascade to all children of the input node.
Ogre::SceneManager::OGRE_DEPRECATED_VER | ( | 3 | ) | const & |
Returns the fog colour for the scene.
Ogre::SceneManager::OGRE_DEPRECATED_VER | ( | 3 | ) | const |
Returns the fog mode for the scene.
Ogre::SceneManager::OGRE_DEPRECATED_VER | ( | 3 | ) | const |
Returns the fog density for the scene.
Ogre::SceneManager::OGRE_DEPRECATED_VER | ( | 3 | ) | const |
Returns the fog end distance for the scene.
Ogre::SceneManager::OGRE_DEPRECATED_VER | ( | 3 | ) | const |
Returns the fog start distance for the scene.
Ogre::SceneManager::OGRE_MUTEX | ( | sceneGraphMutex | ) |
Mutex to protect the scene graph from simultaneous access from multiple threads.
|
virtual |
Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms.
|
virtual |
Remove a listener.
void Ogre::SceneManager::removeLodListener | ( | LodListener * | listener | ) |
Remove a level of detail listener.
|
virtual |
Removes a listener previously added with addRenderObjectListener.
|
virtual |
Removes a listener previously added with addRenderQueueListener.
void Ogre::SceneManager::reserveSlotsInGlobalLightList | ( | size_t | addSlotsToCapacity = 0 | ) |
Allocates required memory in mGlobalLightList.
void Ogre::SceneManager::setAmbientLight | ( | const ColourValue & | upperHemisphere, |
const ColourValue & | lowerHemisphere, | ||
const Vector3 & | hemisphereDir, | ||
Real | envmapScale = 1.0f , |
||
uint32 | envFeatures = 0xffffffff |
||
) |
Sets the ambient light level to be used for the scene.
Setting upperHemisphere = lowerHemisphere is effectively a traditional fixed-colour ambient light.
upperHemisphere | Ambient colour when the surface normal is close to hemisphereDir |
lowerHemisphere | Ambient colour when the surface normal is pointing away from hemisphereDir |
hemisphereDir | Hemisphere's direction reference to compare the surface normal to. The internal vector will be normalized. |
envmapScale | Global scale to apply to all environment maps (for relevant Hlms implementations, like PBS). The value will be stored in upperHemisphere.a Use 1.0 to disable. |
envFeatures | Bitmask. See SceneManager::EnvFeatures |
void Ogre::SceneManager::setBuildLegacyLightList | ( | bool | bEnable | ) |
Enables or disables the legace 1.9 way of building light lists which can be used by HlmsLowLevel materials.
This light list can be turned on regardless of any Forward* mode but it consumes a lot of performance and is only used by HlmsLowLevel materials that need ligting.
void Ogre::SceneManager::setDecalsDiffuse | ( | TextureGpu * | tex | ) |
Sets the decal texture for diffuse.
Should be a RGBA8 or similar colour format.
You still need to enable a Forward+ solution that supports decals, such as SceneManager::setForwardClusted; otherwise decals won't be rendered.
tex | Null pointer to disable diffuse texture for all decals, globablly. |
void Ogre::SceneManager::setDecalsEmissive | ( | TextureGpu * | tex | ) |
See SceneManager::setDecalsDiffuse.
Setting this texture to the same as diffuse incurs in a performance optimization.
void Ogre::SceneManager::setDecalsNormals | ( | TextureGpu * | tex | ) |
Sets the decal texture normal maps.
Should be RG8_SNORM or BC5_SNORM.
tex | Null pointer to disable normal map textures for all decals, globally. |
|
virtual |
Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene.
|
inlinevirtual |
Sets whether the SceneManager should search for visible objects, or whether they are being manually handled.
|
inlinevirtual |
Set whether to automatically flip the culling mode on objects whenever they are negatively scaled.
void Ogre::SceneManager::setFog | ( | FogMode | mode = FOG_NONE , |
const ColourValue & | colour = ColourValue::White , |
||
Real | expDensity = Real(0.001) , |
||
Real | linearStart = Real(0.0) , |
||
Real | linearEnd = Real(1.0) |
||
) |
Sets the fogging mode applied to the scene.
Deprecated in favour of Atmosphere component. See AtmosphereNpr::setSky.
mode | Set up the mode of fog as described in the FogMode enum, or set to FOG_NONE to turn off. |
colour | The colour of the fog. Either set this to the same as your viewport background colour, or to blend in with a skydome or skybox. |
expDensity | The density of the fog in FOG_EXP or FOG_EXP2 mode, as a value between 0 and 1. The default is 0.001. |
linearStart | Distance in world units at which linear fog starts to encroach. Only applicable if mode is FOG_LINEAR. |
linearEnd | Distance in world units at which linear fog becomes completely opaque. Only applicable if mode is FOG_LINEAR. |
void Ogre::SceneManager::setForward3D | ( | bool | bEnable, |
uint32 | width, | ||
uint32 | height, | ||
uint32 | numSlices, | ||
uint32 | lightsPerCell, | ||
float | minDistance, | ||
float | maxDistance | ||
) |
Enables or disables the Forward3D implementation for using many non-shadowed lights in the scene.
See the Forward3D sample for more information.
bEnable | True to enable it. False to disable it. |
width | The width of the view-space grid. Recommended value is 4 unless numSlices is very small. |
height | The height of the view-space grid. Recommended value is 4 unless numSlices is very small. |
numSlices | The number of slices. Each additional slice consumes much more memory. The width and height is doubled on each slice. It's like mipmapping but on reverse. |
lightsPerCell | The maximum number of lights a cell in the grid can hold. |
decalsPerCell | Maximum number of decals a cell in the grid can hold. 0 to disable decals. |
minDistance | Bias towards the camera for grid. |
maxDistance | How far the grid array can go. |
void Ogre::SceneManager::setForwardClustered | ( | bool | bEnable, |
uint32 | width, | ||
uint32 | height, | ||
uint32 | numSlices, | ||
uint32 | lightsPerCell, | ||
uint32 | decalsPerCell, | ||
uint32 | cubemapProbesPerCel, | ||
float | minDistance, | ||
float | maxDistance | ||
) |
|
inline |
Sets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light.
|
inlinevirtual |
Method for setting a specific option of the Scene Manager.
These options are usually specific for a certain implemntation of the Scene Manager class, and may (and probably will) not exist across different implementations.
strKey | The name of the option to set |
pValue | A pointer to the value - the size should be calculated by the scene manager based on the key |
void Ogre::SceneManager::setRadialDensityMask | ( | bool | bEnabled, |
const float | radius[3] | ||
) |
Draws a Radial Density Mask to lower the quality around the edges in VR.
bEnabled | |
radius | Three sets of radiuses in clip space (i.e. in range [0; 1]) around each eye's center All pixels inside radius[0] are rendered at full rate All pixels between radius[0] & radius[1] are masked at half rate All pixels between radius[1] & radius[2] are masked at quarter rate All pixels beyond radius[2] are masked at 1/16th rate |
|
virtual |
Set whether to use relative offset co-ordinates when rendering, ie offset to subtract to the camera, lights & objects.
bPermanent | When false, it only affects the root nodes (static & dynamic) so that everything is shifted by the relative origin, causing world & view matrices to contain smaller values. This improves the quality of skeletal animations and "Z fighting"-like artifacts because vertices don't snap to the right place. However, it won't fix the jittering of objects observed while translating them by small increments, including camera movement. |
Setting this value to true will force the SceneManager to propagate the change as much as possible to child nodes (including attached Cameras), causing the change to become permanent/irreversible. This achieves greater quality since translating objects or camera by small amounts now gets more accuracy.
|
virtual |
Set the colour used to modulate areas in shadow.
|
virtual |
Sets the distance a shadow volume is extruded for a directional light.
|
inlinevirtual |
Sets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space.
|
virtual |
Sets the default maximum distance away from the camera that shadows will be visible.
You have to call this function before you create lights or the default distance of zero will be used.
|
inlinevirtual |
Sets the proportional distance at which texture shadows finish to fading out.
|
inlinevirtual |
Sets the proportional distance at which texture shadows begin to fade out.
void Ogre::SceneManager::setSky | ( | bool | bEnabled, |
SkyMethod | skyMethod, | ||
const String & | texName, | ||
const String & | resourceGroup | ||
) |
void Ogre::SceneManager::setSky | ( | bool | bEnabled, |
SkyMethod | skyMethod, | ||
TextureGpu * | texture | ||
) |
Sets a sky, to use a particular material based on SkyMethod.
You can control the order of the sky and its visibility flags by calling:
bEnabled | |
skyMethod | |
texture |
void Ogre::SceneManager::setSphericalHarmonics | ( | Vector3 | ambientSphericalHarmonics[9] | ) |
|
inline |
Sets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible.
References Ogre::VisibilityFlags::RESERVED_VISIBILITY_FLAGS.
|
virtual |
Allows all bounding boxes of scene nodes to be displayed.
void Ogre::SceneManager::shrinkToFitMemoryPools | ( | ) |
Defragments memory, then reallocates a smaller pool that tightly fits the current number of objects.
Useful when you know you won't be creating more slots and you need to reclaim memory.
|
virtual |
Unregisters a registered node for listening.
void Ogre::SceneManager::updateAllAnimations | ( | ) |
Updates all skeletal animations in the scene.
This is typically called once per frame during render, but the user might want to manually call this function.
void Ogre::SceneManager::updateAllBounds | ( | const ObjectMemoryManagerVec & | objectMemManager | ) |
Updates the world aabbs from all entities in the scene.
Ought to be called right after updateAllTransforms.
void Ogre::SceneManager::updateAllLods | ( | const Camera * | lodCamera, |
Real | lodBias, | ||
uint8 | firstRq, | ||
uint8 | lastRq | ||
) |
Updates the Lod values of all objects relative to the given camera.
void Ogre::SceneManager::updateAllTagPoints | ( | ) |
Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints.
void Ogre::SceneManager::updateAllTransforms | ( | ) |
Updates the derived transforms of all nodes in the scene.
This is typically called once per frame during render, but the user may want to manually call this function.
void Ogre::SceneManager::updateSceneGraph | ( | ) |
Updates the scene: Perform high level culling, Node transforms and entity animations.
void Ogre::SceneManager::waitForPendingUserScalableTask | ( | ) |
Blocks until the the task from processUserScalableTask finishes.
|
static |
Default query mask for entities.
|
static |
Default query mask for frusta and cameras.
|
static |
Default query mask for effects like billboardsets / particle systems.
|
static |
Default query mask for lights.
|
static |
Default query mask for StaticGeometry.