simvx.core.fog_volume¶
FogVolume3D — Localised volumetric fog node for 3D scenes.
Module Contents¶
Classes¶
Shape of a FogVolume3D region. |
|
Custom material controlling fog appearance inside a FogVolume3D. |
|
Localised volumetric fog region in 3D space. |
Data¶
API¶
- class simvx.core.fog_volume.FogVolumeShape[source]¶
Bases:
enum.IntEnumShape of a FogVolume3D region.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- BOX¶
0
- SPHERE¶
1
- CYLINDER¶
2
- __abs__()¶
- __add__()¶
- __and__()¶
- __bool__()¶
- __ceil__()¶
- __delattr__()¶
- __dir__()¶
- __divmod__()¶
- __eq__()¶
- __float__()¶
- __floor__()¶
- __floordiv__()¶
- __format__()¶
- __ge__()¶
- __getattribute__()¶
- __getnewargs__()¶
- __getstate__()¶
- __gt__()¶
- __hash__()¶
- __index__()¶
- __int__()¶
- __invert__()¶
- __le__()¶
- __lshift__()¶
- __lt__()¶
- __mod__()¶
- __mul__()¶
- __ne__()¶
- __neg__()¶
- __new__()¶
- __or__()¶
- __pos__()¶
- __pow__()¶
- __radd__()¶
- __rand__()¶
- __rdivmod__()¶
- __reduce__()¶
- __reduce_ex__()¶
- __repr__()¶
- __rfloordiv__()¶
- __rlshift__()¶
- __rmod__()¶
- __rmul__()¶
- __ror__()¶
- __round__()¶
- __rpow__()¶
- __rrshift__()¶
- __rshift__()¶
- __rsub__()¶
- __rtruediv__()¶
- __rxor__()¶
- __setattr__()¶
- __sizeof__()¶
- __str__()¶
- __sub__()¶
- __subclasshook__()¶
- __truediv__()¶
- __trunc__()¶
- __xor__()¶
- as_integer_ratio()¶
- bit_count()¶
- bit_length()¶
- conjugate()¶
- class denominator¶
- class imag¶
- is_integer()¶
- class numerator¶
- class real¶
- to_bytes()¶
- __deepcopy__(memo)¶
- __copy__()¶
- name()¶
- value()¶
- class simvx.core.fog_volume.FogMaterial(*, albedo: tuple[float, ...] = (1.0, 1.0, 1.0, 1.0), density: float = 1.0, emission: tuple[float, ...] = (0.0, 0.0, 0.0, 0.0), scattering: float = 0.0, absorption: float = 0.0)[source]¶
Custom material controlling fog appearance inside a FogVolume3D.
Attributes: albedo: Base colour of the fog (RGBA). density: Override density (applied multiplicatively with the volume’s density). emission: Emissive colour contribution (RGB + intensity in alpha). scattering: Anisotropy of light scattering (-1 backward, 0 isotropic, +1 forward). absorption: How much light the fog absorbs per unit distance.
Initialization
- __slots__¶
(‘albedo’, ‘density’, ‘emission’, ‘scattering’, ‘absorption’)
- class simvx.core.fog_volume.FogVolume3D(**kwargs)[source]¶
Bases:
simvx.core.nodes_3d.node3d.Node3DLocalised volumetric fog region in 3D space.
Places a shaped fog volume (box, sphere, or cylinder) into the scene. The renderer samples this volume during the lighting pass to produce volumetric fog effects such as god rays, ground mist, and dust clouds.
Attributes: shape: Geometric shape of the volume (box, sphere, cylinder). size: Extents of the volume in local space (full width/height/depth for box, diameter on each axis for sphere, diameter + height for cylinder). density: Fog density inside the volume (0 = transparent, 1 = fully opaque). albedo: Fog colour as RGBA tuple. falloff: Rate at which fog density drops off near the volume boundary. height_falloff: Vertical density gradient — higher values concentrate fog at the bottom. priority: Rendering priority when volumes overlap (higher wins).
Example::
fog = FogVolume3D(position=(0, 1, 0)) fog.shape = FogVolumeShape.SPHERE fog.size = Vec3(5, 5, 5) fog.density = 0.3 fog.albedo = (0.8, 0.85, 0.9, 1.0) scene.add_child(fog)
Initialization
- shape¶
‘Property(…)’
- size¶
‘Property(…)’
- density¶
‘Property(…)’
- albedo¶
‘Property(…)’
- falloff¶
‘Property(…)’
- height_falloff¶
‘Property(…)’
- priority¶
‘Property(…)’
- gizmo_colour¶
‘Property(…)’
- property material: simvx.core.fog_volume.FogMaterial | None¶
Optional FogMaterial for advanced fog appearance control.
- property effective_density: float¶
Density after applying material multiplier.
- get_gizmo_lines() list[tuple[simvx.core.math.types.Vec3, simvx.core.math.types.Vec3]][source]¶
Return wireframe lines for the editor gizmo based on current shape.
- render_layer¶
‘Property(…)’
- property position¶
- property rotation: simvx.core.math.types.Quat¶
- property scale¶
- property rotation_degrees: simvx.core.math.types.Vec3¶
- property world_position: simvx.core.math.types.Vec3¶
- property world_rotation: simvx.core.math.types.Quat¶
- property world_scale: simvx.core.math.types.Vec3¶
- property forward: simvx.core.math.types.Vec3¶
- property right: simvx.core.math.types.Vec3¶
- property up: simvx.core.math.types.Vec3¶
- translate(offset: tuple[float, float, float] | numpy.ndarray)¶
- translate_global(offset: tuple[float, float, float] | numpy.ndarray)¶
- rotate(axis: tuple[float, float, float] | numpy.ndarray, angle: float)¶
- rotate_x(angle: float)¶
- rotate_y(angle: float)¶
- rotate_z(angle: float)¶
- look_at(target: tuple[float, float, float] | numpy.ndarray, up=None)¶
- set_render_layer(index: int, enabled: bool = True) None¶
- is_on_render_layer(index: int) bool¶
- wrap_bounds(bounds: tuple[float, float, float] | numpy.ndarray, margin: float = 1.0)¶
- strict_errors: ClassVar[bool]¶
True
- script_error_raised¶
‘Signal(…)’
- classmethod __init_subclass__(**kwargs)¶
- property name: str¶
- property process_mode: simvx.core.descriptors.ProcessMode¶
- reset_error() None¶
- add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
- remove_child(node: simvx.core.node.Node)¶
- reparent(new_parent: simvx.core.node.Node)¶
- get_node(path: str) simvx.core.node.Node¶
- find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
- find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
- property path: str¶
- add_to_group(group: str)¶
- remove_from_group(group: str)¶
- is_in_group(group: str) bool¶
- ready() None¶
- enter_tree() None¶
- exit_tree() None¶
- process(dt: float) None¶
- physics_process(dt: float) None¶
- draw(renderer) None¶
- input_event(event: simvx.core.events.InputEvent) None¶
- input(event: simvx.core.events.TreeInputEvent) None¶
- unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
- start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
- stop_coroutine(gen_or_handle)¶
- clear_children()¶
- destroy()¶
- property app¶
- property tree: simvx.core.scene_tree.SceneTree¶
- get_tree() simvx.core.scene_tree.SceneTree¶
- __getitem__(key: str)¶
- classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
- __repr__()¶