Extended PythonAPI for weather
This commit is contained in:
parent
8e111ab208
commit
829664d8a3
|
@ -11,22 +11,22 @@ namespace rpc {
|
|||
|
||||
using WP = WeatherParameters;
|
||||
|
||||
// cloudiness precip. prec.dep. wind azimuth altitude fog dens fog dist fog fall wetness
|
||||
WP WP::Default = { -1.0f, -1.0f, -1.0f, -1.00f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f};
|
||||
WP WP::ClearNoon = { 15.0f, 0.0f, 0.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::CloudyNoon = { 80.0f, 0.0f, 0.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::WetNoon = { 20.0f, 0.0f, 50.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::WetCloudyNoon = { 80.0f, 0.0f, 50.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::MidRainyNoon = { 80.0f, 30.0f, 50.0f, 0.40f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::HardRainNoon = { 90.0f, 60.0f, 100.0f, 1.00f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::SoftRainNoon = { 70.0f, 15.0f, 50.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::ClearSunset = { 15.0f, 0.0f, 0.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::CloudySunset = { 80.0f, 0.0f, 0.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::WetSunset = { 20.0f, 0.0f, 50.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::WetCloudySunset = { 90.0f, 0.0f, 50.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::MidRainSunset = { 80.0f, 30.0f, 50.0f, 0.40f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::HardRainSunset = { 80.0f, 60.0f, 100.0f, 1.00f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
WP WP::SoftRainSunset = { 90.0f, 15.0f, 50.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
// cloudiness precip. prec.dep. wind azimuth altitude fog dens fog dist fog fall wetness scat.i mie.scat.s rayleigh.scat.scale
|
||||
WP WP::Default = { -1.0f, -1.0f, -1.0f, -1.00f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::ClearNoon = { 15.0f, 0.0f, 0.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::CloudyNoon = { 80.0f, 0.0f, 0.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::WetNoon = { 20.0f, 0.0f, 50.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::WetCloudyNoon = { 80.0f, 0.0f, 50.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::MidRainyNoon = { 80.0f, 30.0f, 50.0f, 0.40f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::HardRainNoon = { 90.0f, 60.0f, 100.0f, 1.00f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::SoftRainNoon = { 70.0f, 15.0f, 50.0f, 0.35f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::ClearSunset = { 15.0f, 0.0f, 0.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::CloudySunset = { 80.0f, 0.0f, 0.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::WetSunset = { 20.0f, 0.0f, 50.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::WetCloudySunset = { 90.0f, 0.0f, 50.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::MidRainSunset = { 80.0f, 30.0f, 50.0f, 0.40f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::HardRainSunset = { 80.0f, 60.0f, 100.0f, 1.00f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
WP WP::SoftRainSunset = { 90.0f, 15.0f, 50.0f, 0.35f, 0.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0331f};
|
||||
|
||||
} // namespace rpc
|
||||
} // namespace carla
|
||||
|
|
|
@ -51,7 +51,10 @@ namespace rpc {
|
|||
float in_fog_density,
|
||||
float in_fog_distance,
|
||||
float in_fog_falloff,
|
||||
float in_wetness)
|
||||
float in_wetness,
|
||||
float in_scattering_intensity,
|
||||
float in_mie_scattering_scale,
|
||||
float in_rayleigh_scattering_scale)
|
||||
: cloudiness(in_cloudiness),
|
||||
precipitation(in_precipitation),
|
||||
precipitation_deposits(in_precipitation_deposits),
|
||||
|
@ -61,7 +64,10 @@ namespace rpc {
|
|||
fog_density(in_fog_density),
|
||||
fog_distance(in_fog_distance),
|
||||
fog_falloff(in_fog_falloff),
|
||||
wetness(in_wetness) {}
|
||||
wetness(in_wetness),
|
||||
scattering_intensity(in_scattering_intensity),
|
||||
mie_scattering_scale(in_mie_scattering_scale),
|
||||
rayleigh_scattering_scale(in_rayleigh_scattering_scale) {}
|
||||
|
||||
float cloudiness = 0.0f;
|
||||
float precipitation = 0.0f;
|
||||
|
@ -73,6 +79,9 @@ namespace rpc {
|
|||
float fog_distance = 0.0f;
|
||||
float fog_falloff = 0.0f;
|
||||
float wetness = 0.0f;
|
||||
float scattering_intensity = 0.0f;
|
||||
float mie_scattering_scale = 0.0f;
|
||||
float rayleigh_scattering_scale = 0.0331f;
|
||||
|
||||
#ifdef LIBCARLA_INCLUDED_FROM_UE4
|
||||
|
||||
|
@ -86,7 +95,10 @@ namespace rpc {
|
|||
fog_density(Weather.FogDensity),
|
||||
fog_distance(Weather.FogDistance),
|
||||
fog_falloff(Weather.FogFalloff),
|
||||
wetness(Weather.Wetness) {}
|
||||
wetness(Weather.Wetness),
|
||||
scattering_intensity(Weather.ScatteringIntensity),
|
||||
mie_scattering_scale(Weather.MieScatteringScale),
|
||||
rayleigh_scattering_scale(Weather.RayleighScatteringScale) {}
|
||||
|
||||
operator FWeatherParameters() const {
|
||||
FWeatherParameters Weather;
|
||||
|
@ -100,6 +112,10 @@ namespace rpc {
|
|||
Weather.FogDistance = fog_distance;
|
||||
Weather.FogFalloff = fog_falloff;
|
||||
Weather.Wetness = wetness;
|
||||
Weather.ScatteringIntensity = scattering_intensity;
|
||||
Weather.MieScatteringScale = mie_scattering_scale;
|
||||
Weather.RayleighScatteringScale = rayleigh_scattering_scale;
|
||||
|
||||
return Weather;
|
||||
}
|
||||
|
||||
|
@ -116,7 +132,10 @@ namespace rpc {
|
|||
fog_density != rhs.fog_density ||
|
||||
fog_distance != rhs.fog_distance ||
|
||||
fog_falloff != rhs.fog_falloff ||
|
||||
wetness != rhs.wetness;
|
||||
wetness != rhs.wetness ||
|
||||
scattering_intensity != rhs.scattering_intensity ||
|
||||
mie_scattering_scale != rhs.mie_scattering_scale ||
|
||||
rayleigh_scattering_scale != rhs.rayleigh_scattering_scale;
|
||||
}
|
||||
|
||||
bool operator==(const WeatherParameters &rhs) const {
|
||||
|
@ -133,7 +152,10 @@ namespace rpc {
|
|||
fog_density,
|
||||
fog_distance,
|
||||
fog_falloff,
|
||||
wetness);
|
||||
wetness,
|
||||
scattering_intensity,
|
||||
mie_scattering_scale,
|
||||
rayleigh_scattering_scale);
|
||||
};
|
||||
|
||||
} // namespace rpc
|
||||
|
|
|
@ -22,7 +22,10 @@ namespace rpc {
|
|||
<< ", fog_density=" << std::to_string(weather.fog_density)
|
||||
<< ", fog_distance=" << std::to_string(weather.fog_distance)
|
||||
<< ", fog_falloff=" << std::to_string(weather.fog_falloff)
|
||||
<< ", wetness=" << std::to_string(weather.wetness) << ')';
|
||||
<< ", wetness=" << std::to_string(weather.wetness)
|
||||
<< ", scattering_intensity=" << std::to_string(weather.scattering_intensity)
|
||||
<< ", mie_scattering_scale=" << std::to_string(weather.mie_scattering_scale)
|
||||
<< ", rayleigh_scattering_scale=" << std::to_string(weather.rayleigh_scattering_scale) << ')';
|
||||
return out;
|
||||
}
|
||||
|
||||
|
@ -34,7 +37,7 @@ void export_weather() {
|
|||
namespace cr = carla::rpc;
|
||||
|
||||
auto cls = class_<cr::WeatherParameters>("WeatherParameters")
|
||||
.def(init<float, float, float, float, float, float, float, float, float, float>(
|
||||
.def(init<float, float, float, float, float, float, float, float, float, float, float, float, float>(
|
||||
(arg("cloudiness")=0.0f,
|
||||
arg("precipitation")=0.0f,
|
||||
arg("precipitation_deposits")=0.0f,
|
||||
|
@ -44,7 +47,10 @@ void export_weather() {
|
|||
arg("fog_density")=0.0f,
|
||||
arg("fog_distance")=0.0f,
|
||||
arg("fog_falloff")=0.0f,
|
||||
arg("wetness")=0.0f)))
|
||||
arg("wetness")=0.0f,
|
||||
arg("scattering_intensity")=0.0f,
|
||||
arg("mie_scattering_scale")=0.0f,
|
||||
arg("rayleigh_scattering_scale")=0.0331f)))
|
||||
.def_readwrite("cloudiness", &cr::WeatherParameters::cloudiness)
|
||||
.def_readwrite("precipitation", &cr::WeatherParameters::precipitation)
|
||||
.def_readwrite("precipitation_deposits", &cr::WeatherParameters::precipitation_deposits)
|
||||
|
@ -55,6 +61,9 @@ void export_weather() {
|
|||
.def_readwrite("fog_distance", &cr::WeatherParameters::fog_distance)
|
||||
.def_readwrite("fog_falloff", &cr::WeatherParameters::fog_falloff)
|
||||
.def_readwrite("wetness", &cr::WeatherParameters::wetness)
|
||||
.def_readwrite("scattering_intensity", &cr::WeatherParameters::scattering_intensity)
|
||||
.def_readwrite("mie_scattering_scale", &cr::WeatherParameters::mie_scattering_scale)
|
||||
.def_readwrite("rayleigh_scattering_scale", &cr::WeatherParameters::rayleigh_scattering_scale)
|
||||
.def("__eq__", &cr::WeatherParameters::operator==)
|
||||
.def("__ne__", &cr::WeatherParameters::operator!=)
|
||||
.def(self_ns::str(self_ns::self))
|
||||
|
|
|
@ -25,9 +25,9 @@ SUN_PRESETS = {
|
|||
'sunset': (0.5, 180.0)}
|
||||
|
||||
WEATHER_PRESETS = {
|
||||
'clear': [10.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.2, 0.0],
|
||||
'overcast': [80.0, 0.0, 0.0, 50.0, 2.0, 0.0, 0.9, 10.0],
|
||||
'rain': [100.0, 80.0, 90.0, 100.0, 20.0, 0.0, 0.9, 100.0]}
|
||||
'clear': [10.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.2, 0.0, 0.0, 0.0, 0.0331],
|
||||
'overcast': [80.0, 0.0, 0.0, 50.0, 2.0, 0.0, 0.9, 10.0, 0.0, 0.0, 0.0331],
|
||||
'rain': [100.0, 80.0, 90.0, 100.0, 20.0, 0.0, 0.9, 100.0, 0.0, 0.0, 0.0331]}
|
||||
|
||||
CAR_LIGHTS = {
|
||||
'None' : [carla.VehicleLightState.NONE],
|
||||
|
@ -74,6 +74,9 @@ def apply_weather_presets(args, weather):
|
|||
weather.fog_distance = WEATHER_PRESETS[args.weather][5]
|
||||
weather.fog_falloff = WEATHER_PRESETS[args.weather][6]
|
||||
weather.wetness = WEATHER_PRESETS[args.weather][7]
|
||||
weather.scattering_intensity = WEATHER_PRESETS[args.weather][8]
|
||||
weather.mie_scattering_scale = WEATHER_PRESETS[args.weather][9]
|
||||
weather.rayleigh_scattering_scale = WEATHER_PRESETS[args.weather][10]
|
||||
else:
|
||||
print("[ERROR]: Command [--weather | -w] '" + args.weather + "' not known")
|
||||
sys.exit(1)
|
||||
|
@ -101,6 +104,13 @@ def apply_weather_values(args, weather):
|
|||
weather.fog_falloff = args.fogfalloff
|
||||
if args.wetness is not None:
|
||||
weather.wetness = args.wetness
|
||||
if args.scatteringintensity is not None:
|
||||
weather.scattering_intensity = args.scatteringintensity
|
||||
if args.miescatteringscale is not None:
|
||||
weather.mie_scattering_scale = args.miescatteringscale
|
||||
if args.rayleighscatteringscale is not None:
|
||||
print(weather.rayleigh_scattering_scale)
|
||||
weather.rayleigh_scattering_scale = args.rayleighscatteringscale
|
||||
|
||||
|
||||
def apply_lights_to_cars(args, world):
|
||||
|
@ -234,6 +244,24 @@ def main():
|
|||
default=None,
|
||||
type=float,
|
||||
help='Wetness intensity [0.0, 100.0]')
|
||||
argparser.add_argument(
|
||||
'--scatteringintensity',
|
||||
metavar='Si',
|
||||
default=None,
|
||||
type=float,
|
||||
help='Scattering intensity [0.0, inf]')
|
||||
argparser.add_argument(
|
||||
'--rayleighscatteringscale',
|
||||
metavar='rss',
|
||||
default=None,
|
||||
type=float,
|
||||
help='Rayleigh scattering scale [0.0, 2.0]')
|
||||
argparser.add_argument(
|
||||
'--miescatteringscale',
|
||||
metavar='mss',
|
||||
default=None,
|
||||
type=float,
|
||||
help='Mie scattering scale [0.0, 5.0]')
|
||||
argparser.add_argument(
|
||||
'--cars',
|
||||
metavar='Cars',
|
||||
|
|
|
@ -30,6 +30,9 @@ void AWeather::ApplyWeather(const FWeatherParameters &InWeather)
|
|||
UE_LOG(LogCarla, Log, TEXT(" - FogDistance = %.2f"), Weather.FogDistance);
|
||||
UE_LOG(LogCarla, Log, TEXT(" - FogFalloff = %.2f"), Weather.FogFalloff);
|
||||
UE_LOG(LogCarla, Log, TEXT(" - Wetness = %.2f"), Weather.Wetness);
|
||||
UE_LOG(LogCarla, Log, TEXT(" - ScatteringIntensity = %.2f"), Weather.ScatteringIntensity);
|
||||
UE_LOG(LogCarla, Log, TEXT(" - MieScatteringScale = %.2f"), Weather.MieScatteringScale);
|
||||
UE_LOG(LogCarla, Log, TEXT(" - RayleighScatteringScale = %.2f"), Weather.RayleighScatteringScale);
|
||||
#endif // CARLA_WEATHER_EXTRA_LOG
|
||||
|
||||
// Call the blueprint that actually changes the weather.
|
||||
|
|
|
@ -42,4 +42,13 @@ struct CARLA_API FWeatherParameters
|
|||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(ClampMin = "0.0", ClampMax = "100.0", UIMin = "0.0", UIMax = "100.0"))
|
||||
float Wetness = 0.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(ClampMin = "0.0", ClampMax = "100.0", UIMin = "0.0", UIMax = "100.0"))
|
||||
float ScatteringIntensity = 0.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(ClampMin = "0.0", ClampMax = "5.0", UIMin = "0.0", UIMax = "5.0"))
|
||||
float MieScatteringScale = 0.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(ClampMin = "0.0", ClampMax = "2.0", UIMin = "0.0", UIMax = "2.0"))
|
||||
float RayleighScatteringScale = 0.0331f;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue