C# Класс Axiom.Core.SceneManager

Manages the organization and rendering of a 'scene' i.e. a collection of objects and potentially world geometry.
This class defines the interface and the basic behaviour of a 'Scene Manager'. A SceneManager organizes the culling and rendering of the scene, in conjunction with the RenderQueue. This class is designed to be extended through subclassing in order to provide more specialized scene organization structures for particular needs. The default SceneManager culls based on a hierarchy of node bounding boxes, other implementations can use an octree (), a BSP tree (), and many other options. New SceneManager implementations can be added at runtime by plugins, see SceneManagerEnumerator for the interfaces for adding new SceneManager types.

There is a distinction between 'objects' (which subclass MovableObject, and are movable, discrete objects in the world), and 'world geometry', which is large, generally static geometry. World geometry tends to influence the SceneManager organizational structure (e.g. lots of indoor static geometry might result in a spatial tree structure) and as such world geometry is generally tied to a given SceneManager implementation, whilst MovableObject instances can be used with any SceneManager. Subclasses are free to define world geometry however they please.

Multiple SceneManager instances can exist at one time, each one with a distinct scene. Which SceneManager is used to render a scene is dependent on the Camera, which will always call back the SceneManager which created it to render the scene.

Наследование: DisposableObject
Показать файл Открыть проект Примеры использования класса

Защищенные свойства (Protected)

Свойство Тип Описание
_activeCompositorChain CompositorChain
_lightsDirtyCounter ulong
ambientColor ColorEx
animationList AnimationCollection
animationStateList AnimationStateSet
autoParamDataSource AutoParamDataSource
autoTrackingSceneNodes SceneNodeCollection
cameraInProgress Camera
cameraList CameraCollection
currentViewport Viewport
defaultRootNode SceneNode
displayNodes bool
findVisibleObjects bool
finiteExtrusionParams GpuProgramParameters
fogColor ColorEx
fogDensity float
fogEnd float
fogMode FogMode
fogStart float
fullScreenQuad Rectangle2D
hasCameraChanged bool
illuminationStage IlluminationRenderStage
infiniteExtrusionParams GpuProgramParameters
isSkyBoxDrawnFirst bool
isSkyBoxEnabled bool
isSkyDomeDrawnFirst bool
isSkyDomeEnabled bool
isSkyPlaneDrawnFirst bool
isSkyPlaneEnabled bool
lastFrameNumber ulong
lastNumTexUnitsUsed int
lastPolyMode PolygonMode
lastProjectionWasIdentity bool
lastUsedFallback bool
lastViewWasIdentity bool
lightsAffectingFrustum LightList
localLightList LightList
movableObjectCollectionMap MovableObjectCollection>.Dictionary
name string
normalizeNormals bool
nullLightList LightList
nullShadowTexture Texture
oldFogColor ColorEx
oldFogDensity float
oldFogEnd float
oldFogMode FogMode
oldFogStart float
op RenderOperation
optionList AxiomCollection
regionList List
renderQueue RenderQueue
renderingMainGroup bool
renderingNoShadowQueue bool
rootSceneNode SceneNode
sceneNodeList SceneNodeCollection
shadowCameraLightMapping Light>.Dictionary
shadowCasterAABBQuery AxisAlignedBoxRegionSceneQuery
shadowCasterList List
shadowCasterPlainBlackPass Pass
shadowCasterQueryListener ShadowCasterSceneQueryListener
shadowCasterSphereQuery SphereRegionSceneQuery
shadowColor ColorEx
shadowDebugPass Pass
shadowDirLightExtrudeDist float
shadowFarDistance float
shadowFarDistanceSquared float
shadowIndexBuffer HardwareIndexBuffer
shadowIndexBufferSize int
shadowMaterialInitDone bool
shadowModulativePass Pass
shadowReceiverPass Pass
shadowStencilPass Pass
shadowTechnique ShadowTechnique
shadowTextureCameras List
shadowTextureCasterMaterial string
shadowTextureConfigDirty bool
shadowTextureConfigList List
shadowTextureCount ushort
shadowTextureCustomCasterFPParams GpuProgramParameters
shadowTextureCustomCasterFragmentProgram string
shadowTextureCustomCasterPass Pass
shadowTextureCustomCasterVPParams GpuProgramParameters
shadowTextureCustomCasterVertexProgram string
shadowTextureCustomReceiverFPParams GpuProgramParameters
shadowTextureCustomReceiverFragmentProgram string
shadowTextureCustomReceiverPass Pass
shadowTextureCustomReceiverVPParams GpuProgramParameters
shadowTextureCustomReceiverVertexProgram string
shadowTextureFadeEnd float
shadowTextureFadeStart float
shadowTextureFormat PixelFormat
shadowTextureOffset float
shadowTextureReceiverMaterial string
shadowTextureSelfShadow bool
shadowTextureSize ushort
shadowTextures List
shadowUseInfiniteFarPlane bool
showBoundingBoxes bool
showDebugShadows bool
skyBoxEntities Entity[]
skyBoxNode SceneNode
skyBoxOrientation Quaternion
skyDomeEntities Entity[]
skyDomeNode SceneNode
skyDomeOrientation Quaternion
skyPlane Plane
skyPlaneEntity Entity
skyPlaneNode SceneNode
specialCaseRenderQueueList SpecialCaseRenderQueue
staticGeometryList StaticGeometry>.Dictionary
suppressRenderStateChanges bool
suppressShadows bool
targetRenderSystem RenderSystem
visibilityMask ulong
worldGeometryRenderQueueId RenderQueueGroupID
xform Matrix4[]

Открытые методы

Метод Описание
ClearScene ( ) : void

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.

CreateAABBRegionQuery ( ) : AxisAlignedBoxRegionSceneQuery

Creates a AxisAlignedBoxRegionSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a AxisAlignedBox region.

CreateAABBRegionQuery ( AxisAlignedBox box ) : AxisAlignedBoxRegionSceneQuery

Creates a AxisAlignedBoxRegionSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a AxisAlignedBox region.

CreateAABBRegionQuery ( AxisAlignedBox box, uint mask ) : AxisAlignedBoxRegionSceneQuery

Creates a AxisAlignedBoxRegionSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a AxisAlignedBox region.

CreateAnimation ( string name, float length ) : Animation

Creates an animation which can be used to animate scene nodes.

An animation is a collection of 'tracks' which over time change the position / orientation of Node objects. In this case, the animation will likely have tracks to modify the position / orientation of SceneNode objects, e.g. to make objects move along a path.

You don't need to use an Animation object to move objects around - you can do it yourself using the methods of the Node in your application. However, when you need relatively complex scripted animation, this is the class to use since it will interpolate between keyframes for you and generally make the whole process easier to manage.

A single animation can affect multiple Node objects (each AnimationTrack affects a single Node). In addition, through animation blending a single Node can be affected by multiple animations, although this is more useful when performing skeletal animation (see Skeleton.CreateAnimation).

CreateAnimationState ( string animationName ) : AnimationState

Create an AnimationState object for managing application of animations.

You can create Animation objects for animating SceneNode obejcts using the CreateAnimation method. However, in order to actually apply those animations you have to call methods on Node and Animation in a particular order (namely Node.ResetToInitialState and Animation.Apply). To make this easier and to help track the current time position of animations, the AnimationState object is provided.

So if you don't want to control animation application manually, call this method, update the returned object as you like every frame and let SceneManager apply the animation state for you.

Remember, AnimationState objects are disabled by default at creation time. Turn them on when you want them using their Enabled property.

Note that any SceneNode affected by this automatic animation will have it's state reset to it's initial position before application of the animation. Unless specifically modified using Node.SetInitialState the Node assumes it's initial state is at the origin. If you want the base state of the SceneNode to be elsewhere, make your changes to the node using the standard transform methods, then call SetInitialState to 'bake' this reference position into the node.

CreateBillboardSet ( string name ) : BillboardSet

Overloaded method.

CreateBillboardSet ( string name, int poolSize ) : BillboardSet

Creates a billboard set which can be uses for particles, sprites, etc.

CreateCamera ( string name ) : Camera

Creates a camera to be managed by this scene manager.

This camera can be added to the scene at a later time using the AttachObject method of the SceneNode class.

CreateEntity ( string name, Axiom.Core.Mesh mesh ) : Entity

Create an Entity (instance of a discrete mesh).

CreateEntity ( string name, PrefabEntity prefab ) : Entity

Create an Entity (instance of a discrete mesh).

CreateEntity ( string name, string meshName ) : Entity

Create an Entity (instance of a discrete mesh).

CreateIntersectionQuery ( ) : IntersectionSceneQuery

Creates an IntersectionSceneQuery for this scene manager.

This method creates a new instance of a query object for locating intersecting objects. See SceneQuery and IntersectionSceneQuery for full details.

CreateIntersectionQuery ( uint mask ) : IntersectionSceneQuery

Creates an IntersectionSceneQuery for this scene manager.

This method creates a new instance of a query object for locating intersecting objects. See SceneQuery and IntersectionSceneQuery for full details.

CreateLight ( string name ) : Light

Creates a light that will be managed by this scene manager.

Lights can either be in a fixed position and independent of the scene graph, or they can be attached to SceneNodes so they derive their position from the parent node. Either way, they are created using this method so that the SceneManager manages their existence.

CreateManualObject ( string name ) : ManualObject

Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface.

CreateMovableObject ( string name, string typeName, NamedParameterList para ) : Axiom.Core.MovableObject
CreateMovableText ( string name, string caption, string fontName ) : MovableText

Create MovableText, 3D floating text which can me moved around your scene

CreateOverlay ( string name, int zorder ) : Overlay

Creates a new Overlay.

Overlays can be used to render heads-up-displays (HUDs), menu systems, cockpits and any other 2D or 3D object you need to appear above the rest of the scene. See the Overlay class for more information.

NOTE: after creation, the Overlay is initially hidden. You can create as many overlays as you like ready to be displayed whenever. Just call Overlay.Show to display the overlay.

CreatePlaneBoundedVolumeQuery ( ) : PlaneBoundedVolumeListSceneQuery

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a PlaneBoundedVolumes region.

CreatePlaneBoundedVolumeQuery ( PlaneBoundedVolumeList volumes ) : PlaneBoundedVolumeListSceneQuery

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a PlaneBoundedVolumes region.

CreatePlaneBoundedVolumeQuery ( PlaneBoundedVolumeList volumes, uint mask ) : PlaneBoundedVolumeListSceneQuery

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a PlaneBoundedVolumes region.

CreateRayQuery ( ) : RaySceneQuery

Creates a query to return objects found along the ray.

CreateRayQuery ( Ray ray ) : RaySceneQuery

Creates a query to return objects found along the ray.

CreateRayQuery ( Ray ray, uint mask ) : RaySceneQuery

Creates a query to return objects found along the ray.

CreateRibbonTrail ( string name ) : RibbonTrail
CreateSceneNode ( ) : SceneNode

Creates an instance of a SceneNode.

Note that this does not add the SceneNode to the scene hierarchy. This method is for convenience, since it allows an instance to be created for which the SceneManager is responsible for allocating and releasing memory, which is convenient in complex scenes.

To include the returned SceneNode in the scene, use the AddChild method of the SceneNode which is to be it's parent.

Note that this method takes no parameters, and the node created is unnamed (it is actually given a generated name, which you can retrieve if you want). If you wish to create a node with a specific name, call the alternative method which takes a name parameter.

CreateSceneNode ( string name ) : SceneNode

Creates an instance of a SceneNode with a given name.

Note that this does not add the SceneNode to the scene hierarchy. This method is for convenience, since it allows an instance to be created for which the SceneManager is responsible for allocating and releasing memory, which is convenient in complex scenes.

To include the returned SceneNode in the scene, use the AddChild method of the SceneNode which is to be it's parent.

Note that this method takes a name parameter, which makes the node easier to retrieve directly again later.

CreateSphereRegionQuery ( ) : SphereRegionSceneQuery

Creates a SphereRegionSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a spherical region.

CreateSphereRegionQuery ( Sphere sphere ) : SphereRegionSceneQuery

Creates a SphereRegionSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a spherical region.

CreateSphereRegionQuery ( Sphere sphere, uint mask ) : SphereRegionSceneQuery

Creates a SphereRegionSceneQuery for this scene manager.

This method creates a new instance of a query object for this scene manager, for querying for objects within a spherical region.

CreateStaticGeometry ( string name, int logLevel ) : StaticGeometry

Creates a StaticGeometry instance suitable for use with this SceneManager.

StaticGeometry is a way of batching up geometry into a more efficient form at the expense of being able to move it. Please read the StaticGeometry class documentation for full information.

DestroyAllAnimationStates ( ) : void

Removes all AnimationStates created using this SceneManager.

DestroyAllAnimations ( ) : void

Removes all animations created using this SceneManager.

DestroyAllCameras ( ) : void

Destroy all cameras managed by this SceneManager Method added with MovableObject Factories.

DestroyAllMovableObjects ( ) : void
DestroyAllMovableObjectsByType ( string typeName ) : void
DestroyAllOverlays ( ) : void

Destroys all the overlays.

DestroyAllStaticGeometry ( ) : void

Destroy all StaticGeometry instances.

DestroyAnimation ( string name ) : void

Destroys an Animation.

DestroyAnimationState ( string name ) : void

Destroys an AnimationState.

DestroyCamera ( Camera camera ) : void
DestroyMovableObject ( Axiom.Core.MovableObject m ) : void
DestroyMovableObject ( string name, string typeName ) : void
DestroyOverlay ( string name ) : void

Destroys the named Overlay.

DestroySceneNode ( SceneNode node ) : void

Destroys and removes a node from the scene.

DestroySceneNode ( string name ) : void

Destroys and removes a node from the scene.

DestroyStaticGeometry ( StaticGeometry geom ) : void

Remove & destroy a StaticGeometry instance.

DestroyStaticGeometry ( string name ) : void

Remove & destroy a StaticGeometry instance.

EstimateWorldGeometry ( Stream stream ) : int

Estimate the number of loading stages required to load the named world geometry.

Operates just like the version of this method which takes a filename, but operates on a stream instead. Note that since the stream is updated, you'll need to reset the stream or reopen it when it comes to loading it for real.

EstimateWorldGeometry ( Stream stream, string typeName ) : int

Estimates the world geometry.

Operates just like the version of this method which takes a filename, but operates on a stream instead. Note that since the stream is updated, you'll need to reset the stream or reopen it when it comes to loading it for real.

EstimateWorldGeometry ( string fileName ) : int

Estimate the number of loading stages required to load the named world geometry.

This method should be overridden by SceneManagers that provide custom world geometry that can take some time to load. They should return from this method a count of the number of stages of progress they can report on whilst loading. During real loading (setWorldGeomtry), they should call exactly that number of times when loading the geometry for real.

ExtractAllMovableObjectsByType ( string typeName ) : void
ExtractMovableObject ( Axiom.Core.MovableObject m ) : void
ExtractMovableObject ( string name, string typeName ) : void
FindVisibleObjects ( Camera camera, bool onlyShadowCasters ) : void

Internal method which parses the scene to find visible objects to render.

If you're implementing a custom scene manager, this is the most important method to override since it's here you can apply your custom world partitioning scheme. Once you have added the appropriate objects to the render queue, you can let the default SceneManager objects RenderVisibleObjects handle the actual rendering of the objects you pick.

Any visible objects will be added to a rendering queue, which is indexed by material in order to ensure objects with the same material are rendered together to minimise render state changes.

GetAnimation ( string name ) : Animation

Retreives the animation with the specified name.

GetAnimationState ( string name ) : AnimationState

Retreives the AnimationState with the specified name.

GetBillboardSet ( string name ) : BillboardSet

Retreives the BillboardSet with the specified name.

GetCamera ( string name ) : Camera

Retreives the camera with the specified name.

GetEntity ( string name ) : Entity

Retreives the scene node with the specified name.

GetLight ( string name ) : Light

Retreives the light with the specified name.

GetManualObject ( string name ) : ManualObject

Retrieves the named ManualObject.

GetMaterial ( System.UInt64 handle ) : Material

Returns the material with the specified handle.

GetMaterial ( string name ) : Material

Returns the material with the specified name.

GetMovableObject ( string name, string typeName ) : Axiom.Core.MovableObject
GetMovableObjectCollection ( string typeName ) : Axiom.Collections.MovableObjectCollection
GetMovableText ( string name ) : MovableText

Retrieves the named MovableText.

GetOverlay ( string name ) : Overlay

Gets a the named Overlay, previously created using CreateOverlay.

GetRenderQueue ( ) : RenderQueue

Retrieves the internal render queue.

GetRibbonTrail ( string name ) : RibbonTrail
GetSceneNode ( string name ) : SceneNode

Retreives the scene node with the specified name.

GetStaticGeometry ( string name ) : StaticGeometry

Retrieve a previously created StaticGeometry instance.

GetSuggestedViewpoint ( bool random ) : ViewPoint

Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed.

Typically this method returns the origin unless a) world geometry has been loaded using SceneManager.LoadWorldGeometry and b) that world geometry has suggested 'start' points. If there is more than one viewpoint which the scene manager can suggest, it will always suggest the first one unless the random parameter is true.

HasMovableObject ( string name, string typeName ) : bool
HasStaticGeometry ( string name ) : bool

Returns whether a static geometry instance with the given name exists. */

InjectMovableObject ( MovableObject m ) : void
InjectRenderWithPass ( Pass pass, IRenderable rend ) : void
InjectRenderWithPass ( Pass pass, IRenderable rend, bool shadowDerivation ) : void

Render something as if it came from the current queue.

LoadWorldGeometry ( string fileName ) : void

Loads the source of the 'world' geometry, i.e. the large, mainly static geometry making up the world e.g. rooms, landscape etc.

Depending on the type of SceneManager (subclasses will be specialized for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a filename to this method and it will attempt to load the world-level geometry for use. If you try to load an inappropriate type of world data an exception will be thrown. The default SceneManager cannot handle any sort of world geometry and so will always throw an exception. However subclasses like BspSceneManager can load particular types of world geometry e.g. "q3dm1.bsp".

ManualRender ( RenderOperation op, Pass pass, Viewport vp, Matrix4 worldMatrix, Matrix4 viewMatrix, Matrix4 projMatrix ) : void
ManualRender ( RenderOperation op, Pass pass, Viewport vp, Matrix4 worldMatrix, Matrix4 viewMatrix, Matrix4 projMatrix, bool doBeginEndFrame ) : void

Manual rendering method, for advanced users only.

This method allows you to send rendering commands through the pipeline on demand, bypassing any normal world processing. You should only use this if you really know what you're doing; the engine does lots of things for you that you really should let it do. However, there are times where it may be useful to have this manual interface, for example overlaying something on top of the scene.

Because this is an instant rendering method, timing is important. The best time to call it is from a RenderTarget event handler.

Don't call this method a lot, it's designed for rare (1 or 2 times per frame) use. Calling it regularly per frame will cause frame rate drops!

OverrideRootSceneNode ( SceneNode node ) : void

If set, only the selected node is rendered. To render all nodes, set to null.

PopulateLightList ( Vector3 position, float radius, LightList destList ) : void

Populate a light list with an ordered set of the lights which are closest

Note that since directional lights have no position, they are always considered closer than any point lights and as such will always take precedence.

Subclasses of the default SceneManager may wish to take into account other issues such as possible visibility of the light if that information is included in their data structures. This basic scenemanager simply orders by distance, eliminating those lights which are out of range.

The number of items in the list max exceed the maximum number of lights supported by the renderer, but the extraneous ones will never be used. In fact the limit will be imposed by Pass::getMaxSimultaneousLights.

PrepareWorldGeometry ( Stream stream, string typeName ) : void

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.

Depending on the type of SceneManager (subclasses will be specialised for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a stream to this method and it will attempt to load the world-level geometry for use. If the manager can only handle one input format the typeName parameter is not required. The stream passed will be read (and it's state updated).

PrepareWorldGeometry ( string filename ) : void

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.

Depending on the type of SceneManager (subclasses will be specialised for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a filename to this method and it will attempt to load the world-level geometry for use. If you try to load an inappropriate type of world data an exception will be thrown. The default SceneManager cannot handle any sort of world geometry and so will always throw an exception. However subclasses like BspSceneManager can load particular types of world geometry e.g. "q3dm1.bsp".

RekeySceneNode ( string oldName, SceneNode node ) : void
RemoveAllBillboardSets ( ) : void

Removes all billboardsets from the scene.

RemoveAllCameras ( ) : void

Removes all cameras from the scene.

RemoveAllEntities ( ) : void

Removes all entities from the scene.

RemoveAllLights ( ) : void

Removes all lights from the scene.

RemoveAllRibonTrails ( ) : void
RemoveBillboardSet ( BillboardSet billboardSet ) : void

Removes the specified BillboardSet from the scene.

This method removes a previously added BillboardSet from the scene.

RemoveBillboardSet ( string name ) : void

Removes a BillboardSet from the scene with the specified name.

This method removes a previously added BillboardSet from the scene.

RemoveCamera ( Camera camera ) : void

Removes the specified camera from the scene.

This method removes a previously added camera from the scene.

RemoveCamera ( string name ) : void

Removes a camera from the scene with the specified name.

This method removes a previously added camera from the scene.

RemoveEntity ( Entity entity ) : void

Removes the specified entity from the scene.

RemoveEntity ( string name ) : void

Removes the entity with the specified name from the scene.

RemoveLight ( Light light ) : void

Removes the specified light from the scene.

This method removes a previously added light from the scene.

RemoveLight ( string name ) : void

Removes a light from the scene with the specified name.

This method removes a previously added light from the scene.

RemoveRibbonTrail ( RibbonTrail ribbonTrail ) : void
RemoveRibbonTrail ( string name ) : void
ResetViewProjectionMode ( ) : void
RestoreRootSceneNode ( ) : void
SceneManager ( string name ) : System
SetFog ( FogMode mode, ColorEx color, float density ) : void

SetFog ( FogMode mode, ColorEx color, float density, float linearStart, float linearEnd ) : void

Sets the fogging mode applied to the scene.

This method sets up the scene-wide fogging effect. These settings apply to all geometry rendered, UNLESS the material with which it is rendered has it's own fog settings (see Material.SetFog).

SetPass ( Pass pass ) : Pass

If only the first parameter is supplied

SetPass ( Pass pass, bool evenIfSuppressed ) : Pass

If only the first two parameters are supplied

SetPass ( Pass pass, bool evenIfSuppressed, bool shadowDerivation ) : Pass

Internal method for setting up the renderstate for a rendering pass.

SetShadowTextureSettings ( ushort size, ushort count ) : void
SetShadowTextureSettings ( ushort size, ushort count, PixelFormat format ) : void

Sets the size and count of textures used in texture-based shadows.

See ShadowTextureSize and ShadowTextureCount for details, this method just allows you to change both at once, which can save on reallocation if the textures have already been created.

SetSkyBox ( bool enable, string materialName, float distance ) : void

Overloaded method.

SetSkyBox ( bool enable, string materialName, float distance, bool drawFirst, Quaternion orientation, string groupName ) : void

Enables / disables a 'sky box' i.e. a 6-sided box at constant distance from the camera representing the sky.

You could create a sky box yourself using the standard mesh and entity methods, but this creates a plane which the camera can never get closer or further away from - it moves with the camera. (you could create this effect by creating a world box which was attached to the same SceneNode as the Camera too, but this would only apply to a single camera whereas this skybox applies to any camera using this scene manager).

The material you use for the skybox can either contain layers which are single textures, or they can be cubic textures, i.e. made up of 6 images, one for each plane of the cube. See the TextureLayer class for more information.

SetSkyDome ( bool isEnabled, string materialName, float curvature, float tiling ) : void

SetSkyDome ( bool isEnabled, string materialName, float curvature, float tiling, float distance, bool drawFirst, Quaternion orientation, string groupName ) : void

SetSkyPlane ( bool enable, Plane plane, string materialName ) : void

Overload.

SetSkyPlane ( bool enable, Plane plane, string materialName, float scale, float tiling, bool drawFirst, float bow, string groupName ) : void

Enables / disables a 'sky plane' i.e. a plane at constant distance from the camera representing the sky.

SetWorldGeometry ( Stream stream ) : void
SetWorldGeometry ( Stream stream, string typeName ) : void
SetWorldGeometry ( string filename ) : void

Защищенные методы

Метод Описание
CreateShadowTextures ( ushort size, ushort count, PixelFormat format ) : void

Internal method for creating shadow textures (texture-based shadows).

CreateSkyDomePlane ( BoxPlane plane, float curvature, float tiling, float distance, Quaternion orientation, string groupName ) : Axiom.Core.Mesh

CreateSkyboxPlane ( BoxPlane plane, float distance, Quaternion orientation, string groupName ) : Axiom.Core.Mesh

Utility method for creating the planes of a skybox.

DeriveShadowCasterPass ( Pass pass ) : Pass

Internal method for turning a regular pass into a shadow caster pass.

This is only used for texture shadows, basically we're trying to ensure that objects are rendered solid black. This method will usually return the standard solid black pass for all fixed function passes, but will merge in a vertex program and fudge the AutpoParamDataSource to set black lighting for passes with vertex programs.

DeriveShadowReceiverPass ( Pass pass ) : Pass

Internal method for turning a regular pass into a shadow receiver pass.

This is only used for texture shadows, basically we're trying to ensure that objects are rendered with a projective texture. This method will usually return a standard single-texture pass for all fixed function passes, but will merge in a vertex program for passes with vertex programs.

DestroyShadowTextures ( ) : void
EnsureShadowTexturesCreated ( ) : void
FindLightsAffectingFrustum ( Camera camera ) : void

Internal method for locating a list of lights which could be affecting the frustum.

Custom scene managers are encouraged to override this method to make use of their scene partitioning scheme to more efficiently locate lights, and to eliminate lights which may be occluded by word geometry.

FindShadowCastersForLight ( Light light, Camera camera ) : IList

Internal method for locating a list of shadow casters which could be affecting the frustum for a given light.

Custom scene managers are encouraged to override this method to add optimizations, and to add their own custom shadow casters (perhaps for world geometry)

InitRenderQueue ( ) : void

Internal method for initializing the render queue.

Subclasses can use this to install their own RenderQueue implementation.

InitShadowVolumeMaterials ( ) : void

Internal method for setting up materials for shadows.

NotifyLightsDirty ( ) : void

Advance method to increase the lights dirty counter due lights changed.

Scene manager tracking lights that affecting the frustum, if changes detected (the changes includes light list itself and the light's position and attenuation range), then increase the lights dirty counter. For some reason, you can call this method to force whole scene objects re-populate their light list. But near in mind, call to this method will harm performance, so should avoid if possible.

OnRenderQueueEnded ( RenderQueueGroupID group, string invocation ) : bool

Used to first the QueueEnded event.

OnRenderQueueStarted ( RenderQueueGroupID group, string invocation ) : bool

Used to first the QueueStarted event.

PrepareShadowTextures ( Camera camera, Viewport viewPort ) : void

Internal method for preparing shadow textures ready for use in a regular render

RenderAdditiveStencilShadowedQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group with the added complexity of additive stencil shadows.

RenderBasicQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group in the ordinary way

RenderModulativeStencilShadowedQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group with the added complexity of modulative stencil shadows.

RenderModulativeTextureShadowedQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group with the added complexity of modulative texture shadows.

RenderQueueGroupObjects ( RenderQueueGroup group ) : void

Render the objects in a given queue group.

RenderScene ( Camera camera, Viewport viewport, bool showOverlays ) : void

Prompts the class to send its contents to the renderer.

This method prompts the scene manager to send the contents of the scene it manages to the rendering pipeline, possibly preceded by some sorting, culling or other scene management tasks. Note that this method is not normally called directly by the user application; it is called automatically by the engine's rendering loop.

RenderShadowVolumesToStencil ( Light light, Camera camera ) : void

Internal method for rendering all the objects for a given light into the stencil buffer.

RenderSingleObject ( IRenderable renderable, Pass pass, bool doLightIteration ) : void
RenderSingleObject ( IRenderable renderable, Pass pass, bool doLightIteration, LightList manualLightList ) : void

Internal utility method for rendering a single object.

RenderSingleShadowVolumeToStencil ( ShadowRenderable sr, bool zfail, bool stencil2sided, LightList manualLightList, bool isSecondPass ) : void

Render a single shadow volume to the stencil buffer.

RenderSolidObjects ( System list, bool doLightIteration ) : void
RenderSolidObjects ( System list, bool doLightIteration, LightList manualLightList ) : void

Renders a set of solid objects.

RenderTextureShadowCasterQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group rendering only shadow casters.

RenderTextureShadowReceiverQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group rendering only shadow receivers.

RenderTransparentObjects ( List list, bool doLightIteration ) : void
RenderTransparentObjects ( List list, bool doLightIteration, LightList manualLightList ) : void

Renders a set of transparent objects.

RenderTransparentShadowCasterObjects ( List list, bool doLightIteration, LightList manualLightList ) : void

Render those objects in the transparent pass list which have shadow casting forced on

This function is intended to be used to render the shadows of transparent objects which have transparency_casts_shadows set to 'on' in their material

RenderVisibleObjects ( ) : void

Sends visible objects found in FindVisibleObjects to the rendering engine.

SetShadowVolumeStencilState ( bool secondPass, bool zfail, bool twoSided ) : void

Internal utility method for setting stencil state for rendering shadow volumes.

SetViewport ( Viewport viewport ) : void

Internal method for setting the destination viewport for the next render.

UpdateSceneGraph ( Camera camera ) : void

Internal method for updating the scene graph ie the tree of SceneNode instances managed by this class.

This must be done before issuing objects to the rendering pipeline, since derived transformations from parent nodes are not updated until required. This SceneManager is a basic implementation which simply updates all nodes from the root. This ensures the scene is up to date but requires all the nodes to be updated even if they are not visible. Subclasses could trim this such that only potentially visible nodes are updated.

UseRenderableViewProjection ( IRenderable renderable ) : void

Protected method used by RenderVisibleObjects to deal with renderables which override the camera's own view / projection materices.

ValidatePassForRendering ( Pass pass ) : bool

Internal method to validate whether a Pass should be allowed to render.

Called just before a pass is about to be used for rendering a group to allow the SceneManager to omit it if required. A return value of false skips this pass.

ValidateRenderableForRendering ( Pass pass, IRenderable renderable ) : bool

Internal method to validate whether a Renderable should be allowed to render.

Called just before a pass is about to be used for rendering a Renderable to allow the SceneManager to omit it if required. A return value of false skips it.

dispose ( bool disposeManagedResources ) : void

Приватные методы

Метод Описание
ApplySceneAnimations ( ) : void

Internal method for applying animations to scene nodes.

Uses the internally stored AnimationState objects to apply animation to SceneNodes.

CheckShadowCasters ( IList casters, PlaneBoundedVolume nearClipVol, Light light, bool extrudeInSoftware, bool finiteExtrude, bool zfailAlgo, Camera camera, float extrudeDistance, bool stencil2sided, LightList tmpLightList ) : void
DestroySceneNode ( SceneNode node, bool removeFromParent ) : void

Internal method to destroy and remove a node from the scene. Do not remove from parent by option.

EnableHardwareShadowExtrusion ( Light light, bool finiteExtrude ) : void
InitShadowCasterPass ( ) : void
InitShadowDebugPass ( ) : void
InitShadowModulativePass ( ) : void
InitShadowReceiverPass ( ) : void
InitShadowStencilPass ( ) : void
NotifyAutoTrackingSceneNode ( SceneNode node, bool autoTrack ) : void

Internal method for notifying the manager that a SceneNode is autotracking.

PrepareRenderQueue ( ) : void
QueueSkiesForRendering ( Camera camera ) : void

Internal method for queueing the sky objects with the params as previously set through SetSkyBox, SetSkyPlane and SetSkyDome.

RenderAdditiveTextureShadowedQueueGroupObjects ( RenderQueueGroup group ) : void

Render a group with the added complexity of additive texture shadows.

UpdateGpuProgramParameters ( Pass pass ) : void
UpdateRenderQueueGroupSplitOptions ( RenderQueueGroup group, bool suppressShadows, bool suppressRenderState ) : void
UpdateRenderQueueSplitOptions ( ) : void

Описание методов

ClearScene() публичный метод

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.
public ClearScene ( ) : void
Результат void

CreateAABBRegionQuery() публичный метод

Creates a AxisAlignedBoxRegionSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a AxisAlignedBox region.
public CreateAABBRegionQuery ( ) : AxisAlignedBoxRegionSceneQuery
Результат AxisAlignedBoxRegionSceneQuery

CreateAABBRegionQuery() публичный метод

Creates a AxisAlignedBoxRegionSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a AxisAlignedBox region.
public CreateAABBRegionQuery ( AxisAlignedBox box ) : AxisAlignedBoxRegionSceneQuery
box Axiom.Math.AxisAlignedBox AxisAlignedBox to use for the region query.
Результат AxisAlignedBoxRegionSceneQuery

CreateAABBRegionQuery() публичный метод

Creates a AxisAlignedBoxRegionSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a AxisAlignedBox region.
public CreateAABBRegionQuery ( AxisAlignedBox box, uint mask ) : AxisAlignedBoxRegionSceneQuery
box Axiom.Math.AxisAlignedBox AxisAlignedBox to use for the region query.
mask uint Custom user defined flags to use for the query.
Результат AxisAlignedBoxRegionSceneQuery

CreateAnimation() публичный метод

Creates an animation which can be used to animate scene nodes.
An animation is a collection of 'tracks' which over time change the position / orientation of Node objects. In this case, the animation will likely have tracks to modify the position / orientation of SceneNode objects, e.g. to make objects move along a path.

You don't need to use an Animation object to move objects around - you can do it yourself using the methods of the Node in your application. However, when you need relatively complex scripted animation, this is the class to use since it will interpolate between keyframes for you and generally make the whole process easier to manage.

A single animation can affect multiple Node objects (each AnimationTrack affects a single Node). In addition, through animation blending a single Node can be affected by multiple animations, although this is more useful when performing skeletal animation (see Skeleton.CreateAnimation).

public CreateAnimation ( string name, float length ) : Animation
name string
length float
Результат Axiom.Animating.Animation

CreateAnimationState() публичный метод

Create an AnimationState object for managing application of animations.

You can create Animation objects for animating SceneNode obejcts using the CreateAnimation method. However, in order to actually apply those animations you have to call methods on Node and Animation in a particular order (namely Node.ResetToInitialState and Animation.Apply). To make this easier and to help track the current time position of animations, the AnimationState object is provided.

So if you don't want to control animation application manually, call this method, update the returned object as you like every frame and let SceneManager apply the animation state for you.

Remember, AnimationState objects are disabled by default at creation time. Turn them on when you want them using their Enabled property.

Note that any SceneNode affected by this automatic animation will have it's state reset to it's initial position before application of the animation. Unless specifically modified using Node.SetInitialState the Node assumes it's initial state is at the origin. If you want the base state of the SceneNode to be elsewhere, make your changes to the node using the standard transform methods, then call SetInitialState to 'bake' this reference position into the node.

public CreateAnimationState ( string animationName ) : AnimationState
animationName string
Результат AnimationState

CreateBillboardSet() публичный метод

Overloaded method.
public CreateBillboardSet ( string name ) : BillboardSet
name string
Результат BillboardSet

CreateBillboardSet() публичный метод

Creates a billboard set which can be uses for particles, sprites, etc.
public CreateBillboardSet ( string name, int poolSize ) : BillboardSet
name string
poolSize int
Результат BillboardSet

CreateCamera() публичный метод

Creates a camera to be managed by this scene manager.
This camera can be added to the scene at a later time using the AttachObject method of the SceneNode class.
public CreateCamera ( string name ) : Camera
name string
Результат Camera

CreateEntity() публичный метод

Create an Entity (instance of a discrete mesh).
public CreateEntity ( string name, Axiom.Core.Mesh mesh ) : Entity
name string The name to be given to the entity (must be unique).
mesh Axiom.Core.Mesh The mesh to use.
Результат Entity

CreateEntity() публичный метод

Create an Entity (instance of a discrete mesh).
public CreateEntity ( string name, PrefabEntity prefab ) : Entity
name string The name to be given to the entity (must be unique).
prefab PrefabEntity The name of the mesh to load. Will be loaded if not already.
Результат Entity

CreateEntity() публичный метод

Create an Entity (instance of a discrete mesh).
public CreateEntity ( string name, string meshName ) : Entity
name string The name to be given to the entity (must be unique).
meshName string The name of the mesh to load. Will be loaded if not already.
Результат Entity

CreateIntersectionQuery() публичный метод

Creates an IntersectionSceneQuery for this scene manager.
This method creates a new instance of a query object for locating intersecting objects. See SceneQuery and IntersectionSceneQuery for full details.
public CreateIntersectionQuery ( ) : IntersectionSceneQuery
Результат IntersectionSceneQuery

CreateIntersectionQuery() публичный метод

Creates an IntersectionSceneQuery for this scene manager.
This method creates a new instance of a query object for locating intersecting objects. See SceneQuery and IntersectionSceneQuery for full details.
public CreateIntersectionQuery ( uint mask ) : IntersectionSceneQuery
mask uint The query mask to apply to this query; can be used to filter out certain objects.
Результат IntersectionSceneQuery

CreateLight() публичный метод

Creates a light that will be managed by this scene manager.
Lights can either be in a fixed position and independent of the scene graph, or they can be attached to SceneNodes so they derive their position from the parent node. Either way, they are created using this method so that the SceneManager manages their existence.
public CreateLight ( string name ) : Light
name string Name of the light to create.
Результат Light

CreateManualObject() публичный метод

Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface.
public CreateManualObject ( string name ) : ManualObject
name string /// The name to be given to the object (must be unique). ///
Результат ManualObject

CreateMovableObject() публичный метод

public CreateMovableObject ( string name, string typeName, NamedParameterList para ) : Axiom.Core.MovableObject
name string
typeName string
para NamedParameterList
Результат Axiom.Core.MovableObject

CreateMovableText() публичный метод

Create MovableText, 3D floating text which can me moved around your scene
public CreateMovableText ( string name, string caption, string fontName ) : MovableText
name string /// The name to be given to the object (must be unique). ///
caption string /// The text tyo display ///
fontName string /// The font to use for the text, must be already loaded as a resource. ///
Результат MovableText

CreateOverlay() публичный метод

Creates a new Overlay.

Overlays can be used to render heads-up-displays (HUDs), menu systems, cockpits and any other 2D or 3D object you need to appear above the rest of the scene. See the Overlay class for more information.

NOTE: after creation, the Overlay is initially hidden. You can create as many overlays as you like ready to be displayed whenever. Just call Overlay.Show to display the overlay.

public CreateOverlay ( string name, int zorder ) : Overlay
name string The name to give the overlay, must be unique.
zorder int The zorder of the overlay relative to it's peers, higher zorders appear on top of lower ones.
Результат Axiom.Overlays.Overlay

CreatePlaneBoundedVolumeQuery() публичный метод

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a PlaneBoundedVolumes region.
public CreatePlaneBoundedVolumeQuery ( ) : PlaneBoundedVolumeListSceneQuery
Результат PlaneBoundedVolumeListSceneQuery

CreatePlaneBoundedVolumeQuery() публичный метод

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a PlaneBoundedVolumes region.
public CreatePlaneBoundedVolumeQuery ( PlaneBoundedVolumeList volumes ) : PlaneBoundedVolumeListSceneQuery
volumes PlaneBoundedVolumeList PlaneBoundedVolumeList to use for the region query.
Результат PlaneBoundedVolumeListSceneQuery

CreatePlaneBoundedVolumeQuery() публичный метод

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a PlaneBoundedVolumes region.
public CreatePlaneBoundedVolumeQuery ( PlaneBoundedVolumeList volumes, uint mask ) : PlaneBoundedVolumeListSceneQuery
volumes PlaneBoundedVolumeList PlaneBoundedVolumeList to use for the region query.
mask uint Custom user defined flags to use for the query.
Результат PlaneBoundedVolumeListSceneQuery

CreateRayQuery() публичный метод

Creates a query to return objects found along the ray.
public CreateRayQuery ( ) : RaySceneQuery
Результат RaySceneQuery

CreateRayQuery() публичный метод

Creates a query to return objects found along the ray.
public CreateRayQuery ( Ray ray ) : RaySceneQuery
ray Axiom.Math.Ray Ray to use for the intersection query.
Результат RaySceneQuery

CreateRayQuery() публичный метод

Creates a query to return objects found along the ray.
public CreateRayQuery ( Ray ray, uint mask ) : RaySceneQuery
ray Axiom.Math.Ray Ray to use for the intersection query.
mask uint
Результат RaySceneQuery

CreateRibbonTrail() публичный метод

public CreateRibbonTrail ( string name ) : RibbonTrail
name string
Результат RibbonTrail

CreateSceneNode() публичный метод

Creates an instance of a SceneNode.
Note that this does not add the SceneNode to the scene hierarchy. This method is for convenience, since it allows an instance to be created for which the SceneManager is responsible for allocating and releasing memory, which is convenient in complex scenes.

To include the returned SceneNode in the scene, use the AddChild method of the SceneNode which is to be it's parent.

Note that this method takes no parameters, and the node created is unnamed (it is actually given a generated name, which you can retrieve if you want). If you wish to create a node with a specific name, call the alternative method which takes a name parameter.

public CreateSceneNode ( ) : SceneNode
Результат SceneNode

CreateSceneNode() публичный метод

Creates an instance of a SceneNode with a given name.
Note that this does not add the SceneNode to the scene hierarchy. This method is for convenience, since it allows an instance to be created for which the SceneManager is responsible for allocating and releasing memory, which is convenient in complex scenes.

To include the returned SceneNode in the scene, use the AddChild method of the SceneNode which is to be it's parent.

Note that this method takes a name parameter, which makes the node easier to retrieve directly again later.

public CreateSceneNode ( string name ) : SceneNode
name string
Результат SceneNode

CreateShadowTextures() защищенный метод

Internal method for creating shadow textures (texture-based shadows).
protected CreateShadowTextures ( ushort size, ushort count, PixelFormat format ) : void
size ushort
count ushort
format PixelFormat
Результат void

CreateSkyDomePlane() защищенный метод

protected CreateSkyDomePlane ( BoxPlane plane, float curvature, float tiling, float distance, Quaternion orientation, string groupName ) : Axiom.Core.Mesh
plane BoxPlane
curvature float
tiling float
distance float
orientation Axiom.Math.Quaternion
groupName string
Результат Axiom.Core.Mesh

CreateSkyboxPlane() защищенный метод

Utility method for creating the planes of a skybox.
protected CreateSkyboxPlane ( BoxPlane plane, float distance, Quaternion orientation, string groupName ) : Axiom.Core.Mesh
plane BoxPlane
distance float
orientation Axiom.Math.Quaternion
groupName string
Результат Axiom.Core.Mesh

CreateSphereRegionQuery() публичный метод

Creates a SphereRegionSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a spherical region.
public CreateSphereRegionQuery ( ) : SphereRegionSceneQuery
Результат SphereRegionSceneQuery

CreateSphereRegionQuery() публичный метод

Creates a SphereRegionSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a spherical region.
public CreateSphereRegionQuery ( Sphere sphere ) : SphereRegionSceneQuery
sphere Axiom.Math.Sphere Sphere to use for the region query.
Результат SphereRegionSceneQuery

CreateSphereRegionQuery() публичный метод

Creates a SphereRegionSceneQuery for this scene manager.
This method creates a new instance of a query object for this scene manager, for querying for objects within a spherical region.
public CreateSphereRegionQuery ( Sphere sphere, uint mask ) : SphereRegionSceneQuery
sphere Axiom.Math.Sphere Sphere to use for the region query.
mask uint Custom user defined flags to use for the query.
Результат SphereRegionSceneQuery

CreateStaticGeometry() публичный метод

Creates a StaticGeometry instance suitable for use with this SceneManager.
StaticGeometry is a way of batching up geometry into a more efficient form at the expense of being able to move it. Please read the StaticGeometry class documentation for full information.
public CreateStaticGeometry ( string name, int logLevel ) : StaticGeometry
name string The name to give the new object
logLevel int
Результат StaticGeometry

DeriveShadowCasterPass() защищенный метод

Internal method for turning a regular pass into a shadow caster pass.
This is only used for texture shadows, basically we're trying to ensure that objects are rendered solid black. This method will usually return the standard solid black pass for all fixed function passes, but will merge in a vertex program and fudge the AutpoParamDataSource to set black lighting for passes with vertex programs.
protected DeriveShadowCasterPass ( Pass pass ) : Pass
pass Axiom.Graphics.Pass
Результат Axiom.Graphics.Pass

DeriveShadowReceiverPass() защищенный метод

Internal method for turning a regular pass into a shadow receiver pass.
This is only used for texture shadows, basically we're trying to ensure that objects are rendered with a projective texture. This method will usually return a standard single-texture pass for all fixed function passes, but will merge in a vertex program for passes with vertex programs.
protected DeriveShadowReceiverPass ( Pass pass ) : Pass
pass Axiom.Graphics.Pass
Результат Axiom.Graphics.Pass

DestroyAllAnimationStates() публичный метод

Removes all AnimationStates created using this SceneManager.
public DestroyAllAnimationStates ( ) : void
Результат void

DestroyAllAnimations() публичный метод

Removes all animations created using this SceneManager.
public DestroyAllAnimations ( ) : void
Результат void

DestroyAllCameras() публичный метод

Destroy all cameras managed by this SceneManager Method added with MovableObject Factories.
public DestroyAllCameras ( ) : void
Результат void

DestroyAllMovableObjects() публичный метод

public DestroyAllMovableObjects ( ) : void
Результат void

DestroyAllMovableObjectsByType() публичный метод

public DestroyAllMovableObjectsByType ( string typeName ) : void
typeName string
Результат void

DestroyAllOverlays() публичный метод

Destroys all the overlays.
public DestroyAllOverlays ( ) : void
Результат void

DestroyAllStaticGeometry() публичный метод

Destroy all StaticGeometry instances.
public DestroyAllStaticGeometry ( ) : void
Результат void

DestroyAnimation() публичный метод

Destroys an Animation.
public DestroyAnimation ( string name ) : void
name string
Результат void

DestroyAnimationState() публичный метод

Destroys an AnimationState.
public DestroyAnimationState ( string name ) : void
name string
Результат void

DestroyCamera() публичный метод

public DestroyCamera ( Camera camera ) : void
camera Camera
Результат void

DestroyMovableObject() публичный метод

public DestroyMovableObject ( Axiom.Core.MovableObject m ) : void
m Axiom.Core.MovableObject
Результат void

DestroyMovableObject() публичный метод

public DestroyMovableObject ( string name, string typeName ) : void
name string
typeName string
Результат void

DestroyOverlay() публичный метод

Destroys the named Overlay.
public DestroyOverlay ( string name ) : void
name string
Результат void

DestroySceneNode() публичный метод

Destroys and removes a node from the scene.
public DestroySceneNode ( SceneNode node ) : void
node SceneNode A SceneNode
Результат void

DestroySceneNode() публичный метод

Destroys and removes a node from the scene.
public DestroySceneNode ( string name ) : void
name string
Результат void

DestroyShadowTextures() защищенный метод

protected DestroyShadowTextures ( ) : void
Результат void

DestroyStaticGeometry() публичный метод

Remove & destroy a StaticGeometry instance.
public DestroyStaticGeometry ( StaticGeometry geom ) : void
geom StaticGeometry
Результат void

DestroyStaticGeometry() публичный метод

Remove & destroy a StaticGeometry instance.
public DestroyStaticGeometry ( string name ) : void
name string
Результат void

EnsureShadowTexturesCreated() защищенный метод

protected EnsureShadowTexturesCreated ( ) : void
Результат void

EstimateWorldGeometry() публичный метод

Estimate the number of loading stages required to load the named world geometry.
Operates just like the version of this method which takes a filename, but operates on a stream instead. Note that since the stream is updated, you'll need to reset the stream or reopen it when it comes to loading it for real.
public EstimateWorldGeometry ( Stream stream ) : int
stream Stream Data stream containing data to load
Результат int

EstimateWorldGeometry() публичный метод

Estimates the world geometry.
Operates just like the version of this method which takes a filename, but operates on a stream instead. Note that since the stream is updated, you'll need to reset the stream or reopen it when it comes to loading it for real.
public EstimateWorldGeometry ( Stream stream, string typeName ) : int
stream Stream Data stream containing data to load
typeName string Identifies the type of world geometry /// contained in the stream - not required if this manager only /// supports one type of world geometry.
Результат int

EstimateWorldGeometry() публичный метод

Estimate the number of loading stages required to load the named world geometry.
This method should be overridden by SceneManagers that provide custom world geometry that can take some time to load. They should return from this method a count of the number of stages of progress they can report on whilst loading. During real loading (setWorldGeomtry), they should call exactly that number of times when loading the geometry for real.
public EstimateWorldGeometry ( string fileName ) : int
fileName string Name of the file.
Результат int

ExtractAllMovableObjectsByType() публичный метод

public ExtractAllMovableObjectsByType ( string typeName ) : void
typeName string
Результат void

ExtractMovableObject() публичный метод

public ExtractMovableObject ( Axiom.Core.MovableObject m ) : void
m Axiom.Core.MovableObject
Результат void

ExtractMovableObject() публичный метод

public ExtractMovableObject ( string name, string typeName ) : void
name string
typeName string
Результат void

FindLightsAffectingFrustum() защищенный метод

Internal method for locating a list of lights which could be affecting the frustum.
Custom scene managers are encouraged to override this method to make use of their scene partitioning scheme to more efficiently locate lights, and to eliminate lights which may be occluded by word geometry.
protected FindLightsAffectingFrustum ( Camera camera ) : void
camera Camera Camera to find lights within it's view.
Результат void

FindShadowCastersForLight() защищенный метод

Internal method for locating a list of shadow casters which could be affecting the frustum for a given light.
Custom scene managers are encouraged to override this method to add optimizations, and to add their own custom shadow casters (perhaps for world geometry)
protected FindShadowCastersForLight ( Light light, Camera camera ) : IList
light Light
camera Camera
Результат IList

FindVisibleObjects() публичный метод

Internal method which parses the scene to find visible objects to render.
If you're implementing a custom scene manager, this is the most important method to override since it's here you can apply your custom world partitioning scheme. Once you have added the appropriate objects to the render queue, you can let the default SceneManager objects RenderVisibleObjects handle the actual rendering of the objects you pick.

Any visible objects will be added to a rendering queue, which is indexed by material in order to ensure objects with the same material are rendered together to minimise render state changes.

public FindVisibleObjects ( Camera camera, bool onlyShadowCasters ) : void
camera Camera
onlyShadowCasters bool
Результат void

GetAnimation() публичный метод

Retreives the animation with the specified name.
public GetAnimation ( string name ) : Animation
name string
Результат Axiom.Animating.Animation

GetAnimationState() публичный метод

Retreives the AnimationState with the specified name.
public GetAnimationState ( string name ) : AnimationState
name string
Результат AnimationState

GetBillboardSet() публичный метод

Retreives the BillboardSet with the specified name.
public GetBillboardSet ( string name ) : BillboardSet
name string
Результат BillboardSet

GetCamera() публичный метод

Retreives the camera with the specified name.
public GetCamera ( string name ) : Camera
name string
Результат Camera

GetEntity() публичный метод

Retreives the scene node with the specified name.
public GetEntity ( string name ) : Entity
name string
Результат Entity

GetLight() публичный метод

Retreives the light with the specified name.
public GetLight ( string name ) : Light
name string
Результат Light

GetManualObject() публичный метод

Retrieves the named ManualObject.
/// Thrown if the names does not exists in the collection. ///
public GetManualObject ( string name ) : ManualObject
name string /// The name of the object to retrieve. ///
Результат ManualObject

GetMaterial() публичный метод

Returns the material with the specified handle.
public GetMaterial ( System.UInt64 handle ) : Material
handle System.UInt64 Handle of the material to retrieve.
Результат Axiom.Graphics.Material

GetMaterial() публичный метод

Returns the material with the specified name.
public GetMaterial ( string name ) : Material
name string Name of the material to retrieve.
Результат Axiom.Graphics.Material

GetMovableObject() публичный метод

public GetMovableObject ( string name, string typeName ) : Axiom.Core.MovableObject
name string
typeName string
Результат Axiom.Core.MovableObject

GetMovableObjectCollection() публичный метод

public GetMovableObjectCollection ( string typeName ) : Axiom.Collections.MovableObjectCollection
typeName string
Результат Axiom.Collections.MovableObjectCollection

GetMovableText() публичный метод

Retrieves the named MovableText.
/// Thrown if the names does not exists in the collection. ///
public GetMovableText ( string name ) : MovableText
name string /// The name of the object to retrieve. ///
Результат MovableText

GetOverlay() публичный метод

Gets a the named Overlay, previously created using CreateOverlay.
public GetOverlay ( string name ) : Overlay
name string
Результат Axiom.Overlays.Overlay

GetRenderQueue() публичный метод

Retrieves the internal render queue.
public GetRenderQueue ( ) : RenderQueue
Результат Axiom.Graphics.RenderQueue

GetRibbonTrail() публичный метод

public GetRibbonTrail ( string name ) : RibbonTrail
name string
Результат RibbonTrail

GetSceneNode() публичный метод

Retreives the scene node with the specified name.
public GetSceneNode ( string name ) : SceneNode
name string
Результат SceneNode

GetStaticGeometry() публичный метод

Retrieve a previously created StaticGeometry instance.
public GetStaticGeometry ( string name ) : StaticGeometry
name string
Результат StaticGeometry

GetSuggestedViewpoint() публичный метод

Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed.
Typically this method returns the origin unless a) world geometry has been loaded using SceneManager.LoadWorldGeometry and b) that world geometry has suggested 'start' points. If there is more than one viewpoint which the scene manager can suggest, it will always suggest the first one unless the random parameter is true.
public GetSuggestedViewpoint ( bool random ) : ViewPoint
random bool /// 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. ///
Результат ViewPoint

HasMovableObject() публичный метод

public HasMovableObject ( string name, string typeName ) : bool
name string
typeName string
Результат bool

HasStaticGeometry() публичный метод

Returns whether a static geometry instance with the given name exists. */
public HasStaticGeometry ( string name ) : bool
name string
Результат bool

InitRenderQueue() защищенный метод

Internal method for initializing the render queue.
Subclasses can use this to install their own RenderQueue implementation.
protected InitRenderQueue ( ) : void
Результат void

InitShadowVolumeMaterials() защищенный метод

Internal method for setting up materials for shadows.
protected InitShadowVolumeMaterials ( ) : void
Результат void

InjectMovableObject() публичный метод

public InjectMovableObject ( MovableObject m ) : void
m MovableObject
Результат void

InjectRenderWithPass() публичный метод

public InjectRenderWithPass ( Pass pass, IRenderable rend ) : void
pass Pass
rend IRenderable
Результат void

InjectRenderWithPass() публичный метод

Render something as if it came from the current queue.
public InjectRenderWithPass ( Pass pass, IRenderable rend, bool shadowDerivation ) : void
pass Pass Material pass to use for setting up this quad.
rend IRenderable Renderable to render
shadowDerivation bool Whether passes should be replaced with shadow caster / receiver passes
Результат void

LoadWorldGeometry() публичный метод

Loads the source of the 'world' geometry, i.e. the large, mainly static geometry making up the world e.g. rooms, landscape etc.
Depending on the type of SceneManager (subclasses will be specialized for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a filename to this method and it will attempt to load the world-level geometry for use. If you try to load an inappropriate type of world data an exception will be thrown. The default SceneManager cannot handle any sort of world geometry and so will always throw an exception. However subclasses like BspSceneManager can load particular types of world geometry e.g. "q3dm1.bsp".
public LoadWorldGeometry ( string fileName ) : void
fileName string
Результат void

ManualRender() публичный метод

public ManualRender ( RenderOperation op, Pass pass, Viewport vp, Matrix4 worldMatrix, Matrix4 viewMatrix, Matrix4 projMatrix ) : void
op RenderOperation
pass Pass
vp Viewport
worldMatrix Matrix4
viewMatrix Matrix4
projMatrix Matrix4
Результат void

ManualRender() публичный метод

Manual rendering method, for advanced users only.
This method allows you to send rendering commands through the pipeline on demand, bypassing any normal world processing. You should only use this if you really know what you're doing; the engine does lots of things for you that you really should let it do. However, there are times where it may be useful to have this manual interface, for example overlaying something on top of the scene.

Because this is an instant rendering method, timing is important. The best time to call it is from a RenderTarget event handler.

Don't call this method a lot, it's designed for rare (1 or 2 times per frame) use. Calling it regularly per frame will cause frame rate drops!

public ManualRender ( RenderOperation op, Pass pass, Viewport vp, Matrix4 worldMatrix, Matrix4 viewMatrix, Matrix4 projMatrix, bool doBeginEndFrame ) : void
op RenderOperation A RenderOperation object describing the rendering op.
pass Pass The Pass to use for this render.
vp Viewport Reference to the viewport to render to.
worldMatrix Matrix4 The transform to apply from object to world space.
viewMatrix Matrix4 The transform to apply from object to view space.
projMatrix Matrix4 The transform to apply from view to screen space.
doBeginEndFrame bool /// If true, BeginFrame() and EndFrame() are called, otherwise not. /// You should leave this as false if you are calling this within the main render loop. ///
Результат void

NotifyLightsDirty() защищенный метод

Advance method to increase the lights dirty counter due lights changed.
Scene manager tracking lights that affecting the frustum, if changes detected (the changes includes light list itself and the light's position and attenuation range), then increase the lights dirty counter. For some reason, you can call this method to force whole scene objects re-populate their light list. But near in mind, call to this method will harm performance, so should avoid if possible.
protected NotifyLightsDirty ( ) : void
Результат void

OnRenderQueueEnded() защищенный метод

Used to first the QueueEnded event.
protected OnRenderQueueEnded ( RenderQueueGroupID group, string invocation ) : bool
group RenderQueueGroupID
invocation string
Результат bool

OnRenderQueueStarted() защищенный метод

Used to first the QueueStarted event.
protected OnRenderQueueStarted ( RenderQueueGroupID group, string invocation ) : bool
group RenderQueueGroupID
invocation string
Результат bool

OverrideRootSceneNode() публичный метод

If set, only the selected node is rendered. To render all nodes, set to null.
public OverrideRootSceneNode ( SceneNode node ) : void
node SceneNode
Результат void

PopulateLightList() публичный метод

Populate a light list with an ordered set of the lights which are closest

Note that since directional lights have no position, they are always considered closer than any point lights and as such will always take precedence.

Subclasses of the default SceneManager may wish to take into account other issues such as possible visibility of the light if that information is included in their data structures. This basic scenemanager simply orders by distance, eliminating those lights which are out of range.

The number of items in the list max exceed the maximum number of lights supported by the renderer, but the extraneous ones will never be used. In fact the limit will be imposed by Pass::getMaxSimultaneousLights.

public PopulateLightList ( Vector3 position, float radius, LightList destList ) : void
position Vector3 The position at which to evaluate the list of lights
radius float The bounding radius to test
destList LightList List to be populated with ordered set of lights; will be cleared by this method before population.
Результат void

PrepareShadowTextures() защищенный метод

Internal method for preparing shadow textures ready for use in a regular render
protected PrepareShadowTextures ( Camera camera, Viewport viewPort ) : void
camera Camera
viewPort Viewport
Результат void

PrepareWorldGeometry() публичный метод

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.
Depending on the type of SceneManager (subclasses will be specialised for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a stream to this method and it will attempt to load the world-level geometry for use. If the manager can only handle one input format the typeName parameter is not required. The stream passed will be read (and it's state updated).
public PrepareWorldGeometry ( Stream stream, string typeName ) : void
stream Stream Data stream containing data to load
typeName string String identifying the type of world geometry /// contained in the stream - not required if this manager only /// supports one type of world geometry. ///
Результат void

PrepareWorldGeometry() публичный метод

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.
Depending on the type of SceneManager (subclasses will be specialised for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a filename to this method and it will attempt to load the world-level geometry for use. If you try to load an inappropriate type of world data an exception will be thrown. The default SceneManager cannot handle any sort of world geometry and so will always throw an exception. However subclasses like BspSceneManager can load particular types of world geometry e.g. "q3dm1.bsp".
public PrepareWorldGeometry ( string filename ) : void
filename string
Результат void

RekeySceneNode() публичный метод

public RekeySceneNode ( string oldName, SceneNode node ) : void
oldName string
node SceneNode
Результат void

RemoveAllBillboardSets() публичный метод

Removes all billboardsets from the scene.
public RemoveAllBillboardSets ( ) : void
Результат void

RemoveAllCameras() публичный метод

Removes all cameras from the scene.
public RemoveAllCameras ( ) : void
Результат void

RemoveAllEntities() публичный метод

Removes all entities from the scene.
public RemoveAllEntities ( ) : void
Результат void

RemoveAllLights() публичный метод

Removes all lights from the scene.
public RemoveAllLights ( ) : void
Результат void

RemoveAllRibonTrails() публичный метод

public RemoveAllRibonTrails ( ) : void
Результат void

RemoveBillboardSet() публичный метод

Removes the specified BillboardSet from the scene.
This method removes a previously added BillboardSet from the scene.
public RemoveBillboardSet ( BillboardSet billboardSet ) : void
billboardSet BillboardSet Reference to the BillboardSet to remove.
Результат void

RemoveBillboardSet() публичный метод

Removes a BillboardSet from the scene with the specified name.
This method removes a previously added BillboardSet from the scene.
public RemoveBillboardSet ( string name ) : void
name string Name of the BillboardSet to remove.
Результат void

RemoveCamera() публичный метод

Removes the specified camera from the scene.
This method removes a previously added camera from the scene.
public RemoveCamera ( Camera camera ) : void
camera Camera Reference to the camera to remove.
Результат void

RemoveCamera() публичный метод

Removes a camera from the scene with the specified name.
This method removes a previously added camera from the scene.
public RemoveCamera ( string name ) : void
name string Name of the camera to remove.
Результат void

RemoveEntity() публичный метод

Removes the specified entity from the scene.
public RemoveEntity ( Entity entity ) : void
entity Entity Entity to remove from the scene.
Результат void

RemoveEntity() публичный метод

Removes the entity with the specified name from the scene.
public RemoveEntity ( string name ) : void
name string Entity to remove from the scene.
Результат void

RemoveLight() публичный метод

Removes the specified light from the scene.
This method removes a previously added light from the scene.
public RemoveLight ( Light light ) : void
light Light Reference to the light to remove.
Результат void

RemoveLight() публичный метод

Removes a light from the scene with the specified name.
This method removes a previously added light from the scene.
public RemoveLight ( string name ) : void
name string Name of the light to remove.
Результат void

RemoveRibbonTrail() публичный метод

public RemoveRibbonTrail ( RibbonTrail ribbonTrail ) : void
ribbonTrail RibbonTrail
Результат void

RemoveRibbonTrail() публичный метод

public RemoveRibbonTrail ( string name ) : void
name string
Результат void

RenderAdditiveStencilShadowedQueueGroupObjects() защищенный метод

Render a group with the added complexity of additive stencil shadows.
protected RenderAdditiveStencilShadowedQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Render queue group.
Результат void

RenderBasicQueueGroupObjects() защищенный метод

Render a group in the ordinary way
protected RenderBasicQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Group containing the objects to render.
Результат void

RenderModulativeStencilShadowedQueueGroupObjects() защищенный метод

Render a group with the added complexity of modulative stencil shadows.
protected RenderModulativeStencilShadowedQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Render queue group.
Результат void

RenderModulativeTextureShadowedQueueGroupObjects() защищенный метод

Render a group with the added complexity of modulative texture shadows.
protected RenderModulativeTextureShadowedQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Render queue group.
Результат void

RenderQueueGroupObjects() защищенный метод

Render the objects in a given queue group.
protected RenderQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Group containing the objects to render.
Результат void

RenderScene() защищенный метод

Prompts the class to send its contents to the renderer.
This method prompts the scene manager to send the contents of the scene it manages to the rendering pipeline, possibly preceded by some sorting, culling or other scene management tasks. Note that this method is not normally called directly by the user application; it is called automatically by the engine's rendering loop.
protected RenderScene ( Camera camera, Viewport viewport, bool showOverlays ) : void
camera Camera Pointer to a camera from whose viewpoint the scene is to be rendered.
viewport Viewport The target viewport
showOverlays bool Whether or not any overlay objects should be rendered
Результат void

RenderShadowVolumesToStencil() защищенный метод

Internal method for rendering all the objects for a given light into the stencil buffer.
protected RenderShadowVolumesToStencil ( Light light, Camera camera ) : void
light Light The light source.
camera Camera The camera being viewed from.
Результат void

RenderSingleObject() защищенный метод

protected RenderSingleObject ( IRenderable renderable, Pass pass, bool doLightIteration ) : void
renderable IRenderable
pass Pass
doLightIteration bool
Результат void

RenderSingleObject() защищенный метод

Internal utility method for rendering a single object.
protected RenderSingleObject ( IRenderable renderable, Pass pass, bool doLightIteration, LightList manualLightList ) : void
renderable IRenderable The renderable to issue to the pipeline.
pass Pass The pass which is being used.
doLightIteration bool If true, this method will issue the renderable to /// the pipeline possibly multiple times, if the pass indicates it should be /// done once per light.
manualLightList LightList Only applicable if 'doLightIteration' is false, this /// method allows you to pass in a previously determined set of lights /// which will be used for a single render of this object.
Результат void

RenderSingleShadowVolumeToStencil() защищенный метод

Render a single shadow volume to the stencil buffer.
protected RenderSingleShadowVolumeToStencil ( ShadowRenderable sr, bool zfail, bool stencil2sided, LightList manualLightList, bool isSecondPass ) : void
sr ShadowRenderable
zfail bool
stencil2sided bool
manualLightList LightList
isSecondPass bool
Результат void

RenderSolidObjects() защищенный метод

protected RenderSolidObjects ( System list, bool doLightIteration ) : void
list System
doLightIteration bool
Результат void

RenderSolidObjects() защищенный метод

Renders a set of solid objects.
protected RenderSolidObjects ( System list, bool doLightIteration, LightList manualLightList ) : void
list System
doLightIteration bool
manualLightList LightList
Результат void

RenderTextureShadowCasterQueueGroupObjects() защищенный метод

Render a group rendering only shadow casters.
protected RenderTextureShadowCasterQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Render queue group.
Результат void

RenderTextureShadowReceiverQueueGroupObjects() защищенный метод

Render a group rendering only shadow receivers.
protected RenderTextureShadowReceiverQueueGroupObjects ( RenderQueueGroup group ) : void
group RenderQueueGroup Render queue group.
Результат void

RenderTransparentObjects() защищенный метод

protected RenderTransparentObjects ( List list, bool doLightIteration ) : void
list List
doLightIteration bool
Результат void

RenderTransparentObjects() защищенный метод

Renders a set of transparent objects.
protected RenderTransparentObjects ( List list, bool doLightIteration, LightList manualLightList ) : void
list List
doLightIteration bool
manualLightList LightList
Результат void

RenderTransparentShadowCasterObjects() защищенный метод

Render those objects in the transparent pass list which have shadow casting forced on
This function is intended to be used to render the shadows of transparent objects which have transparency_casts_shadows set to 'on' in their material
protected RenderTransparentShadowCasterObjects ( List list, bool doLightIteration, LightList manualLightList ) : void
list List
doLightIteration bool
manualLightList LightList
Результат void

RenderVisibleObjects() защищенный метод

Sends visible objects found in FindVisibleObjects to the rendering engine.
protected RenderVisibleObjects ( ) : void
Результат void

ResetViewProjectionMode() публичный метод

public ResetViewProjectionMode ( ) : void
Результат void

RestoreRootSceneNode() публичный метод

public RestoreRootSceneNode ( ) : void
Результат void

SceneManager() публичный метод

public SceneManager ( string name ) : System
name string
Результат System

SetFog() публичный метод

public SetFog ( FogMode mode, ColorEx color, float density ) : void
mode FogMode
color ColorEx
density float
Результат void

SetFog() публичный метод

Sets the fogging mode applied to the scene.
This method sets up the scene-wide fogging effect. These settings apply to all geometry rendered, UNLESS the material with which it is rendered has it's own fog settings (see Material.SetFog).
public SetFog ( FogMode mode, ColorEx color, float density, float linearStart, float linearEnd ) : void
mode FogMode Set up the mode of fog as described in the FogMode /// enum, or set to FogMode.None to turn off.
color ColorEx The color of the fog. Either set this to the same /// as your viewport background color, or to blend in with a skydome or skybox.
density float The density of the fog in Exp or Exp2. /// mode, as a value between 0 and 1. The default is 0.001.
linearStart float Distance in world units at which linear fog starts to /// encroach. Only applicable if mode is
linearEnd float Distance in world units at which linear fog becomes completely /// opaque. Only applicable if mode is
Результат void

SetPass() публичный метод

If only the first parameter is supplied
public SetPass ( Pass pass ) : Pass
pass Pass
Результат Pass

SetPass() публичный метод

If only the first two parameters are supplied
public SetPass ( Pass pass, bool evenIfSuppressed ) : Pass
pass Pass
evenIfSuppressed bool
Результат Pass

SetPass() публичный метод

Internal method for setting up the renderstate for a rendering pass.
public SetPass ( Pass pass, bool evenIfSuppressed, bool shadowDerivation ) : Pass
pass Pass The Pass details to set.
evenIfSuppressed bool /// Sets the pass details even if render state /// changes are suppressed; if you are using this to manually set state /// when render state changes are suppressed, you should set this to true. ///
shadowDerivation bool /// If false, disables the derivation of shadow passes from original passes ///
Результат Pass

SetShadowTextureSettings() публичный метод

public SetShadowTextureSettings ( ushort size, ushort count ) : void
size ushort
count ushort
Результат void

SetShadowTextureSettings() публичный метод

Sets the size and count of textures used in texture-based shadows.
See ShadowTextureSize and ShadowTextureCount for details, this method just allows you to change both at once, which can save on reallocation if the textures have already been created.
public SetShadowTextureSettings ( ushort size, ushort count, PixelFormat format ) : void
size ushort
count ushort
format PixelFormat
Результат void

SetShadowVolumeStencilState() защищенный метод

Internal utility method for setting stencil state for rendering shadow volumes.
protected SetShadowVolumeStencilState ( bool secondPass, bool zfail, bool twoSided ) : void
secondPass bool Is this the second pass?
zfail bool Should we be using the zfail method?
twoSided bool Should we use a 2-sided stencil?
Результат void

SetSkyBox() публичный метод

Overloaded method.
public SetSkyBox ( bool enable, string materialName, float distance ) : void
enable bool
materialName string
distance float
Результат void

SetSkyBox() публичный метод

Enables / disables a 'sky box' i.e. a 6-sided box at constant distance from the camera representing the sky.
You could create a sky box yourself using the standard mesh and entity methods, but this creates a plane which the camera can never get closer or further away from - it moves with the camera. (you could create this effect by creating a world box which was attached to the same SceneNode as the Camera too, but this would only apply to a single camera whereas this skybox applies to any camera using this scene manager).

The material you use for the skybox can either contain layers which are single textures, or they can be cubic textures, i.e. made up of 6 images, one for each plane of the cube. See the TextureLayer class for more information.

public SetSkyBox ( bool enable, string materialName, float distance, bool drawFirst, Quaternion orientation, string groupName ) : void
enable bool True to enable the skybox, false to disable it
materialName string The name of the material the box will use.
distance float Distance in world coordinates from the camera to each plane of the box.
drawFirst bool /// If true, the box is drawn before all other /// geometry in the scene, without updating the depth buffer. /// This is the safest rendering method since all other objects /// will always appear in front of the sky. However this is not /// the most efficient way if most of the sky is often occluded /// by other objects. If this is the case, you can set this /// parameter to false meaning it draws after all other /// geometry which can be an optimisation - however you must /// ensure that the distance value is large enough that no /// objects will 'poke through' the sky box when it is rendered. ///
orientation Quaternion /// Specifies the orientation of the box. By default the 'top' of the box is deemed to be /// in the +y direction, and the 'front' at the -z direction. /// You can use this parameter to rotate the sky if you want. ///
groupName string
Результат void

SetSkyDome() публичный метод

public SetSkyDome ( bool isEnabled, string materialName, float curvature, float tiling ) : void
isEnabled bool
materialName string
curvature float
tiling float
Результат void

SetSkyDome() публичный метод

public SetSkyDome ( bool isEnabled, string materialName, float curvature, float tiling, float distance, bool drawFirst, Quaternion orientation, string groupName ) : void
isEnabled bool
materialName string
curvature float
tiling float
distance float
drawFirst bool
orientation Quaternion
groupName string
Результат void

SetSkyPlane() публичный метод

Overload.
public SetSkyPlane ( bool enable, Plane plane, string materialName ) : void
enable bool
plane Plane
materialName string
Результат void

SetSkyPlane() публичный метод

Enables / disables a 'sky plane' i.e. a plane at constant distance from the camera representing the sky.
public SetSkyPlane ( bool enable, Plane plane, string materialName, float scale, float tiling, bool drawFirst, float bow, string groupName ) : void
enable bool True to enable the plane, false to disable it.
plane Plane Details of the plane, i.e. it's normal and it's distance from the camera.
materialName string The name of the material the plane will use.
scale float The scaling applied to the sky plane - higher values mean a bigger sky plane.
tiling float How many times to tile the texture across the sky.
drawFirst bool /// If true, the plane is drawn before all other geometry in the scene, without updating the depth buffer. /// This is the safest rendering method since all other objects /// will always appear in front of the sky. However this is not /// the most efficient way if most of the sky is often occluded /// by other objects. If this is the case, you can set this /// parameter to false meaning it draws after all other /// geometry which can be an optimisation - however you must /// ensure that the plane.d value is large enough that no objects /// will 'poke through' the sky plane when it is rendered. ///
bow float /// If above zero, the plane will be curved, allowing /// the sky to appear below camera level. Curved sky planes are /// simular to skydomes, but are more compatable with fog. ///
groupName string
Результат void

SetViewport() защищенный метод

Internal method for setting the destination viewport for the next render.
protected SetViewport ( Viewport viewport ) : void
viewport Viewport
Результат void

SetWorldGeometry() публичный метод

public SetWorldGeometry ( Stream stream ) : void
stream Stream
Результат void

SetWorldGeometry() публичный метод

public SetWorldGeometry ( Stream stream, string typeName ) : void
stream Stream
typeName string
Результат void

SetWorldGeometry() публичный метод

public SetWorldGeometry ( string filename ) : void
filename string
Результат void

UpdateSceneGraph() защищенный метод

Internal method for updating the scene graph ie the tree of SceneNode instances managed by this class.
This must be done before issuing objects to the rendering pipeline, since derived transformations from parent nodes are not updated until required. This SceneManager is a basic implementation which simply updates all nodes from the root. This ensures the scene is up to date but requires all the nodes to be updated even if they are not visible. Subclasses could trim this such that only potentially visible nodes are updated.
protected UpdateSceneGraph ( Camera camera ) : void
camera Camera
Результат void

UseRenderableViewProjection() защищенный метод

Protected method used by RenderVisibleObjects to deal with renderables which override the camera's own view / projection materices.
protected UseRenderableViewProjection ( IRenderable renderable ) : void
renderable IRenderable
Результат void

ValidatePassForRendering() защищенный метод

Internal method to validate whether a Pass should be allowed to render.
Called just before a pass is about to be used for rendering a group to allow the SceneManager to omit it if required. A return value of false skips this pass.
protected ValidatePassForRendering ( Pass pass ) : bool
pass Pass
Результат bool

ValidateRenderableForRendering() защищенный метод

Internal method to validate whether a Renderable should be allowed to render.
Called just before a pass is about to be used for rendering a Renderable to allow the SceneManager to omit it if required. A return value of false skips it.
protected ValidateRenderableForRendering ( Pass pass, IRenderable renderable ) : bool
pass Pass
renderable IRenderable
Результат bool

dispose() защищенный метод

protected dispose ( bool disposeManagedResources ) : void
disposeManagedResources bool
Результат void

Описание свойств

_activeCompositorChain защищенное свойство

protected CompositorChain _activeCompositorChain
Результат CompositorChain

_lightsDirtyCounter защищенное свойство

protected ulong _lightsDirtyCounter
Результат ulong

ambientColor защищенное свойство

The ambient color, cached from the RenderSystem
Default to a semi-bright white (gray) light to prevent being null
protected ColorEx ambientColor
Результат ColorEx

animationList защищенное свойство

A list of animations for easy lookup.
protected AnimationCollection animationList
Результат AnimationCollection

animationStateList защищенное свойство

A list of animation states for easy lookup.
protected AnimationStateSet animationStateList
Результат AnimationStateSet

autoParamDataSource защищенное свойство

Utility class for updating automatic GPU program params.
protected AutoParamDataSource autoParamDataSource
Результат AutoParamDataSource

autoTrackingSceneNodes защищенное свойство

Active list of nodes tracking other nodes.
protected SceneNodeCollection autoTrackingSceneNodes
Результат SceneNodeCollection

cameraInProgress защищенное свойство

A reference to the current camera being used for rendering.
protected Camera cameraInProgress
Результат Camera

cameraList защищенное свойство

A list of the valid cameras for this scene for easy lookup.
protected CameraCollection cameraList
Результат CameraCollection

currentViewport защищенное свойство

protected Viewport currentViewport
Результат Viewport

defaultRootNode защищенное свойство

If set, only this scene node (and children) will be rendered. If null, root node is used.
protected SceneNode defaultRootNode
Результат SceneNode

displayNodes защищенное свойство

Flag indicating whether SceneNodes will be rendered as a set of 3 axes.
protected bool displayNodes
Результат bool

findVisibleObjects защищенное свойство

Find visible objects?
protected bool findVisibleObjects
Результат bool

finiteExtrusionParams защищенное свойство

Program parameters for finite extrusion programs.
protected GpuProgramParameters finiteExtrusionParams
Результат GpuProgramParameters

fogColor защищенное свойство

protected ColorEx fogColor
Результат ColorEx

fogDensity защищенное свойство

protected float fogDensity
Результат float

fogEnd защищенное свойство

protected float fogEnd
Результат float

fogMode защищенное свойство

protected FogMode fogMode
Результат FogMode

fogStart защищенное свойство

protected float fogStart
Результат float

fullScreenQuad защищенное свойство

Full screen rectangle to use for rendering stencil shadows.
protected Rectangle2D fullScreenQuad
Результат Rectangle2D

hasCameraChanged защищенное свойство

Denotes whether or not the camera has been changed.
protected bool hasCameraChanged
Результат bool

illuminationStage защищенное свойство

Current stage of rendering.
protected IlluminationRenderStage illuminationStage
Результат IlluminationRenderStage

infiniteExtrusionParams защищенное свойство

Program parameters for infinite extrusion programs.
protected GpuProgramParameters infiniteExtrusionParams
Результат GpuProgramParameters

isSkyBoxDrawnFirst защищенное свойство

protected bool isSkyBoxDrawnFirst
Результат bool

isSkyBoxEnabled защищенное свойство

protected bool isSkyBoxEnabled
Результат bool

isSkyDomeDrawnFirst защищенное свойство

protected bool isSkyDomeDrawnFirst
Результат bool

isSkyDomeEnabled защищенное свойство

protected bool isSkyDomeEnabled
Результат bool

isSkyPlaneDrawnFirst защищенное свойство

protected bool isSkyPlaneDrawnFirst
Результат bool

isSkyPlaneEnabled защищенное свойство

protected bool isSkyPlaneEnabled
Результат bool

lastFrameNumber защищенное свойство

protected ulong lastFrameNumber
Результат ulong

lastNumTexUnitsUsed защищенное статическое свойство

protected static int lastNumTexUnitsUsed
Результат int

lastPolyMode защищенное свойство

protected PolygonMode lastPolyMode
Результат PolygonMode

lastProjectionWasIdentity защищенное свойство

protected bool lastProjectionWasIdentity
Результат bool

lastUsedFallback защищенное свойство

protected bool lastUsedFallback
Результат bool

lastViewWasIdentity защищенное свойство

protected bool lastViewWasIdentity
Результат bool

lightsAffectingFrustum защищенное свойство

List of lights in view that could cast shadows.
protected LightList lightsAffectingFrustum
Результат LightList

localLightList защищенное статическое свойство

Local light list for use during rendering passes.
protected static LightList localLightList
Результат LightList

movableObjectCollectionMap защищенное свойство

protected Dictionary movableObjectCollectionMap
Результат MovableObjectCollection>.Dictionary

name защищенное свойство

The instance name of this scene manager.
protected string name
Результат string

normalizeNormals защищенное статическое свойство

Whether normals are currently being normalized.
protected static bool normalizeNormals
Результат bool

nullLightList защищенное свойство

protected LightList nullLightList
Результат LightList

nullShadowTexture защищенное свойство

protected Texture nullShadowTexture
Результат Texture

oldFogColor защищенное статическое свойство

protected static ColorEx oldFogColor
Результат ColorEx

oldFogDensity защищенное статическое свойство

protected static float oldFogDensity
Результат float

oldFogEnd защищенное статическое свойство

protected static float oldFogEnd
Результат float

oldFogMode защищенное статическое свойство

protected static FogMode oldFogMode
Результат FogMode

oldFogStart защищенное статическое свойство

protected static float oldFogStart
Результат float

op защищенное статическое свойство

protected static RenderOperation op
Результат RenderOperation

optionList защищенное свойство

Hashtable of options that can be used by this or any other scene manager.
protected AxiomCollection optionList
Результат AxiomCollection

regionList защищенное свойство

A list of the Regions. TODO: Is there any point to having this region list?
protected List regionList
Результат List

renderQueue защищенное свойство

A queue of objects for rendering.
protected RenderQueue renderQueue
Результат RenderQueue

renderingMainGroup защищенное свойство

True when the main priority group is rendering.
protected bool renderingMainGroup
Результат bool

renderingNoShadowQueue защищенное свойство

True when calling RenderSolidObjects with the noShadow queue.
protected bool renderingNoShadowQueue
Результат bool

rootSceneNode защищенное свойство

The root of the scene graph heirarchy.
protected SceneNode rootSceneNode
Результат SceneNode

sceneNodeList защищенное свойство

A list of scene nodes (includes all in the scene graph).
protected SceneNodeCollection sceneNodeList
Результат SceneNodeCollection

shadowCameraLightMapping защищенное свойство

protected Dictionary shadowCameraLightMapping
Результат Light>.Dictionary

shadowCasterAABBQuery защищенное свойство

AxisAlignedBox region query to find shadow casters within the attenuation range of a directional light.
protected AxisAlignedBoxRegionSceneQuery shadowCasterAABBQuery
Результат AxisAlignedBoxRegionSceneQuery

shadowCasterList защищенное свойство

Current list of shadow casters within the view of the camera.
protected List shadowCasterList
Результат List

shadowCasterPlainBlackPass защищенное свойство

A pass designed to let us render shadow colour on white for texture shadows
protected Pass shadowCasterPlainBlackPass
Результат Pass

shadowCasterQueryListener защищенное свойство

Listener to use when finding shadow casters for a light within a scene.
protected ShadowCasterSceneQueryListener shadowCasterQueryListener
Результат ShadowCasterSceneQueryListener

shadowCasterSphereQuery защищенное свойство

Sphere region query to find shadow casters within the attenuation range of a point/spot light.
protected SphereRegionSceneQuery shadowCasterSphereQuery
Результат SphereRegionSceneQuery

shadowColor защищенное свойство

protected ColorEx shadowColor
Результат ColorEx

shadowDebugPass защищенное свойство

Pass to use for rendering debug shadows.
protected Pass shadowDebugPass
Результат Pass

shadowDirLightExtrudeDist защищенное свойство

Explicit extrusion distance for directional lights.
protected float shadowDirLightExtrudeDist
Результат float

shadowFarDistance защищенное свойство

Farthest distance from the camera at which to render shadows.
protected float shadowFarDistance
Результат float

shadowFarDistanceSquared защищенное свойство

shadowFarDistance ^ 2
protected float shadowFarDistanceSquared
Результат float

shadowIndexBuffer защищенное свойство

buffer to use for indexing shadow geometry required for certain techniques.
protected HardwareIndexBuffer shadowIndexBuffer
Результат HardwareIndexBuffer

shadowIndexBufferSize защищенное свойство

The maximum size of the index buffer used to render shadow primitives.
protected int shadowIndexBufferSize
Результат int

shadowMaterialInitDone защищенное свойство

For the RenderTextureShadowCasterQueueGroupObjects and RenderTextureShadowReceiverQueueGroupObjects methods.
protected bool shadowMaterialInitDone
Результат bool

shadowModulativePass защищенное свойство

Pass to use while rendering the full screen quad for modulative shadows.
protected Pass shadowModulativePass
Результат Pass

shadowReceiverPass защищенное свойство

A pass designed to let us render shadow receivers for texture shadows
protected Pass shadowReceiverPass
Результат Pass

shadowStencilPass защищенное свойство

protected Pass shadowStencilPass
Результат Pass

shadowTechnique защищенное свойство

Current shadow technique in use in the scene.
protected ShadowTechnique shadowTechnique
Результат ShadowTechnique

shadowTextureCameras защищенное свойство

Current list of shadow texture cameras. There is one camera for each shadow texture.
protected List shadowTextureCameras
Результат List

shadowTextureCasterMaterial защищенное свойство

The material file to be use for shadow casters, if any
protected string shadowTextureCasterMaterial
Результат string

shadowTextureConfigDirty защищенное свойство

protected bool shadowTextureConfigDirty
Результат bool

shadowTextureConfigList защищенное свойство

protected List shadowTextureConfigList
Результат List

shadowTextureCount защищенное свойство

protected ushort shadowTextureCount
Результат ushort

shadowTextureCustomCasterFPParams защищенное свойство

The parameters of the pixel program that renders custom shadow casters, or null
protected GpuProgramParameters shadowTextureCustomCasterFPParams
Результат GpuProgramParameters

shadowTextureCustomCasterFragmentProgram защищенное свойство

The name of the pixel program that renders custom shadow casters, or null
protected string shadowTextureCustomCasterFragmentProgram
Результат string

shadowTextureCustomCasterPass защищенное свойство

The pass that renders custom texture casters, or null
protected Pass shadowTextureCustomCasterPass
Результат Pass

shadowTextureCustomCasterVPParams защищенное свойство

The parameters of the vertex program that renders custom shadow casters, or null
protected GpuProgramParameters shadowTextureCustomCasterVPParams
Результат GpuProgramParameters

shadowTextureCustomCasterVertexProgram защищенное свойство

The name of the vertex program that renders custom shadow casters, or null
protected string shadowTextureCustomCasterVertexProgram
Результат string

shadowTextureCustomReceiverFPParams защищенное свойство

The parameters of the pixel program that renders custom shadow casters, or null
protected GpuProgramParameters shadowTextureCustomReceiverFPParams
Результат GpuProgramParameters

shadowTextureCustomReceiverFragmentProgram защищенное свойство

The name of the pixel program that renders custom shadow receivers, or null
protected string shadowTextureCustomReceiverFragmentProgram
Результат string

shadowTextureCustomReceiverPass защищенное свойство

The material file to be use for shadow receivers, if any
protected Pass shadowTextureCustomReceiverPass
Результат Pass

shadowTextureCustomReceiverVPParams защищенное свойство

The parameters of the vertex program that renders custom shadow casters, or null
protected GpuProgramParameters shadowTextureCustomReceiverVPParams
Результат GpuProgramParameters

shadowTextureCustomReceiverVertexProgram защищенное свойство

The name of the vertex program that renders custom shadow receivers, or null
protected string shadowTextureCustomReceiverVertexProgram
Результат string

shadowTextureFadeEnd защищенное свойство

As a proportion e.g. 0.9
protected float shadowTextureFadeEnd
Результат float

shadowTextureFadeStart защищенное свойство

As a proportion e.g. 0.6
protected float shadowTextureFadeStart
Результат float

shadowTextureFormat защищенное свойство

protected PixelFormat shadowTextureFormat
Результат PixelFormat

shadowTextureOffset защищенное свойство

Proportion of texture offset in view direction e.g. 0.4
protected float shadowTextureOffset
Результат float

shadowTextureReceiverMaterial защищенное свойство

The material file to be use for shadow receivers, if any
protected string shadowTextureReceiverMaterial
Результат string

shadowTextureSelfShadow защищенное свойство

The default implementation of texture shadows uses a fixed-function color texture projection approach for maximum compatibility, and as such cannot support self-shadowing. However, if you decide to implement a more complex shadowing technique using ShadowTextureCasterMaterial and ShadowTextureReceiverMaterial there is a possibility you may be able to support self-shadowing (e.g by implementing a shader-based shadow map). In this case you might want to enable this option.
protected bool shadowTextureSelfShadow
Результат bool

shadowTextureSize защищенное свойство

protected ushort shadowTextureSize
Результат ushort

shadowTextures защищенное свойство

Current list of shadow textures.
protected List shadowTextures
Результат List

shadowUseInfiniteFarPlane защищенное свойство

Whether we should override far distance when using stencil volumes
protected bool shadowUseInfiniteFarPlane
Результат bool

showBoundingBoxes защищенное свойство

Flag that specifies whether scene nodes will have their bounding boxes rendered as a wire frame.
protected bool showBoundingBoxes
Результат bool

showDebugShadows защищенное свойство

If true, shadow volumes will be visible in the scene.
protected bool showDebugShadows
Результат bool

skyBoxEntities защищенное свойство

protected Entity[] skyBoxEntities
Результат Entity[]

skyBoxNode защищенное свойство

protected SceneNode skyBoxNode
Результат SceneNode

skyBoxOrientation защищенное свойство

protected Quaternion skyBoxOrientation
Результат Quaternion

skyDomeEntities защищенное свойство

protected Entity[] skyDomeEntities
Результат Entity[]

skyDomeNode защищенное свойство

protected SceneNode skyDomeNode
Результат SceneNode

skyDomeOrientation защищенное свойство

protected Quaternion skyDomeOrientation
Результат Quaternion

skyPlane защищенное свойство

protected Plane skyPlane
Результат Plane

skyPlaneEntity защищенное свойство

protected Entity skyPlaneEntity
Результат Entity

skyPlaneNode защищенное свойство

protected SceneNode skyPlaneNode
Результат SceneNode

specialCaseRenderQueueList защищенное свойство

A List of RenderQueues to either Include or Exclude in the rendering sequence.
protected SpecialCaseRenderQueue specialCaseRenderQueueList
Результат SpecialCaseRenderQueue

staticGeometryList защищенное свойство

The list of static geometry instances maintained by the scene manager
protected Dictionary staticGeometryList
Результат StaticGeometry>.Dictionary

suppressRenderStateChanges защищенное свойство

Suppress render state changes?
protected bool suppressRenderStateChanges
Результат bool

suppressShadows защищенное свойство

Suppress shadows?
protected bool suppressShadows
Результат bool

targetRenderSystem защищенное свойство

A reference to the current active render system..
protected RenderSystem targetRenderSystem
Результат RenderSystem

visibilityMask защищенное свойство

Used by compositing layer
protected ulong visibilityMask
Результат ulong

worldGeometryRenderQueueId защищенное свойство

protected RenderQueueGroupID worldGeometryRenderQueueId
Результат RenderQueueGroupID

xform защищенное свойство

protected Matrix4[] xform
Результат Matrix4[]