# {py:mod}`simvx.graphics.renderer.shadow_math` ```{py:module} simvx.graphics.renderer.shadow_math ``` ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`depth_to_ndc ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.depth_to_ndc :summary: ``` * - {py:obj}`compute_splits ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.compute_splits :summary: ``` * - {py:obj}`compute_cascades ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.compute_cascades :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.__all__ :summary: ``` * - {py:obj}`DEFAULT_CASCADE_COUNT ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.DEFAULT_CASCADE_COUNT :summary: ``` * - {py:obj}`DEFAULT_LAMBDA ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.DEFAULT_LAMBDA :summary: ``` * - {py:obj}`DEFAULT_PADDING ` - ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.DEFAULT_PADDING :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.graphics.renderer.shadow_math.__all__ :value: > ['DEFAULT_CASCADE_COUNT', 'DEFAULT_LAMBDA', 'compute_cascades', 'compute_splits', 'depth_to_ndc'] ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.__all__ ``` ```` ````{py:data} DEFAULT_CASCADE_COUNT :canonical: simvx.graphics.renderer.shadow_math.DEFAULT_CASCADE_COUNT :value: > 3 ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.DEFAULT_CASCADE_COUNT ``` ```` ````{py:data} DEFAULT_LAMBDA :canonical: simvx.graphics.renderer.shadow_math.DEFAULT_LAMBDA :value: > 0.5 ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.DEFAULT_LAMBDA ``` ```` ````{py:data} DEFAULT_PADDING :canonical: simvx.graphics.renderer.shadow_math.DEFAULT_PADDING :value: > 0.1 ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.DEFAULT_PADDING ``` ```` ````{py:function} depth_to_ndc(z_eye: float, proj: numpy.ndarray) -> float :canonical: simvx.graphics.renderer.shadow_math.depth_to_ndc ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.depth_to_ndc ``` ```` ````{py:function} compute_splits(near: float, far: float, cascade_count: int = DEFAULT_CASCADE_COUNT, lambda_split: float = DEFAULT_LAMBDA) -> numpy.ndarray :canonical: simvx.graphics.renderer.shadow_math.compute_splits ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.compute_splits ``` ```` ````{py:function} compute_cascades(view: numpy.ndarray, proj: numpy.ndarray, light_dir: numpy.ndarray, near: float | None = None, far: float | None = None, cascade_count: int = DEFAULT_CASCADE_COUNT, lambda_split: float = DEFAULT_LAMBDA, padding: float = DEFAULT_PADDING, max_far: float = 300.0) -> tuple[numpy.ndarray, numpy.ndarray] :canonical: simvx.graphics.renderer.shadow_math.compute_cascades ```{autodoc2-docstring} simvx.graphics.renderer.shadow_math.compute_cascades ``` ````