rain_gpu.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "../../game/map/map_definition.h"
  3. #include <QVector3D>
  4. #include <QVector4D>
  5. #include <cstdint>
  6. namespace Render::GL {
  7. struct RainDropInstanceGpu {
  8. QVector4D pos_velocity;
  9. QVector4D size_alpha;
  10. };
  11. struct RainBatchParams {
  12. static constexpr float k_default_rain_drop_speed = 20.0F;
  13. static constexpr float k_default_rain_drop_length = 1.2F;
  14. static constexpr float k_default_rain_drop_width = 0.025F;
  15. static constexpr float k_default_snow_drop_speed = 0.1F;
  16. static constexpr float k_default_snow_drop_size = 0.08F;
  17. static constexpr float k_rain_speed_variation_min = 0.8F;
  18. static constexpr float k_rain_speed_variation_range = 0.4F;
  19. static constexpr float k_snow_speed_variation_min = 0.6F;
  20. static constexpr float k_snow_speed_variation_range = 0.8F;
  21. Game::Map::WeatherType weather_type = Game::Map::WeatherType::Rain;
  22. float time = 0.0F;
  23. float intensity = 0.5F;
  24. float drop_speed = k_default_rain_drop_speed;
  25. float drop_length = k_default_rain_drop_length;
  26. float drop_width = k_default_rain_drop_width;
  27. float wind_strength = 0.0F;
  28. QVector3D wind_direction{1.0F, 0.0F, 0.3F};
  29. };
  30. } // namespace Render::GL