Click or drag to resize
AB4D logo

RenderObjectsRenderingStep Class

RenderObjects renders the objects
Inheritance Hierarchy
SystemObject
  Ab3d.DirectXDXResourceBase
    Ab3d.DirectXDisposableDXResource
      Ab3d.DirectXDXSceneResource
        Ab3d.DirectXRenderingStepBase
          Ab3d.DirectXRenderObjectsRenderingStep

Namespace: Ab3d.DirectX
Assembly: Ab3d.DXEngine (in Ab3d.DXEngine.dll) Version: 7.0.8865.1045
Syntax
C#
public class RenderObjectsRenderingStep : RenderingStepBase

The RenderObjectsRenderingStep type exposes the following members.

Constructors
 NameDescription
Public methodRenderObjectsRenderingStep Initializes a new instance of the RenderObjectsRenderingStep class.
Top
Properties
 NameDescription
Public propertyAllowMultipassRendering Gets or sets a boolean that specifies if multipass rendering is used when number of light is bigger than the number of lights that can be rendered in one rendering pass. Default value is true.
Public propertyBackgroundThreadsManager Gets or sets a BackgroundThreadsManager that is used by this RenderObjectsRenderingStep. If this value is not manually set by the user, then it is set from the BackgroundThreadsManager or BackgroundThreadsManager.
Public propertyFilterLightsFunction Gets or sets a filter function that can be used to filter lights used by this RenderObjectsRenderingStep - the function should return a List{ILight}
Public propertyFilterObjectsFunction Gets or sets a filter function that can be used to filter the objects that will be rendered (returning false for object that are not rendered).
Public propertyFilterRenderingQueuesFunction Gets or sets a filter function that can be used to filter RenderingQueue that will be rendered (returning false for RenderingQueue that are not rendered).
Public propertyIsCachingCommandLists Gets or sets a boolean that specifies if this instance of RenderObjectsRenderingStep can cache command lists (record then in one frame and reuse the command lists in the following frames). By default this value is set to true, but to use command lists then also the IsCachingCommandLists from DXScene must be set to true.
Public propertyOverrideBlendState When OverrideBlendState is set, the specified BlendState will be used to render all the objects.
Public propertyOverrideDepthStencilState When OverrideDepthStencilState is set, the specified DepthStencilState will be used to render all the objects.
Public propertyOverrideEffect When OverrideEffect is set, than it renders all objects with this effect; else the effect defined by the object's material is used
Public propertyOverrideRasterizerState When OverrideRasterizerState is set, the specified RasterizerState will be used to render all the objects.
Public propertyOverrideStandardEffect When OverrideStandardEffect is set, than the materials that does not have any specific effect specified will be rendered with it renders all objects with OverrideStandardEffect; otherwise the DXDevice.EffectsManager.GetStandardEffect() method will be used to get the standard effect.
Public propertyUseMultiThreading Gets or sets a nullable Boolean that specifies if rendering objects in this rendering step can be done in multiple threads (when also enabled by MaxBackgroundThreadsCount). Default value is true.
Top
Methods
 NameDescription
Public methodSaveExecutionTimeStatistics SaveExecutionTimeStatistics is called when we are collecting statistics. The implementation of the method should save or add the elapsedMilliseconds to the corresponding property in the RenderingStatistics class.
(Overrides RenderingStepBaseSaveExecutionTimeStatistics(Double, RenderingStatistics))
Public methodToString Returns a string that represents the current object.
(Overrides RenderingStepBaseToString)
Top
Fields
 NameDescription
Public fieldStatic memberMainThreadWaitTimeoutMs MainThreadWaitTimeoutMs specifies a timeout that is used in main thread to wait for all background threads to finish preparing command lists. Note that the UI thread is also executing the same task (preparing rendering or preparing the command list) so theoretically it should take the same amount of time on UI and background threads and therefore the default value of 2 seconds should be more then enough.
Public fieldStatic memberMinObjectsForCachedCommandLists MinObjectsForCachedCommandLists is a static integer value that specifies minimum number of objects that are required to start using cached command lists (when enabled with IsCachingCommandLists from DXScene). Default value is 400.
Public fieldStatic memberMinObjectsPerThread MinObjectsPerThread is a static integer value that specifies minimum number of objects that are required to create a new thread. For example if multi-threading is enabled and there are 320 objects to render and MinObjectsPerThread is set to 100 (by default), then 3 threads will be created to render all the objects (if not limited by number of actual processors or MaxBackgroundThreadsCount).
Top
See Also