# {py:mod}`simvx.graphics.renderer.decal_pack` ```{py:module} simvx.graphics.renderer.decal_pack ``` ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`pack_decal ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.pack_decal :summary: ``` * - {py:obj}`compute_decal_tile_masks ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.compute_decal_tile_masks :summary: ``` * - {py:obj}`build_decal_buffer ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.build_decal_buffer :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.__all__ :summary: ``` * - {py:obj}`MAX_DECALS ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.MAX_DECALS :summary: ``` * - {py:obj}`DECAL_DTYPE ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_DTYPE :summary: ``` * - {py:obj}`DECAL_STRIDE ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_STRIDE :summary: ``` * - {py:obj}`DECAL_HEADER_SIZE ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_HEADER_SIZE :summary: ``` * - {py:obj}`DECAL_BUFFER_SIZE ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_BUFFER_SIZE :summary: ``` * - {py:obj}`DECAL_TILE_PX ` - ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_TILE_PX :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.graphics.renderer.decal_pack.__all__ :value: > ['MAX_DECALS', 'DECAL_DTYPE', 'DECAL_STRIDE', 'DECAL_HEADER_SIZE', 'DECAL_BUFFER_SIZE', 'DECAL_TILE_... ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.__all__ ``` ```` ````{py:data} MAX_DECALS :canonical: simvx.graphics.renderer.decal_pack.MAX_DECALS :value: > 64 ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.MAX_DECALS ``` ```` ````{py:data} DECAL_DTYPE :canonical: simvx.graphics.renderer.decal_pack.DECAL_DTYPE :value: > 'dtype(...)' ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_DTYPE ``` ```` ````{py:data} DECAL_STRIDE :canonical: simvx.graphics.renderer.decal_pack.DECAL_STRIDE :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_STRIDE ``` ```` ````{py:data} DECAL_HEADER_SIZE :canonical: simvx.graphics.renderer.decal_pack.DECAL_HEADER_SIZE :value: > 16 ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_HEADER_SIZE ``` ```` ````{py:data} DECAL_BUFFER_SIZE :canonical: simvx.graphics.renderer.decal_pack.DECAL_BUFFER_SIZE :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_BUFFER_SIZE ``` ```` ````{py:data} DECAL_TILE_PX :canonical: simvx.graphics.renderer.decal_pack.DECAL_TILE_PX :value: > 16 ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.DECAL_TILE_PX ``` ```` ````{py:function} pack_decal(model: numpy.ndarray, modulate: typing.Any, albedo_mix: float, albedo_tex: int, normal_tex: int, normal_mix: float, upper_fade: float, lower_fade: float, dist_begin: float, dist_length: float, cull_mask: int = 4294967295) -> numpy.ndarray :canonical: simvx.graphics.renderer.decal_pack.pack_decal ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.pack_decal ``` ```` ````{py:function} compute_decal_tile_masks(models: list[numpy.ndarray], view: numpy.ndarray, proj: numpy.ndarray, width: int, height: int, tile_px: int = DECAL_TILE_PX) -> tuple[int, int, numpy.ndarray] :canonical: simvx.graphics.renderer.decal_pack.compute_decal_tile_masks ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.compute_decal_tile_masks ``` ```` ````{py:function} build_decal_buffer(records: list[numpy.ndarray], *, tile_masks: numpy.ndarray | None = None, grid_x: int = 0, grid_y: int = 0, tile_px: int = 0) -> numpy.ndarray :canonical: simvx.graphics.renderer.decal_pack.build_decal_buffer ```{autodoc2-docstring} simvx.graphics.renderer.decal_pack.build_decal_buffer ``` ````