Class SceneAggregate
Namespace: ValveResourceFormat.Renderer
Assembly: Renderer.dll
Scene node for instanced rendering of aggregated world geometry.
public class SceneAggregate : SceneNodeInheritance
object ← SceneNode ← SceneAggregate
Inherited Members
SceneNode.Transform, SceneNode.LayerName, SceneNode.LayerEnabled, SceneNode.BoundingBox, SceneNode.LocalBoundingBox, SceneNode.Name, SceneNode.Id, SceneNode.IsSelected, SceneNode.Flags, SceneNode.Scene, SceneNode.EnvMaps, SceneNode.ShaderEnvMapVisibility, SceneNode.LightingOrigin, SceneNode.OverlayRenderOrder, SceneNode.CubeMapPrecomputedHandshake, SceneNode.LightProbeVolumePrecomputedHandshake, SceneNode.LightProbeBinding, SceneNode.EntityData, SceneNode.Update(Scene.UpdateContext), SceneNode.Render(Scene.RenderContext), SceneNode.GetSupportedRenderModes(), SceneNode.SetRenderMode(string), SceneNode.Delete(), SceneNode.GetCameraDistance(Camera)
Constructors
SceneAggregate(Scene, Model)
Initializes the scene aggregate, loading or resolving the mesh from the model.
public SceneAggregate(Scene scene, Model model)Parameters
scene Scene
Owning scene.
model Model
Model resource providing the embedded or referenced mesh.
Properties
AllFlags
Gets or sets the combined object type flags across all fragments (bitwise AND).
public ObjectTypeFlags AllFlags { get; set; }Property Value
AnyChildrenVisible
Gets or sets whether any fragment of this aggregate is visible this frame.
public bool AnyChildrenVisible { get; }Property Value
AnyFlags
Gets or sets the combined object type flags across all fragments (bitwise OR).
public ObjectTypeFlags AnyFlags { get; set; }Property Value
CanDrawIndirect
Gets or sets whether this aggregate can use GPU indirect drawing.
public bool CanDrawIndirect { get; set; }Property Value
CompactionIndex
Gets or sets the compaction buffer index used for GPU-driven draw count, or -1 if not compacted.
public int CompactionIndex { get; set; }Property Value
Fragments
Gets the list of drawable fragments that make up this aggregate.
public List<SceneAggregate.Fragment> Fragments { get; }Property Value
IndirectDrawByteOffset
Gets or sets the byte offset into the indirect draw buffer for this aggregate's draws.
public int IndirectDrawByteOffset { get; set; }Property Value
IndirectDrawCount
Gets or sets the number of indirect draw commands for this aggregate.
public int IndirectDrawCount { get; set; }Property Value
InstanceTransforms
Gets the per-instance transform matrices used for instanced drawing.
public List<Matrix3x4> InstanceTransforms { get; }Property Value
RenderMesh
Gets the shared renderable mesh for all fragments in this aggregate.
public RenderableMesh RenderMesh { get; }Property Value
Methods
GetSupportedRenderModes()
Returns the render modes supported by this node.
public override IEnumerable<string> GetSupportedRenderModes()Returns
LoadFragments(KVObject)
Parses fragment data from the scene object and adds each fragment to the scene.
public void LoadFragments(KVObject aggregateSceneObject)Parameters
aggregateSceneObject KVObject
KV3 object describing the aggregate's fragment list.
SetInfiniteBoundingBox()
Expands the aggregate's bounding box to cover the entire scene, preventing it from being frustum-culled.
public void SetInfiniteBoundingBox()
