simvx.core.fog_volume

FogVolume3D — Localised volumetric fog node for 3D scenes.

Module Contents

Classes

FogVolumeShape

Shape of a FogVolume3D region.

FogMaterial

Custom material controlling fog appearance inside a FogVolume3D.

FogVolume3D

Localised volumetric fog region in 3D space.

Data

log

API

simvx.core.fog_volume.log[source]

‘getLogger(…)’

class simvx.core.fog_volume.FogVolumeShape[source]

Bases: enum.IntEnum

Shape 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’)

__repr__() str[source]
class simvx.core.fog_volume.FogVolume3D(**kwargs)[source]

Bases: simvx.core.nodes_3d.node3d.Node3D

Localised 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
find_all(node_type: type, recursive: bool = True) list
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__()