TagStateManager
from panda3d._rplight import TagStateManager
- class TagStateManager
Bases:
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
- __init__(main_cam_node: panda3d.core.NodePath)
This constructs a new
TagStateManager
. The #main_cam_node should refer to the main scene camera, and will most likely be base.cam. It is necessary to pass the camera because the C++ code does not have access to the showbase.
- __init__(param0: TagStateManager)
- apply_state(state: str, np: panda3d.core.NodePath, shader: panda3d.core.Shader, name: str, sort: int)
This applies a shader to the given
NodePath
which is used when theNodePath
is rendered by any registered camera for that pass. It also disables color write depending on the pass.
- cleanup_states()
This cleans up all states which were registered to the
TagStateManager
. It also callsCamera.clear_tag_states()
on the main_cam_node and all attached cameras.
- get_mask(container_name: str) → panda3d.core.BitMask32
This returns the mask of a given render pass, which can be used to either show or hide objects from this pass.
- register_camera(state: str, source: panda3d.core.Camera)
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 withCamera.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.
- unregister_camera(state: str, source: panda3d.core.Camera)
This unregisters a camera from the list of shadows cameras. It also resets all tag states of the camera, and also its initial state.