from panda3d._rplight import TagStateManager
class TagStateManager

The TagStateManager stores a list of RenderStates assigned to different steps in the pipeline. For example, there are a list of shadow states, which are applied whenever objects are rendered from a shadow camera.

The Manager also stores a list of all cameras used in the different stages, to keep track of the states used and to be able to attach new states.

Inheritance diagram

Inheritance diagram of TagStateManager

__init__(main_cam_node: NodePath) → None

This constructs a new TagStateManager. The #main_cam_node should refer to the main scene camera, and will most likely be It is necessary to pass the camera because the C++ code does not have access to the showbase.

__init__(param0: TagStateManager) → None
applyState(state: str, np: NodePath, shader: Shader, name: str, sort: int) → None

This applies a shader to the given NodePath which is used when the NodePath is rendered by any registered camera for that pass. It also disables color write depending on the pass.

cleanupStates() → None

This cleans up all states which were registered to the TagStateManager. It also calls Camera::clear_tag_states() on the main_cam_node and all attached cameras.

getMask(container_name: str) → BitMask32

This returns the mask of a given render pass, which can be used to either show or hide objects from this pass.

Return type


registerCamera(state: str, source: Camera) → None

This registers a new camera which will be used to render the given pass. The TagStateManager will keep track of the camera and applies all registered states onto the camera with Camera::set_tag_state. It also applies the appropriate camera mask to the camera, and sets an initial state to disable color write depending on the pass.

unregisterCamera(state: str, source: Camera) → None

This unregisters a camera from the list of shadows cameras. It also resets all tag states of the camera, and also its initial state.