Table of Contents

Class Scene

Namespace
ValveResourceFormat.Renderer
Assembly
Renderer.dll

Container for scene nodes with spatial partitioning, lighting, and render state management.

public class Scene : IDisposable

Inheritance

Implements

Inherited Members

Constructors

Scene(RendererContext, float)

public Scene(RendererContext context, float sizeHint = 32768)

Parameters

context RendererContext
sizeHint float

Properties

AllNodes

public IEnumerable<SceneNode> AllNodes { get; }

Property Value

IEnumerable<SceneNode>

CompactedCountsGpu

public StorageBuffer? CompactedCountsGpu { get; set; }

Property Value

StorageBuffer?

CompactedDrawsGpu

public StorageBuffer? CompactedDrawsGpu { get; set; }

Property Value

StorageBuffer?

CompactionRequestsGpu

public StorageBuffer? CompactionRequestsGpu { get; set; }

Property Value

StorageBuffer?

DepthPyramid

public RenderTexture? DepthPyramid { get; }

Property Value

RenderTexture?

DepthPyramidValid

public bool DepthPyramidValid { get; }

Property Value

bool

DepthPyramidViewProjection

public Matrix4x4 DepthPyramidViewProjection { get; }

Property Value

Matrix4x4

DrawBoundsGpu

public StorageBuffer? DrawBoundsGpu { get; set; }

Property Value

StorageBuffer?

DynamicOctree

public Octree DynamicOctree { get; }

Property Value

Octree

EnableCompaction

public bool EnableCompaction { get; set; }

Property Value

bool

EnableDepthPrepass

public bool EnableDepthPrepass { get; set; }

Property Value

bool

EnableIndirectDraws

public bool EnableIndirectDraws { get; set; }

Property Value

bool

EnableOcclusionCulling

public bool EnableOcclusionCulling { get; set; }

Property Value

bool

FogEnabled

public bool FogEnabled { get; set; }

Property Value

bool

FogInfo

public WorldFogInfo FogInfo { get; set; }

Property Value

WorldFogInfo

HasOutlineObjects

public bool HasOutlineObjects { get; }

Property Value

bool

IndirectDrawsGpu

public StorageBuffer? IndirectDrawsGpu { get; set; }

Property Value

StorageBuffer?

InstanceBufferGpu

public StorageBuffer? InstanceBufferGpu { get; set; }

Property Value

StorageBuffer?

LightingInfo

public WorldLightingInfo LightingInfo { get; }

Property Value

WorldLightingInfo

MeshletDataGpu

public StorageBuffer? MeshletDataGpu { get; set; }

Property Value

StorageBuffer?

OcclusionDebug

public OcclusionDebugRenderer? OcclusionDebug { get; set; }

Property Value

OcclusionDebugRenderer?

OcclusionDebugEnabled

public bool OcclusionDebugEnabled { get; set; }

Property Value

bool

PhysicsWorld

public Rubikon? PhysicsWorld { get; set; }

Property Value

Rubikon?

PostProcessInfo

public WorldPostProcessInfo PostProcessInfo { get; set; }

Property Value

WorldPostProcessInfo

RenderAttributes

public Dictionary<string, byte> RenderAttributes { get; }

Property Value

Dictionary<string, byte>

RendererContext

public RendererContext RendererContext { get; }

Property Value

RendererContext

SceneMeshletCount

public int SceneMeshletCount { get; }

Property Value

int

ShowToolsMaterials

public bool ShowToolsMaterials { get; set; }

Property Value

bool

StaticOctree

public Octree StaticOctree { get; }

Property Value

Octree

TransformBufferGpu

public StorageBuffer? TransformBufferGpu { get; set; }

Property Value

StorageBuffer?

WantsSceneColor

public bool WantsSceneColor { get; set; }

Property Value

bool

WantsSceneDepth

public bool WantsSceneDepth { get; set; }

Property Value

bool

Methods

Add(SceneNode, bool)

public void Add(SceneNode node, bool dynamic)

Parameters

node SceneNode
dynamic bool

AdjustEnvMapSunAngle(Matrix4x4)

public void AdjustEnvMapSunAngle(Matrix4x4 delta)

Parameters

delta Matrix4x4

CalculateEnvironmentMaps()

public void CalculateEnvironmentMaps()

CalculateLightProbeBindings()

public void CalculateLightProbeBindings()

CollectSceneDrawCalls(Camera, Frustum?)

public void CollectSceneDrawCalls(Camera camera, Frustum? cullFrustum = null)

Parameters

camera Camera
cullFrustum Frustum?

CompactIndirectDraws()

public void CompactIndirectDraws()

CreateBuffers()

public void CreateBuffers()

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

Dispose(bool)

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Find(uint)

public SceneNode? Find(uint id)

Parameters

id uint

Returns

SceneNode?

Find(Entity)

public SceneNode? Find(EntityLump.Entity entity)

Parameters

entity EntityLump.Entity

Returns

SceneNode?

FindNodeByKeyValue(string, string)

public SceneNode? FindNodeByKeyValue(string keyToFind, string valueToFind)

Parameters

keyToFind string
valueToFind string

Returns

SceneNode?

GenerateDepthPyramid(RenderTexture)

public void GenerateDepthPyramid(RenderTexture depthSource)

Parameters

depthSource RenderTexture

GetFrustumCullResults(Frustum)

public List<SceneNode> GetFrustumCullResults(Frustum frustum)

Parameters

frustum Frustum

Returns

List<SceneNode>

GetNodeTypeById(uint)

public (Scene.NodeType Type, int LocalId) GetNodeTypeById(uint id)

Parameters

id uint

Returns

(Scene.NodeType Type, int LocalId)

GetOcclusionTestResults()

public void GetOcclusionTestResults()

Initialize()

public void Initialize()

MarkParentOctreeDirty(SceneNode)

public bool MarkParentOctreeDirty(SceneNode node)

Parameters

node SceneNode

Returns

bool

MeshletCullGpu(Frustum)

public void MeshletCullGpu(Frustum frustum)

Parameters

frustum Frustum

Remove(SceneNode, bool)

public void Remove(SceneNode node, bool dynamic)

Parameters

node SceneNode
dynamic bool

RenderOcclusionProxies(RenderContext, Shader)

public void RenderOcclusionProxies(Scene.RenderContext renderContext, Shader depthOnlyShader)

Parameters

renderContext Scene.RenderContext
depthOnlyShader Shader

RenderOpaqueLayer(RenderContext, Span<Shader>)

public void RenderOpaqueLayer(Scene.RenderContext renderContext, Span<Shader> depthOnlyShaders = default)

Parameters

renderContext Scene.RenderContext
depthOnlyShaders Span<Shader>

RenderOpaqueShadows(RenderContext, Span<Shader>)

public void RenderOpaqueShadows(Scene.RenderContext renderContext, Span<Shader> depthOnlyShaders)

Parameters

renderContext Scene.RenderContext
depthOnlyShaders Span<Shader>

RenderOutlineLayer(RenderContext)

public void RenderOutlineLayer(Scene.RenderContext renderContext)

Parameters

renderContext Scene.RenderContext

RenderTranslucentLayer(RenderContext)

public void RenderTranslucentLayer(Scene.RenderContext renderContext)

Parameters

renderContext Scene.RenderContext

RenderWaterLayer(RenderContext)

public void RenderWaterLayer(Scene.RenderContext renderContext)

Parameters

renderContext Scene.RenderContext

SetEnabledLayers(HashSet<string>)

public void SetEnabledLayers(HashSet<string> layers)

Parameters

layers HashSet<string>

SetFogConstants(ViewConstants)

public void SetFogConstants(ViewConstants viewConstants)

Parameters

viewConstants ViewConstants

SetSceneBuffers()

public void SetSceneBuffers()

SetupSceneShadows(Camera, int)

public void SetupSceneShadows(Camera camera, int shadowMapSize)

Parameters

camera Camera
shadowMapSize int

Update(UpdateContext)

public void Update(Scene.UpdateContext updateContext)

Parameters

updateContext Scene.UpdateContext

UpdateBuffers()

public void UpdateBuffers()

UpdateNodeIndices()

public void UpdateNodeIndices()

UpdateOctrees()

public void UpdateOctrees()