Luanti 5.15.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};
41
43{
44 bool visible;
45 std::string texture;
46 std::string tonemap;
47 std::string sunrise;
49 f32 scale;
50};
51
53{
54 bool visible;
55 std::string texture;
56 std::string tonemap;
57 f32 scale;
58};
59
61{
62 bool visible;
63 u32 count;
64 video::SColor starcolor;
65 f32 scale;
68};
69
71{
72 float density;
73 video::SColor color_bright;
74 video::SColor color_ambient;
75 video::SColor color_shadow;
76 float thickness;
77 float height;
79};
80
81// Utility class for setting default sky, sun, moon, stars values:
83{
84public:
85 SkyboxDefaults() = delete;
86
88 {
89 SkyboxParams sky;
90 sky.bgcolor = video::SColor(255, 255, 255, 255);
91 sky.type = "regular";
92 sky.clouds = true;
94 sky.fog_sun_tint = video::SColor(255, 244, 125, 29);
95 sky.fog_moon_tint = video::SColorf(0.5, 0.6, 0.8, 1).toSColor();
96 sky.fog_tint_type = "default";
97 sky.fog_color = video::SColor(0);
98 return sky;
99 }
100
102 {
103 SkyColor sky;
104 // Horizon colors
105 sky.day_horizon = video::SColor(255, 144, 211, 246);
106 sky.indoors = video::SColor(255, 100, 100, 100);
107 sky.dawn_horizon = video::SColor(255, 186, 193, 240);
108 sky.night_horizon = video::SColor(255, 64, 144, 255);
109 // Sky colors
110 sky.day_sky = video::SColor(255, 97, 181, 245);
111 sky.dawn_sky = video::SColor(255, 180, 186, 250);
112 sky.night_sky = video::SColor(255, 0, 107, 255);
113 return sky;
114 }
115
117 {
118 SunParams sun;
119 sun.visible = true;
120 sun.sunrise_visible = true;
121 sun.texture = "sun.png";
122 sun.tonemap = "sun_tonemap.png";
123 sun.sunrise = "sunrisebg.png";
124 sun.scale = 1;
125 return sun;
126 }
127
129 {
130 MoonParams moon;
131 moon.visible = true;
132 moon.texture = "moon.png";
133 moon.tonemap = "moon_tonemap.png";
134 moon.scale = 1;
135 return moon;
136 }
137
139 {
140 StarParams stars;
141 stars.visible = true;
142 stars.count = 1000;
143 stars.starcolor = video::SColor(105, 235, 235, 255);
144 stars.scale = 1;
145 stars.day_opacity = 0;
146 stars.star_seed = 0;
147 return stars;
148 }
149
151 {
152 CloudParams clouds;
153 clouds.density = 0.4f;
154 clouds.color_bright = video::SColor(229, 240, 240, 255);
155 clouds.color_ambient = video::SColor(255, 0, 0, 0);
156 clouds.color_shadow = video::SColor(255, 204, 204, 204);
157 clouds.thickness = 16.0f;
158 clouds.height = 120;
159 clouds.speed = v2f(0.0f, -2.0f);
160 return clouds;
161 }
162};
Definition skyparams.h:83
static const SkyboxParams getSkyDefaults()
Definition skyparams.h:87
static const CloudParams getCloudDefaults()
Definition skyparams.h:150
SkyboxDefaults()=delete
static const SunParams getSunDefaults()
Definition skyparams.h:116
static const MoonParams getMoonDefaults()
Definition skyparams.h:128
static const SkyColor getSkyColorDefaults()
Definition skyparams.h:101
static const StarParams getStarDefaults()
Definition skyparams.h:138
core::vector2d< f32 > v2f
Definition irr_v2d.h:11
Definition skyparams.h:71
video::SColor color_shadow
Definition skyparams.h:75
video::SColor color_bright
Definition skyparams.h:73
float thickness
Definition skyparams.h:76
video::SColor color_ambient
Definition skyparams.h:74
v2f speed
Definition skyparams.h:78
float height
Definition skyparams.h:77
float density
Definition skyparams.h:72
Definition skyparams.h:53
std::string tonemap
Definition skyparams.h:56
f32 scale
Definition skyparams.h:57
std::string texture
Definition skyparams.h:55
bool visible
Definition skyparams.h:54
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
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:61
u64 star_seed
Definition skyparams.h:67
u32 count
Definition skyparams.h:63
video::SColor starcolor
Definition skyparams.h:64
f32 scale
Definition skyparams.h:65
bool visible
Definition skyparams.h:62
f32 day_opacity
Definition skyparams.h:66
Definition skyparams.h:43
std::string tonemap
Definition skyparams.h:46
std::string texture
Definition skyparams.h:45
std::string sunrise
Definition skyparams.h:47
bool visible
Definition skyparams.h:44
f32 scale
Definition skyparams.h:49
bool sunrise_visible
Definition skyparams.h:48