TruncationCounts

Qualified name: algan.rendering.raytracing.truncation.TruncationCounts

class TruncationCounts(surfaces_per_ray=0, shadow_lights=0, sheet_layers=0, dropped_continuations=0, closed_shell_ring=0, medium_stack=0, medium_query=0)[source]

Bases: object

How many times each render ceiling bound during a render.

Attached to RenderPlan as its truncations field, and therefore reachable from a finished render as RenderResult.render_plan.truncations. Every count is cumulative over the render job, so the plan of the last batch carries the whole render’s totals.

A count of zero means the ceiling was watched and never bound.

Methods

as_dict

Attributes

closed_shell_ring

Path-traced camera-segment crossings of a declared closed shell that found the per-ray ring full; those crossings attenuated per crossing (the pre-ceiling behaviour) instead of once per entry/exit pair.

dropped_continuations

Reflection/refraction continuation rays that could not reserve a pool slot and were dropped.

medium_query

Containment or extinction queries that exhausted the surface budget.

medium_stack

Medium paths/queries that exceeded the fixed shell stack; absorbed.

shadow_lights

Light slots past max_shadow_lights in the worst batch of the render.

sheet_layers

Fragments that were the 17th or later layer of their own surface in one pixel, and so merged into the 16th sub-band.

surfaces_per_ray

Primary rays that composited max_surfaces_per_ray surfaces and stopped with transport left to carry.

total

Sum of every counter -- zero exactly when nothing was truncated.

Parameters:
  • surfaces_per_ray (int)

  • shadow_lights (int)

  • sheet_layers (int)

  • dropped_continuations (int)

  • closed_shell_ring (int)

  • medium_stack (int)

  • medium_query (int)

closed_shell_ring: int = 0

Path-traced camera-segment crossings of a declared closed shell that found the per-ray ring full; those crossings attenuated per crossing (the pre-ceiling behaviour) instead of once per entry/exit pair.

dropped_continuations: int = 0

Reflection/refraction continuation rays that could not reserve a pool slot and were dropped.

medium_query: int = 0

Containment or extinction queries that exhausted the surface budget.

medium_stack: int = 0

Medium paths/queries that exceeded the fixed shell stack; absorbed.

shadow_lights: int = 0

Light slots past max_shadow_lights in the worst batch of the render. Those lights are lit but cast no shadow. The one counter here that is a state rather than a tally of events – the same surplus lights are over the cap in every batch they are spawned for – so it is reduced with a maximum and reads as “this many lights went unshadowed”.

sheet_layers: int = 0

Fragments that were the 17th or later layer of their own surface in one pixel, and so merged into the 16th sub-band.

surfaces_per_ray: int = 0

Primary rays that composited max_surfaces_per_ray surfaces and stopped with transport left to carry.

property total: int

Sum of every counter – zero exactly when nothing was truncated.