simvx.core.world_environment¶
WorldEnvironment, Environment, and PostProcessEffect for SimVX.
Module Contents¶
Classes¶
User-defined fullscreen post-processing shader effect. |
|
Global rendering environment settings for a scene. |
|
Environment resource that can be shared between WorldEnvironment nodes. |
Data¶
API¶
- class simvx.core.world_environment.PostProcessEffect(shader_code: str = '', *, enabled: bool = True, order: int = 0, language: str = 'glsl')[source]¶
User-defined fullscreen post-processing shader effect.
Holds fragment GLSL source, uniform values, enable state, and execution order. The graphics backend compiles the shader and executes it as a fullscreen pass.
Standard uniforms provided automatically to every effect: -
u_time(float): elapsed time in seconds -u_resolution(vec2): screen resolution in pixels -u_colour_tex(sampler2D): current framebuffer colour -u_depth_tex(sampler2D): scene depth bufferExample::
effect = PostProcessEffect( shader_code=""" void main() { vec2 uv = gl_FragCoord.xy / u_resolution; vec3 colour = texture(u_colour_tex, uv).rgb; frag_colour = vec4(vec3(dot(colour, vec3(0.299, 0.587, 0.114))), 1.0); } """, order=10, ) effect.set_uniform("intensity", 0.5) world_env.add_post_process(effect)Initialization
- __slots__¶
(‘_shader_code’, ‘_enabled’, ‘_order’, ‘_uniforms’, ‘_uniform_types’, ‘_dirty’, ‘_language’)
- property language: str¶
Shader language: ‘glsl’ (default) or ‘wgsl’ (WebGPU).
- property shader_code: str¶
Fragment shader source (the body; version/layout is auto-wrapped by the renderer).
- property enabled: bool¶
- property order: int¶
Execution priority — lower values run first.
- property uniforms: dict[str, Any]¶
Read-only copy of current uniform values.
- property dirty: bool¶
Whether the shader or uniforms have changed since last GPU sync.
- class simvx.core.world_environment.WorldEnvironment(name: str = 'WorldEnvironment', **kwargs)[source]¶
Bases:
simvx.core.node.NodeGlobal rendering environment settings for a scene.
Initialization
- ambient_light_colour¶
‘Property(…)’
- ambient_light_energy¶
‘Property(…)’
- ambient_light_mode¶
‘Property(…)’
- fog_enabled¶
‘Property(…)’
- fog_colour¶
‘Property(…)’
- fog_density¶
‘Property(…)’
- fog_start¶
‘Property(…)’
- fog_end¶
‘Property(…)’
- fog_mode¶
‘Property(…)’
- fog_height¶
‘Property(…)’
- fog_height_density¶
‘Property(…)’
- tonemap_mode¶
‘Property(…)’
- tonemap_exposure¶
‘Property(…)’
- tonemap_white¶
‘Property(…)’
- bloom_enabled¶
‘Property(…)’
- bloom_threshold¶
‘Property(…)’
- bloom_intensity¶
‘Property(…)’
- volumetric_fog_enabled¶
‘Property(…)’
- volumetric_fog_density¶
‘Property(…)’
- volumetric_fog_albedo¶
‘Property(…)’
- volumetric_fog_emission¶
‘Property(…)’
- volumetric_fog_anisotropy¶
‘Property(…)’
- volumetric_fog_length¶
‘Property(…)’
- volumetric_fog_gi_inject¶
‘Property(…)’
- volumetric_fog_temporal_reprojection¶
‘Property(…)’
- ssao_enabled¶
‘Property(…)’
- dof_enabled¶
‘Property(…)’
- dof_focus_distance¶
‘Property(…)’
- dof_focus_range¶
‘Property(…)’
- motion_blur_enabled¶
‘Property(…)’
- motion_blur_intensity¶
‘Property(…)’
- motion_blur_samples¶
‘Property(…)’
- film_grain_enabled¶
‘Property(…)’
- film_grain_intensity¶
‘Property(…)’
- vignette_enabled¶
‘Property(…)’
- vignette_intensity¶
‘Property(…)’
- vignette_smoothness¶
‘Property(…)’
- chromatic_aberration_enabled¶
‘Property(…)’
- chromatic_aberration_intensity¶
‘Property(…)’
- colour_grading_enabled¶
‘Property(…)’
- sky_mode¶
‘Property(…)’
- sky_colour_top¶
‘Property(…)’
- sky_colour_bottom¶
‘Property(…)’
- sky_texture¶
‘Property(…)’
- property env_dirty: bool¶
- add_post_process(effect: simvx.core.world_environment.PostProcessEffect) None[source]¶
Register a custom post-processing effect.
- remove_post_process(effect: simvx.core.world_environment.PostProcessEffect) None[source]¶
Unregister a custom post-processing effect.
- get_post_processes() list[simvx.core.world_environment.PostProcessEffect][source]¶
Return registered effects sorted by order.
- 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__()¶
- class simvx.core.world_environment.Environment[source]¶
Environment resource that can be shared between WorldEnvironment nodes.
Initialization
- add_post_process(effect: simvx.core.world_environment.PostProcessEffect) None[source]¶
Register a custom post-processing effect.
- remove_post_process(effect: simvx.core.world_environment.PostProcessEffect) None[source]¶
Unregister a custom post-processing effect.
- get_post_processes() list[simvx.core.world_environment.PostProcessEffect][source]¶
Return registered effects sorted by order.