This is a Godot 4 plugin providing a comprehensive suite of shaders and tools to recreate the PlayStation 1 aesthetic. It features vertex snapping, affine texture mapping, distance-based fog, and post-processing dithering managed through Global Shader Uniforms.The plugin includes specialized shaders for opaque, transparent, and double-sided materials, along with two key autoloads: PsxVisualsGd4AutoLoad for screen-space dithering and PsxVisualsGd4AutoApply for automatic runtime material conversion.To install, copy the addons folder to your project and enable the plugin in Project Settings. A setup dialog will appear to initialize Shader Globals and toggle autoloads.Users can apply effects manually using the provided shaders or use the Auto-Apply system which replaces StandardMaterial3D at runtime. For fine-tuned control, right-click any node in the Scene Tree to access the PSX Visuals Settings menu to toggle effects or override material types for specific branches.Global settings like vertex snap distance, affine strength, and fog color are managed under Project Settings > Globals > Shader Globals.When updating, disable the plugin and ensure the cleanup options for Shader Globals and Metadata are unchecked to preserve your project configuration before replacing the addon folder.Full documentation available at:https://github.com/scolastico/psx_visuals_gd4
Quick Information
TCA Weather System v1.4.0 - Editor Integration and Performance UpdateTCA 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 / 天气音频信号系统EnglishExposes 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 SceneOr 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_materialsky.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 = $TerrainWetnesswetness.wetness_strength = 0.8wetness.dry_speed = 0.1---Fog Control / 雾控制var env = $WorldEnvironment.environmentenv.fog_height = 10.0env.fog_density = 0.15 * rain_intensity---Performance Tuning / 性能调优Setting Low Medium High UltraWave Layers 1 2 3 3Cloud Layers 1 2 3 3Volumetric Clouds Off Low Mid FullWetness Effects Off Low Full FullParticle Count 30% 60% 100% 100%Mobile Recommended: Low Quality---Changelog / 更新日志v1.4.0English- 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 mobilev1.2.0- Added dynamic terrain wetness system- Added vegetation interaction system- Improved performance controllerv1.1.0- Added performance optimization system- Added global wind system with gust and turbulence- Added weather transition and forecast systemv1.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: ks222Volumetric Clouds: Custom raymarching implementationSky Shader: Inspired by UE5 atmospheric scatteringWater Shader: Custom Gerstner wave implementation---License / 协议MIT License - Free for commercial and personal use.MIT 协议 - 免费用于商业和个人用途。
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 协议 - 免费用于商业和个人用途。
Reviews
Quick Information
TCA Weather System v1.4.0 - Editor Integration and Performance UpdateTCA 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 / 天气音频信号系统EnglishExposes 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 SceneOr 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_materialsky.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 = $TerrainWetnesswetness.wetness_strength = 0.8wetness.dry_speed = 0.1---Fog Control / 雾控制var env = $WorldEnvironment.environmentenv.fog_height = 10.0env.fog_density = 0.15 * rain_intensity---Performance Tuning / 性能调优Setting Low Medium High UltraWave Layers 1 2 3 3Cloud Layers 1 2 3 3Volumetric Clouds Off Low Mid FullWetness Effects Off Low Full FullParticle Count 30% 60% 100% 100%Mobile Recommended: Low Quality---Changelog / 更新日志v1.4.0English- 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 mobilev1.2.0- Added dynamic terrain wetness system- Added vegetation interaction system- Improved performance controllerv1.1.0- Added performance optimization system- Added global wind system with gust and turbulence- Added weather transition and forecast systemv1.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: ks222Volumetric Clouds: Custom raymarching implementationSky Shader: Inspired by UE5 atmospheric scatteringWater Shader: Custom Gerstner wave implementation---License / 协议MIT License - Free for commercial and personal use.MIT 协议 - 免费用于商业和个人用途。