TCA_Weather_System's icon

TCA_Weather_System 1.4.0 Shaders 4.6 Community

Submitted by user ks222; MIT; 2026-04-24

TCA Weather System v1.4.0 - Editor Integration and Performance Update
TCA Weather System v1.4.0 - 编辑器集成与性能更新

---

What's New in v1.4.0 / 1.4.0 新特性

Editor Plugin Integration / 编辑器插件集成

English
- Registered as an official Godot editor plugin (plugin.cfg)
- "Add Weather to Scene" menu item for one-click weather setup
- Plugin appears in Project Settings under Plugins
- Weather controller automatically instantiated into the current scene

中文
- 注册为官方 Godot 编辑器插件 (plugin.cfg)
- "Add Weather to Scene" 菜单项,一键添加天气系统
- 插件出现在项目设置的插件列表中
- 天气控制器自动实例化到当前场景

---

Weather Audio Signal System / 天气音频信号系统

English
Exposes weather events as signals so developers can connect their own audio logic.

- weather_type_changed(old_type, new_type): Emitted when weather type changes
- rain_intensity_changed(intensity): Emitted when rain intensity changes
- snow_intensity_changed(intensity): Emitted when snow intensity changes
- fog_density_changed(density): Emitted when fog density changes
- wind_gust_triggered(strength): Emitted on wind gusts

中文
将天气事件暴露为信号,方便开发者连接自己的音频逻辑。

- weather_type_changed(old_type, new_type): 天气类型变化时发射
- rain_intensity_changed(intensity): 降雨强度变化时发射
- snow_intensity_changed(intensity): 降雪强度变化时发射
- fog_density_changed(density): 雾密度变化时发射
- wind_gust_triggered(strength): 阵风触发时发射

---

Performance Optimization / 性能优化

English
- VegetationWindDriver: Replaced find_children_by_type() with material registration system
- Eliminates per-frame scene tree traversal for vegetation wind updates
- Wind updates now O(n) where n equals registered materials, not total scene nodes
- Significant performance improvement for large or complex scenes

中文
- VegetationWindDriver: 将 find_children_by_type() 替换为材质注册系统
- 消除了植被风力更新时的每帧场景树遍历
- 风力更新现在的时间复杂度为 O(n),n 为已注册材质数量,而非场景节点总数
- 对大型或复杂场景有显著的性能提升

---

New Files in v1.4.0 / 1.4.0 新增文件

TCA_Weather_System/
├── plugin.cfg # Editor plugin registration / 编辑器插件注册
├── plugin.gd # Editor plugin script / 编辑器插件脚本
├── scripts/
│ ├── EnvironmentManager.gd # Updated with weather signals / 更新天气信号
│ └── VegetationWindDriver.gd # Updated with registration system / 更新注册系统

---

Quick Start / 快速上手

One-Click Scene Setup / 一键场景设置

Use the editor menu: Project - Tools - Add Weather to Scene

Or manually:
var weather = preload("res://addons/TCA_Weather_System/weather_controller.tscn").instantiate()
add_child(weather)

---

Weather Audio Integration Example / 天气音频集成示例

func _ready():
var env = $WeatherController
env.rain_intensity_changed.connect(func(intensity):
if intensity > 0.5:
$RainAudio.play()
else:
$RainAudio.stop()
)
env.wind_gust_triggered.connect(func(strength):
$GustAudio.volume_db = linear_to_db(strength)
$GustAudio.play()
)

---

Material Registration Example / 材质注册示例

func _ready():
var wind_driver = get_node("/root/World/VegetationWindDriver")
if wind_driver:
wind_driver.register_material(tree_material)
wind_driver.register_material(grass_material)
wind_driver.register_material(flower_material)

---

Volumetric Clouds / 体积云

var sky = $EnvironmentManager.sky_material
sky.set_shader_parameter("cloud_density", 0.3)
sky.set_shader_parameter("cloud_shadow", 0.5)
sky.set_shader_parameter("wind_direction", 45.0)

---

Wetness Effect / 湿润效果

var wetness = $TerrainWetness
wetness.wetness_strength = 0.8
wetness.dry_speed = 0.1

---

Fog Control / 雾控制

var env = $WorldEnvironment.environment
env.fog_height = 10.0
env.fog_density = 0.15 * rain_intensity

---

Performance Tuning / 性能调优

Setting Low Medium High Ultra
Wave Layers 1 2 3 3
Cloud Layers 1 2 3 3
Volumetric Clouds Off Low Mid Full
Wetness Effects Off Low Full Full
Particle Count 30% 60% 100% 100%

Mobile Recommended: Low Quality

---

Changelog / 更新日志

v1.4.0

English
- Added editor plugin integration (plugin.cfg + plugin.gd)
- Added "Add Weather to Scene" menu item
- Added weather audio signal system (5 new signals)
- Fixed VegetationWindDriver per-frame scene tree traversal performance issue
- Updated EnvironmentManager with weather signal emissions

中文
- 新增编辑器插件集成 (plugin.cfg + plugin.gd)
- 新增 "Add Weather to Scene" 菜单项
- 新增天气音频信号系统 (5 个新信号)
- 修复 VegetationWindDriver 每帧遍历场景树的性能问题
- 更新 EnvironmentManager 添加天气信号发射

v1.3.0
- Added volumetric cloud system with self-shadowing
- Added enhanced fog system with weather blending
- Enhanced day/night cycle with sunrise/sunset effects
- Added rain visual improvements and ground wetness
- Added particle system optimization for mobile

v1.2.0
- Added dynamic terrain wetness system
- Added vegetation interaction system
- Improved performance controller

v1.1.0
- Added performance optimization system
- Added global wind system with gust and turbulence
- Added weather transition and forecast system

v1.0.0
- Core water rendering system (Gerstner Waves, God Rays)
- Sky and atmosphere system (Rayleigh + Mie scattering)
- Environment management (10+ weather presets, seasons, day/night)

---

Credits / 致谢

Author: ks222
Volumetric Clouds: Custom raymarching implementation
Sky Shader: Inspired by UE5 atmospheric scattering
Water Shader: Custom Gerstner wave implementation

---

License / 协议

MIT License - Free for commercial and personal use.
MIT 协议 - 免费用于商业和个人用途。


View files Download Submit an issue Recent Edits