Luanti 5.16.0-dev
Loading...
Searching...
No Matches
skyparams.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2019 Jordach, Jordan Snelling <jordach.snelling@gmail.com>
4
5#pragma once
6
7#include <vector>
8#include <string>
9#include "SColor.h"
10#include "irr_v2d.h"
11
12
14{
15 video::SColor day_sky;
16 video::SColor day_horizon;
17 video::SColor dawn_sky;
18 video::SColor dawn_horizon;
19 video::SColor night_sky;
20 video::SColor night_horizon;
21 video::SColor indoors;
22};
23
25{
26 static constexpr float INVALID_SKYBOX_TILT = -1024.f;
27
28 video::SColor bgcolor;
29 std::string type;
30 std::vector<std::string> textures;
31 bool clouds;
33 video::SColor fog_sun_tint;
34 video::SColor fog_moon_tint;
35 std::string fog_tint_type;
37 s16 fog_distance { -1 };
38 float fog_start { -1.0f };
39 video::SColor fog_color { 0 }; // override, only used if alpha > 0
40 bool auto_dim_skybox { true };
41};
42
44{
45 bool visible;
46 std::string texture;
47 std::string tonemap;
48 std::string sunrise;
50 f32 scale;
51};
52
54{
55 bool visible;
56 std::string texture;
57 std::string tonemap;
58 f32 scale;
59};
60
62{
63 bool visible;
64 u32 count;
65 video::SColor starcolor;
66 f32 scale;
69};
70
72{
73 float density;
74 video::SColor color_bright;
75 video::SColor color_ambient;
76 video::SColor color_shadow;
77 float thickness;
78 float height;
80};
81
82// Utility class for setting default sky, sun, moon, stars values:
84{
85public:
86 SkyboxDefaults() = delete;
87
89 {
90 SkyboxParams sky;
91 sky.bgcolor = video::SColor(255, 255, 255, 255);
92 sky.type = "regular";
93 sky.clouds = true;
95 sky.fog_sun_tint = video::SColor(255, 244, 125, 29);
96 sky.fog_moon_tint = video::SColorf(0.5, 0.6, 0.8, 1).toSColor();
97 sky.fog_tint_type = "default";
98 sky.fog_color = video::SColor(0);
99 return sky;
100 }
101
103 {
104 SkyColor sky;
105 // Horizon colors
106 sky.day_horizon = video::SColor(255, 144, 211, 246);
107 sky.indoors = video::SColor(255, 100, 100, 100);
108 sky.dawn_horizon = video::SColor(255, 186, 193, 240);
109 sky.night_horizon = video::SColor(255, 64, 144, 255);
110 // Sky colors
111 sky.day_sky = video::SColor(255, 97, 181, 245);
112 sky.dawn_sky = video::SColor(255, 180, 186, 250);
113 sky.night_sky = video::SColor(255, 0, 107, 255);
114 return sky;
115 }
116
118 {
119 SunParams sun;
120 sun.visible = true;
121 sun.sunrise_visible = true;
122 sun.texture = "sun.png";
123 sun.tonemap = "sun_tonemap.png";
124 sun.sunrise = "sunrisebg.png";
125 sun.scale = 1;
126 return sun;
127 }
128
130 {
131 MoonParams moon;
132 moon.visible = true;
133 moon.texture = "moon.png";
134 moon.tonemap = "moon_tonemap.png";
135 moon.scale = 1;
136 return moon;
137 }
138
140 {
141 StarParams stars;
142 stars.visible = true;
143 stars.count = 1000;
144 stars.starcolor = video::SColor(105, 235, 235, 255);
145 stars.scale = 1;
146 stars.day_opacity = 0;
147 stars.star_seed = 0;
148 return stars;
149 }
150
152 {
153 CloudParams clouds;
154 clouds.density = 0.4f;
155 clouds.color_bright = video::SColor(229, 240, 240, 255);
156 clouds.color_ambient = video::SColor(255, 0, 0, 0);
157 clouds.color_shadow = video::SColor(255, 204, 204, 204);
158 clouds.thickness = 16.0f;
159 clouds.height = 120;
160 clouds.speed = v2f(0.0f, -2.0f);
161 return clouds;
162 }
163};
static const SkyboxParams getSkyDefaults()
Definition skyparams.h:88
static const CloudParams getCloudDefaults()
Definition skyparams.h:151
SkyboxDefaults()=delete
static const SunParams getSunDefaults()
Definition skyparams.h:117
static const MoonParams getMoonDefaults()
Definition skyparams.h:129
static const SkyColor getSkyColorDefaults()
Definition skyparams.h:102
static const StarParams getStarDefaults()
Definition skyparams.h:139
core::vector2d< f32 > v2f
Definition irr_v2d.h:11
Definition skyparams.h:72
video::SColor color_shadow
Definition skyparams.h:76
video::SColor color_bright
Definition skyparams.h:74
float thickness
Definition skyparams.h:77
video::SColor color_ambient
Definition skyparams.h:75
v2f speed
Definition skyparams.h:79
float height
Definition skyparams.h:78
float density
Definition skyparams.h:73
Definition skyparams.h:54
std::string tonemap
Definition skyparams.h:57
f32 scale
Definition skyparams.h:58
std::string texture
Definition skyparams.h:56
bool visible
Definition skyparams.h:55
Definition skyparams.h:14
video::SColor indoors
Definition skyparams.h:21
video::SColor dawn_sky
Definition skyparams.h:17
video::SColor night_horizon
Definition skyparams.h:20
video::SColor dawn_horizon
Definition skyparams.h:18
video::SColor day_horizon
Definition skyparams.h:16
video::SColor day_sky
Definition skyparams.h:15
video::SColor night_sky
Definition skyparams.h:19
Definition skyparams.h:25
std::vector< std::string > textures
Definition skyparams.h:30
std::string fog_tint_type
Definition skyparams.h:35
s16 fog_distance
Definition skyparams.h:37
video::SColor bgcolor
Definition skyparams.h:28
bool auto_dim_skybox
Definition skyparams.h:40
video::SColor fog_sun_tint
Definition skyparams.h:33
video::SColor fog_color
Definition skyparams.h:39
std::string type
Definition skyparams.h:29
static constexpr float INVALID_SKYBOX_TILT
Definition skyparams.h:26
float fog_start
Definition skyparams.h:38
float body_orbit_tilt
Definition skyparams.h:36
bool clouds
Definition skyparams.h:31
SkyColor sky_color
Definition skyparams.h:32
video::SColor fog_moon_tint
Definition skyparams.h:34
Definition skyparams.h:62
u64 star_seed
Definition skyparams.h:68
u32 count
Definition skyparams.h:64
video::SColor starcolor
Definition skyparams.h:65
f32 scale
Definition skyparams.h:66
bool visible
Definition skyparams.h:63
f32 day_opacity
Definition skyparams.h:67
Definition skyparams.h:44
std::string tonemap
Definition skyparams.h:47
std::string texture
Definition skyparams.h:46
std::string sunrise
Definition skyparams.h:48
bool visible
Definition skyparams.h:45
f32 scale
Definition skyparams.h:50
bool sunrise_visible
Definition skyparams.h:49