OGRE-Next
2.3
Object-Oriented Graphics Rendering Engine
|
Specialisation of the SceneManager class to deal with indoor scenes based on a BSP tree. More...
#include <OgreBspSceneManager.h>
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 | |
BspSceneManager (const String &name) | |
~BspSceneManager () | |
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 (void) |
Internal method for applying animations to scene nodes. More... | |
virtual bool | _areRenderStateChangesSuppressed (void) 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 (void) |
virtual void | _destroyCubemapProbe (InternalCubemapProbe *probe) |
void | _findVisibleObjects (Camera *cam, VisibleObjectsBoundsInfo *visibleBounds, bool onlyShadowCasters) |
Overridden from SceneManager. More... | |
void | _frameEnded (void) |
Called when the frame has fully ended (ALL passes have been executed to all RTTs) More... | |
ForwardPlusBase * | _getActivePassForwardPlus (void) |
AutoParamDataSource * | _getAutoParamDataSource (void) const |
uint32 | _getCombinedVisibilityMask (void) 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 (void) |
NodeMemoryManager & | _getNodeMemoryManager (SceneMemoryMgrTypes sceneType) |
NodeMemoryManager & | _getTagPointNodeMemoryManager (void) |
VisibleObjectsPerThreadArray & | _getTmpVisibleObjectsList () |
@See mTmpVisibleObjects More... | |
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... | |
void | _notifyObjectDetached (const MovableObject *mov) |
Internal method for notifying the level that an object has been detached from a node. More... | |
void | _notifyObjectMoved (const MovableObject *mov, const Vector3 &pos) |
Internal method for tagging BspNodes with objects which intersect them. 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 | _setCamerasInProgress (const CamerasInProgress &cameras) |
void | _setCurrentCompositorPass (CompositorPass *pass) |
void | _setCurrentRenderStage (IlluminationRenderStage stage) |
void | _setCurrentShadowNode (CompositorShadowNode *shadowNode, bool isReused) |
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... | |
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 (void) |
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=0xFFFFFFFF) |
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) |
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=0xFFFFFFFF) |
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... | |
SceneNode * | createSceneNodeImpl (const String &name) |
Creates a specialized BspSceneNode. More... | |
SceneNode * | createSceneNodeImpl (void) |
Creates a specialized BspSceneNode. 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 v1::StaticGeometry * | createStaticGeometry (const String &name) |
Creates a StaticGeometry instance suitable for use with this SceneManager. More... | |
virtual TagPoint * | createTagPoint (void) |
Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone. More... | |
virtual WireAabb * | createWireAabb (void) |
Create an WireAabb. More... | |
void | cullLights (Camera *camera, Light::LightTypes startType, Light::LightTypes endType, LightArray &outLights) |
void | defragmentMemoryPools (void) |
Triggers on demand a defragmentation of the pools, so that all slots become contiguous in memory. More... | |
virtual void | destroyAllAnimations (void) |
Removes all animations created using this SceneManager. More... | |
virtual void | destroyAllAnimationStates (void) |
Removes all animation states created using this SceneManager. More... | |
virtual void | destroyAllBillboardChains (void) |
Removes & destroys all BillboardChains from the SceneManager. More... | |
virtual void | destroyAllBillboardSets (void) |
Removes & destroys all BillboardSets. More... | |
virtual void | destroyAllCameras (void) |
Removes (and destroys) all cameras from the scene. More... | |
virtual void | destroyAllDecals (void) |
virtual void | destroyAllEntities (void) |
Removes & destroys all Entities. More... | |
virtual void | destroyAllItems (void) |
Removes & destroys all Items. More... | |
virtual void | destroyAllLights (void) |
Removes and destroys all lights in the scene. More... | |
virtual void | destroyAllManualObjects (void) |
Removes & destroys all ManualObjects from the SceneManager. More... | |
virtual void | destroyAllMovableObjects (void) |
Destroy all MovableObjects. More... | |
virtual void | destroyAllMovableObjectsByType (const String &typeName) |
Destroy all MovableObjects of a given type. More... | |
virtual void | destroyAllParticleSystems (void) |
Removes & destroys all ParticleSystems from the SceneManager. More... | |
virtual void | destroyAllRectangle2D (void) |
Removes & destroys all Rectangle2D. More... | |
virtual void | destroyAllRibbonTrails (void) |
Removes & destroys all RibbonTrails from the SceneManager. More... | |
virtual void | destroyAllStaticGeometry (void) |
Remove & destroy all StaticGeometry instances. More... | |
virtual void | destroyAllWireAabbs (void) |
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 | destroyStaticGeometry (const String &name) |
Remove & destroy a StaticGeometry instance. More... | |
virtual void | destroyStaticGeometry (v1::StaticGeometry *geom) |
Remove & destroy a StaticGeometry instance. More... | |
virtual void | destroyWireAabb (WireAabb *wireAabb) |
Removes & destroys an WireAabb from the SceneManager. More... | |
size_t | estimateWorldGeometry (const String &filename) |
Specialised from SceneManager to support Quake3 bsp files. More... | |
size_t | estimateWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING) |
Specialised from SceneManager to support Quake3 bsp files. 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 (void) const |
const ColourValue & | getAmbientLightLowerHemisphere (void) const |
const ColourValue & | getAmbientLightUpperHemisphere (void) 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 (void) |
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 (void) |
Returns a specialised MapIterator over all animation states in the scene. More... | |
CameraIterator | getCameraIterator (void) |
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 (void) const |
Gets the current camera being rendered (advanced use only, only valid during viewport update. More... | |
const CompositorTextureVec & | getCompositorTextures (void) const |
const AxisAlignedBox & | getCurrentCastersBox (void) const |
@See CompositorShadowNode::getCastersBox More... | |
const CompositorPass * | getCurrentCompositorPass (void) const |
Note: May be null. More... | |
TextureGpu * | getCurrentPassDepthTextureNoMsaa (void) const |
TextureGpu * | getCurrentPrePassDepthTexture (void) const |
PrePassMode | getCurrentPrePassMode (void) const |
const TextureGpuVec & | getCurrentPrePassTextures (void) const |
TextureGpu * | getCurrentRefractionsTexture (void) const |
const CompositorShadowNode * | getCurrentShadowNode (void) const |
TextureGpu * | getCurrentSsrTexture (void) const |
Viewport * | getCurrentViewport0 (void) const |
Gets the current viewport being rendered (advanced use only, only valid during viewport update. More... | |
TextureGpu * | getDecalsDiffuse (void) const |
TextureGpu * | getDecalsEmissive (void) const |
TextureGpu * | getDecalsNormals (void) const |
RenderSystem * | getDestinationRenderSystem () |
Get the rendersystem subclass to which the output of this Scene Manager gets sent. More... | |
virtual bool | getDisplaySceneNodes (void) const |
Returns true if all scene nodes axis are to be displayed. More... | |
SceneNode * | getDummySceneNode (void) 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 (void) const |
virtual bool | getFindVisibleObjects (void) |
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... | |
virtual const ColourValue & | getFogColour (void) const |
Returns the fog colour for the scene. More... | |
virtual Real | getFogDensity (void) const |
Returns the fog density for the scene. More... | |
virtual Real | getFogEnd (void) const |
Returns the fog end distance for the scene. More... | |
virtual FogMode | getFogMode (void) const |
Returns the fog mode for the scene. More... | |
virtual Real | getFogStart (void) const |
Returns the fog start distance for the scene. More... | |
ForwardPlusBase * | getForwardPlus (void) |
const LightListInfo & | getGlobalLightList (void) const |
IdType | getId () const |
Get the unique id of this object. More... | |
const BspLevelPtr & | getLevel (void) |
virtual const PlaneList & | getLightClippingPlanes (const Light *l) |
Retrieve a set of clipping planes for a given light. More... | |
virtual_l2 uint32 | getLightMask (void) 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 |
@See CompositorShadowNode::getMinMaxDepthRange More... | |
virtual MovableObjectIterator | getMovableObjectIterator (const String &typeName) |
Get an iterator over all MovableObect instances of a given type. More... | |
const String & | getName (void) const |
Return the instance name of this SceneManager. More... | |
size_t | getNumCompositorTextures (void) 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 (void) const |
Vector3 | getRelativeOrigin (void) const |
Returns the current relative origin. (Only when non-permanent) More... | |
RenderQueue * | getRenderQueue (void) 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 (void) const |
Get the colour used to modulate areas in shadow. More... | |
virtual Real | getShadowDirectionalLightExtrusionDistance (void) const |
Gets the distance a shadow volume is extruded for a directional light. More... | |
virtual Real | getShadowDirLightTextureOffset (void) 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 (void) const |
Gets the default maximum distance away from the camera that shadows will be visible. More... | |
virtual Real | getShadowFarDistanceSquared (void) const |
virtual bool | getShowBoundingBoxes () const |
Returns if all bounding boxes of scene nodes are to be displayed. More... | |
Rectangle2D * | getSky (void) |
MaterialPtr | getSkyMaterial (void) |
SkyMethod | getSkyMethod (void) const |
const float * | getSphericalHarmonics (void) const |
virtual v1::StaticGeometry * | getStaticGeometry (const String &name) const |
Retrieve a previously created StaticGeometry instance. More... | |
ViewPoint | getSuggestedViewpoint (bool random=false) |
Specialised to suggest viewpoints. More... | |
const String & | getTypeName (void) const |
Retrieve the type name of this scene manager. More... | |
virtual_l2 uint32 | getVisibilityMask (void) 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 bool | hasStaticGeometry (const String &name) const |
Returns whether a static geometry instance with the given name exists. More... | |
virtual void | injectMovableObject (MovableObject *m) |
Inject a MovableObject instance created externally. More... | |
bool | isCurrentShadowNodeReused (void) const |
bool | isDecalsDiffuseEmissiveMerged (void) const |
virtual bool | isLateMaterialResolving () const |
Gets whether using late material resolving or not. More... | |
bool | isSkyEnabled (void) const |
bool | isUsingInstancedStereo (void) 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_MUTEX (sceneGraphMutex) | |
Mutex to protect the scene graph from simultaneous access from multiple threads. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
bool | operator() (const IdObject &left, const IdObject &right) |
bool | operator() (const IdObject *left, const IdObject *right) |
virtual void | prepareWorldGeometry (const String &filename) |
Sets the source of the 'world' geometry, i.e. More... | |
virtual void | prepareWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING) |
Sets the source of the 'world' geometry, i.e. 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=0.001, Real linearStart=0.0, Real linearEnd=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 void | setLateMaterialResolving (bool isLate) |
Sets whether to use late material resolving or not. More... | |
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 | setShadowTextureCasterMaterial (const String &name) |
Sets the default material to use for rendering shadow casters. 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... | |
void | setWorldGeometry (const String &filename) |
Specialised from SceneManager to support Quake3 bsp files. More... | |
void | setWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING) |
Specialised from SceneManager to support Quake3 bsp files. More... | |
virtual void | showBoundingBoxes (bool bShow) |
Allows all bounding boxes of scene nodes to be displayed. More... | |
void | showNodeBoxes (bool show) |
Tells the manager whether to draw the axis-aligned boxes that surround nodes in the Bsp tree. More... | |
void | shrinkToFitMemoryPools (void) |
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 (void) |
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... | |
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... | |
Specialisation of the SceneManager class to deal with indoor scenes based on a BSP tree.
This class refines the behaviour of the default SceneManager to manage a scene whose bulk of geometry is made up of an indoor environment which is organised by a Binary Space Partition (BSP) tree. A BSP tree progressively subdivides the space using planes which are the nodes of the tree. At some point we stop subdividing and everything in the remaining space is part of a 'leaf' which contains a number of polygons. Typically we traverse the tree to locate the leaf in which a point in space is (say the camera origin) and work from there. A second structure, the Potentially Visible Set, tells us which other leaves can been seen from this leaf, and we test their bounding boxes against the camera frustum to see which we need to draw. Leaves are also a good place to start for collision detection since they divide the level into discrete areas for testing. This BSP and PVS technique has been made famous by engines such as Quake and Unreal. Ogre provides support for loading Quake3 level files to populate your world through this class, by calling the BspSceneManager::setWorldGeometry. Note that this interface is made available at the top level of the SceneManager class so you don't have to write your code specifically for this class - just call Root::getSceneManager passing a SceneType of ST_INTERIOR and in the current implementation you will get a BspSceneManager silently disguised as a standard SceneManager.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Ogre::BspSceneManager::BspSceneManager | ( | const String & | name | ) |
Ogre::BspSceneManager::~BspSceneManager | ( | ) |
|
virtualinherited |
Internal method for notifying the manager that a SceneNode is autotracking.
|
inherited |
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 |
|
inherited |
|
virtualinherited |
Internal method for applying animations to scene nodes.
|
inlinevirtualinherited |
Are render state changes suppressed?
|
inherited |
|
inherited |
Returns true if collection code was run.
When false, you cannot trust the contents of _getTmpVisibleObjectsList to be empty
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Don't call this function directly.
|
virtualinherited |
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) |
|
virtualinherited |
|
virtualinherited |
void Ogre::BspSceneManager::_findVisibleObjects | ( | Camera * | cam, |
VisibleObjectsBoundsInfo * | visibleBounds, | ||
bool | onlyShadowCasters | ||
) |
Overridden from SceneManager.
|
inherited |
Called when the frame has fully ended (ALL passes have been executed to all RTTs)
|
inlineinherited |
|
inlineinherited |
|
inherited |
Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask.
|
inlineinherited |
|
inlineinherited |
Retrieves the main entity memory manager.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
@See mTmpVisibleObjects
|
inherited |
Handle LOD events.
|
virtualinherited |
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. |
|
inherited |
Notify that an entity material LOD change event has occurred.
|
inherited |
Notify that an entity mesh LOD change event has occurred.
|
inherited |
Notify that a movable object LOD change event has occurred.
void Ogre::BspSceneManager::_notifyObjectDetached | ( | const MovableObject * | mov | ) |
Internal method for notifying the level that an object has been detached from a node.
void Ogre::BspSceneManager::_notifyObjectMoved | ( | const MovableObject * | mov, |
const Vector3 & | pos | ||
) |
Internal method for tagging BspNodes with objects which intersect them.
|
virtualinherited |
Pause rendering of the frame.
This has to be called when inside a renderScene call (Usually using a listener of some sort)
|
virtualinherited |
Notifies the scene manager that hardware resources were lost.
|
virtualinherited |
|
inherited |
Removes all compositor textures from 'from' to end.
|
inherited |
Removes a skeleton definition from its memory manager.
|
inherited |
|
virtualinherited |
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 |
|
virtualinherited |
|
virtualinherited |
Notifies the scene manager that hardware resources should be restored.
|
virtualinherited |
Resume rendering of the frame.
This has to be called after a _pauseRendering call
context | The rendring context, as returned by the _pauseRendering call |
|
inlineinherited |
|
inherited |
|
inlineinherited |
|
inherited |
|
virtualinherited |
Notifies the scene manager of its destination render system.
sys | Pointer to the RenderSystem subclass to be used as a render target. |
|
inherited |
For internal use.
|
inherited |
|
inherited |
For internal use.
|
inherited |
|
virtualinherited |
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. |
|
inherited |
Called from the worker thread, polls to process frustum culling requests when a sync is performed.
|
virtualinherited |
Add a listener which will get called back on scene manager events.
|
inherited |
Add a level of detail listener.
|
virtualinherited |
Registers a new Render Object Listener which will be notified when rendering an object.
|
virtualinherited |
Registers a new RenderQueueListener which will be notified when render queues are processed.
|
inherited |
Clears temporary buffers and other data that needs to live every frame.
|
virtualinherited |
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. |
|
virtualinherited |
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. |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
virtualinherited |
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. |
|
virtualinherited |
Create an AnimationState object for managing application of animations.
animName | The name of an animation created already with createAnimation. |
|
virtualinherited |
Create a BillboardChain, an object which you can use to render a linked chain of billboards.
|
virtualinherited |
Creates a new BillboardSet for use with this scene manager.
poolSize | The initial size of the pool of billboards (see BillboardSet for more information) |
|
virtualinherited |
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) |
|
virtualinherited |
|
virtualinherited |
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. |
|
virtualinherited |
Create an Entity (instance of a discrete mesh).
pMesh | The pointer to the Mesh it is to be based on. |
|
virtualinherited |
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. |
Reimplemented from Ogre::SceneManager.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Creates a light for use in the scene.
|
virtualinherited |
Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface.
|
virtualinherited |
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. |
|
virtualinherited |
Creates a particle system based on a template.
templateName | The name of the template to base the new instance on. |
|
virtualinherited |
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 |
|
virtualinherited |
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. |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
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. |
Reimplemented from Ogre::SceneManager.
|
virtualinherited |
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). |
|
virtualinherited |
Create a RibbonTrail, an object which you can use to render a linked chain of billboards which follows one or more nodes.
|
virtualinherited |
Creates an instance of a SceneNode.
Creates a specialized BspSceneNode.
SceneNode* Ogre::BspSceneManager::createSceneNodeImpl | ( | void | ) |
Creates a specialized BspSceneNode.
|
inherited |
Creates an instance of a skeleton based on the given definition.
|
virtualinherited |
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. |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
virtualinherited |
Creates a StaticGeometry instance suitable for use with this SceneManager.
name | The name to give the new object |
|
virtualinherited |
Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone.
|
inherited |
|
inherited |
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
|
virtualinherited |
Removes all animations created using this SceneManager.
|
virtualinherited |
Removes all animation states created using this SceneManager.
|
virtualinherited |
Removes & destroys all BillboardChains from the SceneManager.
|
virtualinherited |
Removes & destroys all BillboardSets.
|
virtualinherited |
Removes (and destroys) all cameras from the scene.
|
virtualinherited |
|
virtualinherited |
Removes & destroys all Entities.
|
virtualinherited |
Removes & destroys all Items.
|
virtualinherited |
Removes and destroys all lights in the scene.
Reimplemented in Ogre::PCZSceneManager.
|
virtualinherited |
Removes & destroys all ManualObjects from the SceneManager.
|
virtualinherited |
Destroy all MovableObjects.
|
virtualinherited |
Destroy all MovableObjects of a given type.
|
virtualinherited |
Removes & destroys all ParticleSystems from the SceneManager.
|
virtualinherited |
Removes & destroys all Rectangle2D.
|
virtualinherited |
Removes & destroys all RibbonTrails from the SceneManager.
|
virtualinherited |
Remove & destroy all StaticGeometry instances.
|
virtualinherited |
Removes & destroys all WireAabbs.
|
virtualinherited |
Destroys an Animation.
|
virtualinherited |
Destroys an AnimationState.
|
virtualinherited |
Removes & destroys a BillboardChain from the SceneManager.
|
virtualinherited |
Removes & destroys an BillboardSet from the SceneManager.
|
virtualinherited |
Removes a camera from the scene.
cam | Pointer to the camera to remove |
|
virtualinherited |
|
virtualinherited |
Removes & destroys an Entity from the SceneManager.
|
virtualinherited |
Removes & destroys an Item from the SceneManager.
|
virtualinherited |
Removes the light from the scene and destroys it based on a pointer.
|
virtualinherited |
Removes & destroys a ManualObject from the SceneManager.
|
virtualinherited |
Destroys a MovableObject.
|
virtualinherited |
Destroys a MovableObject with the name specified, of the type specified.
|
virtualinherited |
Removes & destroys a ParticleSystem from the SceneManager.
|
virtualinherited |
Destroys a scene query of any type.
|
virtualinherited |
Removes & destroys an Entity from the SceneManager.
|
virtualinherited |
Removes & destroys a RibbonTrail from the SceneManager.
|
virtualinherited |
Destroys a SceneNode.
Reimplemented in Ogre::PCZSceneManager.
|
inherited |
Destroys an instance of a skeleton created with @createSkeletonInstance.
|
virtualinherited |
Remove & destroy a StaticGeometry instance.
|
virtualinherited |
Remove & destroy a StaticGeometry instance.
|
virtualinherited |
Removes & destroys an WireAabb from the SceneManager.
|
virtual |
Specialised from SceneManager to support Quake3 bsp files.
Reimplemented from Ogre::SceneManager.
|
virtual |
Specialised from SceneManager to support Quake3 bsp files.
Reimplemented from Ogre::SceneManager.
|
inherited |
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. |
|
virtualinherited |
Extract all injected MovableObjects of a given type.
|
virtualinherited |
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 |
|
virtualinherited |
Finds all the movable objects with the type and name passed as parameters.
|
inherited |
Finds all the scene nodes with the name passed as parameter.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Returns the ambient light level to be used for the scene.
|
virtualinherited |
Looks up an Animation object previously created with createAnimation.
|
inlineinherited |
Returns a specialised MapIterator over all animations in the scene.
|
inlineinherited |
Returns a const version of the animation list.
|
virtualinherited |
Retrieves animation state as previously created using createAnimationState.
|
inlineinherited |
Returns a specialised MapIterator over all animation states in the scene.
|
inlineinherited |
Returns a specialised MapIterator over all cameras in the scene.
|
inlineinherited |
Returns a const version of the camera list.
|
inlineinherited |
Gets the current camera being rendered (advanced use only, only valid during viewport update.
|
inlineinherited |
|
inherited |
@See CompositorShadowNode::getCastersBox
|
inlineinherited |
Note: May be null.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Gets the current viewport being rendered (advanced use only, only valid during viewport update.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
Get the rendersystem subclass to which the output of this Scene Manager gets sent.
|
inlinevirtualinherited |
Returns true if all scene nodes axis are to be displayed.
|
inlineinherited |
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.
|
inlineinherited |
|
inlinevirtualinherited |
Gets whether the SceneManager should search for visible objects, or whether they are being manually handled.
|
inlinevirtualinherited |
Get whether to automatically flip the culling mode on objects whenever they are negatively scaled.
|
virtualinherited |
Returns the fog colour for the scene.
|
virtualinherited |
Returns the fog density for the scene.
|
virtualinherited |
Returns the fog end distance for the scene.
|
virtualinherited |
Returns the fog mode for the scene.
|
virtualinherited |
Returns the fog start distance for the scene.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Get the unique id of this object.
|
inline |
|
virtualinherited |
Retrieve a set of clipping planes for a given light.
|
inlineinherited |
Gets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light.
|
virtualinherited |
Retrieve a scissor rectangle for a given light and camera.
|
inherited |
@See CompositorShadowNode::getMinMaxDepthRange
|
virtualinherited |
Get an iterator over all MovableObect instances of a given type.
|
inlineinherited |
Return the instance name of this SceneManager.
|
inlineinherited |
Gets the number of currently active compositor textures.
|
inlineinherited |
|
inlinevirtualinherited |
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 |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
inlinevirtualinherited |
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. |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
inlinevirtualinherited |
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. |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
inlineinherited |
|
inherited |
Returns the current relative origin. (Only when non-permanent)
|
inlineinherited |
Returns the RenderQueue.
|
inherited |
Gets the SceneNode at the root of the scene hierarchy.
|
inherited |
Retrieves a SceneNode based on it's ID from the scene graph.
|
inherited |
|
virtualinherited |
Get the colour used to modulate areas in shadow.
|
virtualinherited |
Gets the distance a shadow volume is extruded for a directional light.
|
inlinevirtualinherited |
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.
|
inlinevirtualinherited |
Gets the default maximum distance away from the camera that shadows will be visible.
|
inlinevirtualinherited |
|
virtualinherited |
Returns if all bounding boxes of scene nodes are to be displayed.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
virtualinherited |
Retrieve a previously created StaticGeometry instance.
|
virtual |
Specialised to suggest viewpoints.
Reimplemented from Ogre::SceneManager.
|
virtual |
Retrieve the type name of this scene manager.
Implements Ogre::SceneManager.
|
inlineinherited |
Gets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible.
|
virtualinherited |
Returns whether an animation with the given name exists.
|
virtualinherited |
Returns whether an animation state with the given name exists.
|
virtualinherited |
Returns if this SceneManager contains the specified MovableObject.
|
inlinevirtualinherited |
Method for verifying whether the scene manager has an implementation-specific option.
strKey | The name of the option to check for. |
|
virtualinherited |
Returns whether a static geometry instance with the given name exists.
|
virtualinherited |
Inject a MovableObject instance created externally.
|
inlineinherited |
|
inherited |
|
inlinevirtualinherited |
Gets whether using late material resolving or not.
|
inlineinherited |
|
inherited |
|
inherited |
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
|
inherited |
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.
|
inherited |
Mutex to protect the scene graph from simultaneous access from multiple threads.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
|
inlineinherited |
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
|
virtualinherited |
Sets the source of the 'world' geometry, i.e.
the large, mainly static geometry making up the world e.g. rooms, landscape etc. This function can be called before setWorldGeometry in a background thread, do to some slow tasks (e.g. IO) that do not involve the backend render system.
|
virtualinherited |
Sets the source of the 'world' geometry, i.e.
the large, mainly static geometry making up the world e.g. rooms, landscape etc. This function can be called before setWorldGeometry in a background thread, do to some slow tasks (e.g. IO) that do not involve the backend render system.
stream | Data stream containing data to load |
typeName | String identifying the type of world geometry contained in the stream - not required if this manager only supports one type of world geometry. |
|
virtualinherited |
Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms.
@See updateAllTransforms
|
virtualinherited |
Remove a listener.
|
inherited |
Remove a level of detail listener.
|
virtualinherited |
Removes a listener previously added with addRenderObjectListener.
|
virtualinherited |
Removes a listener previously added with addRenderQueueListener.
|
inherited |
Allocates required memory in mGlobalLightList.
|
inherited |
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 |
|
inherited |
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.
|
inherited |
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. |
|
inherited |
See SceneManager::setDecalsDiffuse.
Setting this texture to the same as diffuse incurs in a performance optimization.
|
inherited |
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. |
|
virtualinherited |
Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene.
|
inlinevirtualinherited |
Sets whether the SceneManager should search for visible objects, or whether they are being manually handled.
|
inlinevirtualinherited |
Set whether to automatically flip the culling mode on objects whenever they are negatively scaled.
|
inherited |
Sets the fogging mode applied to the scene.
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. |
|
inherited |
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. |
|
inherited |
|
inlinevirtualinherited |
Sets whether to use late material resolving or not.
If set, materials will be resolved from the materials at the pass-setting stage and not at the render queue building stage. This is useful when the active material scheme during the render queue building stage is different from the one during the rendering stage.
|
inlineinherited |
Sets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light.
|
inlinevirtualinherited |
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 |
Reimplemented in Ogre::PCZSceneManager, and Ogre::OctreeSceneManager.
|
inherited |
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 |
|
virtualinherited |
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. @See propagateRelativeOrigin.
|
virtualinherited |
Set the colour used to modulate areas in shadow.
|
virtualinherited |
Sets the distance a shadow volume is extruded for a directional light.
|
inlinevirtualinherited |
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.
|
virtualinherited |
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.
|
virtualinherited |
Sets the default material to use for rendering shadow casters.
|
inlinevirtualinherited |
Sets the proportional distance at which texture shadows finish to fading out.
|
inlinevirtualinherited |
Sets the proportional distance at which texture shadows begin to fade out.
|
inherited |
|
inherited |
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 |
|
inherited |
|
inlineinherited |
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 |
Specialised from SceneManager to support Quake3 bsp files.
Reimplemented from Ogre::SceneManager.
|
virtual |
Specialised from SceneManager to support Quake3 bsp files.
Reimplemented from Ogre::SceneManager.
|
virtualinherited |
Allows all bounding boxes of scene nodes to be displayed.
void Ogre::BspSceneManager::showNodeBoxes | ( | bool | show | ) |
Tells the manager whether to draw the axis-aligned boxes that surround nodes in the Bsp tree.
For debugging purposes.
|
inherited |
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.
|
virtualinherited |
Unregisters a registered node for listening.
@See registerSceneNodeListener
|
inherited |
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.
|
inherited |
Updates the world aabbs from all entities in the scene.
Ought to be called right after updateAllTransforms. @See updateAllTransforms
|
inherited |
Updates the Lod values of all objects relative to the given camera.
|
inherited |
Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints.
|
inherited |
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.
|
inherited |
Updates the scene: Perform high level culling, Node transforms and entity animations.
|
inherited |
Blocks until the the task from processUserScalableTask finishes.
|
staticinherited |
Default query mask for entities.
|
staticinherited |
Default query mask for frusta and cameras.
|
staticinherited |
Default query mask for effects like billboardsets / particle systems.
|
staticinherited |
Default query mask for lights.
|
staticinherited |
Default query mask for StaticGeometry.