Difference between revisions of "Environment"
(→Daylight math details: Enumerate steps) |
|||
Line 174: | Line 174: | ||
The following is a simplified explanation of the procedure by which the game determines the light intensity supplied by the sun at a given latitude, day of the year, and time of day. | The following is a simplified explanation of the procedure by which the game determines the light intensity supplied by the sun at a given latitude, day of the year, and time of day. | ||
− | + | # The latitude normal vector <code>N</code> can be calculated as the vector <code>{cos(''latitude''), sin(''latitude''), 0}</code>. Note that this is always orthogonal to the Z-axis (the Y-axis passes through the planet's poles, not the Z-axis) with a positive X-value. For example, the latitude normal vector at the equator would be <code>{1, 0, 0}</code> while at 45° N it would be <code>{0.707, 0.707, 0}</code>. | |
− | + | # The latitude fraction equals <code>0.2</code> below latitude <code>70</code>, <code>1.5</code> above latitude <code>75</code>, and is linearly interpolated between. | |
− | + | # The unmodified sun position vector <code>P</code> is the vector <code>{cos((''day_percent'' - 0.5) × 360°), -cos(''day_of_year''/60 × 360°) × ''latitude_fraction'', sin((''day_percent'' - 0.5) × 360°)}</code>. | |
− | + | # [[wikipedia:Unit vector|Normalize]] the unmodified sun position vector <code>P</code>. | |
− | + | # Rotate the normalized sun position vector <code>P</code> an amount towards latitude normal vector <code>N</code> based on the graph on the right, but not passing it (if applicable). | |
+ | # The unmodified daylight intensity is equal to the [[wikipedia:Dot product|dot product]] of the latitude normal vector <code>N</code> and sun position vector <code>P</code> (both should have magnitude <code>1.0</code>). | ||
+ | # The final daylight intensity scales based on the unmodified daylight intensity, with <code>0.0</code> to <code>0.7</code> linearly corresponding with 0% to 100% light intensity and <code>0.7</code> to <code>1.0</code> being clamped at 100% light intensity. | ||
Interestingly, while some effects are applied differently above latitude <code>70</code> (70° N), these do not seem to apply below <code>-70</code> (70° S). | Interestingly, while some effects are applied differently above latitude <code>70</code> (70° N), these do not seem to apply below <code>-70</code> (70° S). |
Revision as of 22:57, 29 July 2022
|
The map environment are all aspects of the map that often can not be directly influenced by the player, such as terrain, weather conditions and lighting.
Beauty
Terrain, flooring, objects, and plants attribute to a tile's beauty, which in turn can affect a colonist's mood. The contents of a tile have a cumulative effect on its beauty; i.e. a granite chunk (beauty of -10) on a carpeted floor (beauty of +2) gives the tile a net beauty of -8. Certain unsightly objects, i.e. vomit, have one value when under a roof and a lower value when unroofed. This simulates the general disgust of seeing eyesores indoors versus encountering them outside.
Space
Environment space (as opposed to the Need for Space) is the count of how much space there is to freely move around in a room. This is all the floor tiles that are either empty or have objects that can be passed through at full speed, such as chairs, building materials, and the various "spots". All objects that either slow down or prevent movement through are not counted towards Environment Space. The "Space" number shown in the Environment display is this count x 1.4. This number is a measure of the entire room, and does not change depending on where a pawn is standing.
Flora
Certain plants and trees have beauty, and may also provide cover to colonists.
Light
Light can be generated artificially or naturally. Artificial light is produced by appliances in a limited range. Natural light is generated throughout the map on unroofed tiles. Roofed tiles will be dark unless lit artificially.
Occasionally an eclipse befalls the planet. Natural daytime light is no longer generated until it ends.
Light's importance lies in the following effects:
- Plant growth - With the exception of decorative plants, plants only grow when the light level is at least 51%.
- Power - Solar generators only produce power when naturally lit.
- Colonists want 30% light or better. This effects...
- Colonists' mood - Colonists in sustained darkness will have the 'In darkness' thought. Sleeping colonists will not have this thought. Therefore, lighting is not needed in areas only used for sleeping.
- Colonists' movement speed - Colonists in darkness will have a reduced movement speed, scaling to 80% at a light level of 0%. Due to this, combat at night or under unlit roofed areas can lead to a disadvantage against non-human opponents, such as insects, manhunter animals, or mechanoids.
- Colonists' global work speed - Similarly to their movement speed, colonists will have a work speed penalty when working in darkness, scaling to 80% at a light level of 0%.
- Decorative plants will grow in any light 30% or more.
- Surgery success chance factor is optimized at 50% light or better.
There are three light levels: Dark (0-29%), Lit (30-89%), and Brightly lit (90-100%). Each tile on the map has one of these light levels. The light level of a tile is listed in the tile's information area located above the Architect menu (when the menu is minimized). The light level is immediately followed by the brightness given in a percentage (%).
Light levels according to Light (%) | |||
Light (%) | 0-29 | 30-89 | 90-100 |
Light level | Dark | Lit | Brightly lit |
Artificial light sources
Light in roofed areas is provided by the following appliances:
Name | Radius Lit >=30% |
---|---|
Torch lamp | 7.175 tiles |
Standing lamp | 9.093 tiles |
Standing lamp (red)/(green)/(blue) | 9.093 tiles |
Sun lamp | 11.718 tiles |
Campfire | 7.175 tiles |
Brazier | 7.175 tiles |
Darklight brazier | 7.108 tiles |
Darktorch | 4.746 tiles |
Fungus darktorch | 4.746 tiles |
Standing darklamp | 9.093 tiles |
Additionally, there are a variety of objects that incidentally generate light including, but not limited to, the electric crematorium, electric smelter, heater, wood-fired generator, and chemfuel powered generator.
Daylight timing and latitude
Daylight, or natural light, is the light generated on unroofed tiles throughout the map. The timing and strength of daylight is affected by latitude, time of year, and time of day, due to the planet's apparent axial tilt.
This effect is more pronounced at extreme northern and southern latitudes, which can result in light levels not reaching 0% at night or 100% at daytime.
Near the central latitude, light level change throughout the day as follows:
Start time | Light level |
---|---|
4h | Lit |
7h | Brightly lit |
17h | Lit |
20h | Dark |
Day Length Table
Note that the below values represent the number of hours that the light level is above 30%, meaning there is no guarantee that it will reach 100%.
Latitude | Aprimay 1 | Aprimay 6 | Aprimay 11 | Jugust 1 | Jugust 6 | Jugust 11 | Septober 1 | Septober 6 | Septober 11 | Decembary 1 | Decembary 6 | Decembary 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
90° N | 0 | 0 | 0 | 24 | 24 | 24 | 24 | 24 | 24 | 0 | 0 | 0 |
75° N | 0 | 0 | 0 | 10.7 | 24 | 24 | 24 | 24 | 24 | 0 | 0 | 0 |
60° N | 11.2 | 11.7 | 12.8 | 14.1 | 15.5 | 16.5 | 16.8 | 16.2 | 15.0 | 13.6 | 12.3 | 11.4 |
45° N | 12.6 | 12.9 | 13.5 | 14.3 | 15.1 | 15.6 | 15.8 | 15.5 | 14.8 | 13.9 | 13.2 | 12.7 |
30° N | 13.5 | 13.7 | 14.0 | 14.5 | 14.9 | 15.3 | 15.4 | 15.2 | 14.8 | 14.3 | 13.9 | 13.6 |
15° N | 14.3 | 14.4 | 14.5 | 14.8 | 15.0 | 15.2 | 15.2 | 15.1 | 14.9 | 14.7 | 14.5 | 14.4 |
0° | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 | 15.2 |
15° S | 15.2 | 15.1 | 14.9 | 14.7 | 14.5 | 14.4 | 14.3 | 14.4 | 14.5 | 14.8 | 15.0 | 15.2 |
30° S | 15.4 | 15.2 | 14.8 | 14.3 | 13.9 | 13.6 | 13.5 | 13.7 | 14.0 | 14.5 | 14.9 | 15.3 |
45° S | 15.8 | 15.5 | 14.8 | 13.9 | 13.2 | 12.7 | 12.6 | 12.9 | 13.5 | 14.3 | 15.1 | 15.6 |
60° S | 16.8 | 16.2 | 15.0 | 13.6 | 12.3 | 11.4 | 11.2 | 11.7 | 12.8 | 14.1 | 15.5 | 16.5 |
75° S | 24 | 24 | 18.7 | 15.0 | 12.2 | 10.4 | 9.9 | 11.0 | 13.2 | 16.4 | 20.6 | 24 |
90° S | 24 | 24 | 24 | 24 | 24 | 0 | 0 | 0 | 24 | 24 | 24 | 24 |
Plant growth time table
Latitude | Aprimay 1 | Aprimay 6 | Aprimay 11 | Jugust 1 | Jugust 6 | Jugust 11 | Septober 1 | Septober 6 | Septober 11 | Decembary 1 | Decembary 6 | Decembary 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
90° N | 0 | 0 | 0 | 0 | 24 | 24 | 24 | 24 | 24 | 0 | 0 | 0 |
75° N | 0 | 0 | 0 | 5.8 | 24 | 24 | 24 | 24 | 18.6 | 0 | 0 | 0 |
60° N | 8.9 | 9.4 | 10.5 | 11.9 | 13.2 | 14.0 | 14.3 | 13.8 | 12.7 | 11.3 | 10.0 | 9.1 |
45° N | 11.0 | 11.3 | 11.9 | 12.7 | 13.4 | 13.9 | 14.1 | 13.8 | 13.1 | 12.4 | 11.6 | 11.1 |
30° N | 12.2 | 12.4 | 12.7 | 13.2 | 13.6 | 13.9 | 14.0 | 13.8 | 13.4 | 13.0 | 12.6 | 12.3 |
15° N | 13.2 | 13.2 | 13.4 | 13.6 | 13.8 | 14.0 | 14.0 | 13.9 | 13.7 | 13.5 | 13.3 | 13.2 |
0° | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 | 14.1 |
15° S | 14.0 | 13.9 | 13.7 | 13.5 | 13.3 | 13.2 | 13.2 | 13.2 | 13.4 | 13.6 | 13.8 | 14.0 |
30° S | 14.0 | 13.8 | 13.4 | 13.0 | 12.6 | 12.3 | 12.2 | 12.4 | 12.7 | 13.2 | 13.6 | 13.9 |
45° S | 14.1 | 13.8 | 13.1 | 12.4 | 11.6 | 11.1 | 11.0 | 11.3 | 11.9 | 12.7 | 13.4 | 13.9 |
60° S | 14.3 | 13.8 | 12.7 | 11.3 | 10.0 | 9.1 | 8.9 | 9.4 | 10.5 | 11.9 | 13.2 | 14.0 |
75° S | 17.3 | 16.0 | 13.6 | 10.6 | 7.6 | 5.1 | 4.3 | 6.0 | 8.8 | 11.8 | 14.6 | 16.7 |
90° S | 24 | 24 | 24 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 24 | 24 |
Daylight math details
The following is a simplified explanation of the procedure by which the game determines the light intensity supplied by the sun at a given latitude, day of the year, and time of day.
- The latitude normal vector
N
can be calculated as the vector{cos(latitude), sin(latitude), 0}
. Note that this is always orthogonal to the Z-axis (the Y-axis passes through the planet's poles, not the Z-axis) with a positive X-value. For example, the latitude normal vector at the equator would be{1, 0, 0}
while at 45° N it would be{0.707, 0.707, 0}
. - The latitude fraction equals
0.2
below latitude70
,1.5
above latitude75
, and is linearly interpolated between. - The unmodified sun position vector
P
is the vector{cos((day_percent - 0.5) × 360°), -cos(day_of_year/60 × 360°) × latitude_fraction, sin((day_percent - 0.5) × 360°)}
. - Normalize the unmodified sun position vector
P
. - Rotate the normalized sun position vector
P
an amount towards latitude normal vectorN
based on the graph on the right, but not passing it (if applicable). - The unmodified daylight intensity is equal to the dot product of the latitude normal vector
N
and sun position vectorP
(both should have magnitude1.0
). - The final daylight intensity scales based on the unmodified daylight intensity, with
0.0
to0.7
linearly corresponding with 0% to 100% light intensity and0.7
to1.0
being clamped at 100% light intensity.
Interestingly, while some effects are applied differently above latitude 70
(70° N), these do not seem to apply below -70
(70° S).
Openness
This section is a stub. You can help RimWorld Wiki by expanding it. Reason: Large enough enclosed spaces seem to blur these boundaries. |
Openness refers to the often critical aspect of structures being open to the outside. It affects many things such as temperature, item deterioration, light, exposure to weather, and certain events.
Every tile on the map falls into one of three categories:
- Outdoors - not enclosed by any structure, even if there is a roof.
- Indoors - completely enclosed structure, completely roofed.
- Unroofed - completely enclosed structure, but with one or more unroofed tiles.
Temperature
Environmental temperature is affected outdoors mainly by the map's biome and by the current season. Temperature affects a plant's ability to grow. Temperature affects a human's comfort, and health in extreme temperatures.
Terrain
Terrain consists of the map's walking surface, terrain features, and mountain areas. Terrain affects things including walking speed, where plants can grow, and may prohibit construction.
Natural surface terrain includes soil, rich soil, marshy soil, marsh, mud, sand, lichen-covered dirt, gravel, rough stone (granite, marble, etc.), rough-hewn stone, shallow water, and deep water.
Terrain features include steam geysers and mountains. The steam from a geyser produces heat and an enclosed area around it will heat up unless unroofed. A mountain cannot be destroyed, even if all of its stone and ore has been mined out. What remains are terrain tiles listed as 'overhead mountain'.
Naturally generated surfaces
Type | Move Speed Modifier | Fertility | Terrain Support |
---|---|---|---|
Broken asphalt | 100% | 0% | Heavy |
Chest-deep moving water | 22% | 0% | None |
Deep ocean water | 0% | 0% | None |
Deep water | 0% | 0% | None |
Ice | 52% | 0% | Heavy |
Lichen-covered soil | 81% | 100% | Heavy |
Marsh | 30% | 0% | None |
Marshy soil | 46% | 100% | Light |
Mud | 52% | 0% | None |
Packed dirt | 100% | 0% | Heavy |
Rich soil | 87% | 140% | Heavy |
Rough stone | 87% | 0% | Heavy |
Rough-hewn stone | 93% | 0% | Heavy |
Sand | 76% | 10% | Heavy |
Shallow ocean water | 30% | 0% | None |
Shallow moving water | 30% | 0% | None |
Shallow water | 30% | 0% | None |
Soft sand | 52% | 0% | Light |
Soil | 87% | 100% | Heavy |
Stony soil | 87% | 70% | Heavy |
Steam geyser
This section is a stub. You can help RimWorld Wiki by expanding it. Reason: Specific numbers on heat needed. |
Steam geysers are terrain features that allow the placement of a geothermal generator on them and also output a significant amount of heat when sealed in a roofed room.
The steam geyser sprays after a random delay between 500 ticks (8.33 secs) and 2,000 ticks (33.33 secs). It will then spray for between 200 ticks (3.33 secs) and 500 ticks (8.33 secs). While spraying, it will output 40 heat every 20 ticks (0.33 secs). Thus, it averages 16.15 heat per second, with no maximum temperature.
Besides their use in power generation, they can also be used to heat bases and greenhouses without the need for electricity or fuel by sealing them in.
Weather
This section is a stub. You can help RimWorld Wiki by expanding it. Reason: Exact details of how large fires on the map cause rain needed. |
Weather events occur from time to time depending on the biome and time of year, with the current weather listed at the right edge of the screen. When a weather event ends the weather returns to Clear. Each weather event has a general effect on wind speed. Wind speed continually varies between 0% to 100% but it is not displayed onscreen. Wind speed is a direct multiplier of a wind turbine's power output. At 50% wind speed a wind turbine produces 1500W of its 3450W max. The "weather controller" condition causer can force a single type of weather to constantly appear, and will only allow natural changes in weather once it is destroyed.
Label | Time of year | Temperature range [1] | Accuracy modifier | Movement speed modifier | Wind speed | Wind speed modifier | Can put out fires | Snowing rate | Notes |
---|---|---|---|---|---|---|---|---|---|
Clear | Any | Any | 100% | 100% | None to Moderate | 100% | No | None | |
Fog | Any | Any | 50% | 100% | None to Calm | 50% | No | None | Can accompany rain to create Foggy Rain |
Rain | Any | 0 °C – 100 °C (32 °F – 212 °F) | 80% | 90% | Calm to Moderate | 80% | Yes | None | Rain intensity can vary. Rain will put out any outdoor fires on the map. Rain can cause electronic objects to short circuit. |
Dry Thunderstorm | Any | Any | 100% | 100% | Moderate to Extreme | 150% | No | None | Lightning strikes from thunderstorms can ignite flammable objects, including flora. If accompanied by rain the fires should be extinguished without becoming a threat. |
Rainy Thunderstorm | Any | Any | 80% | 80% | Moderate to Extreme | 150% | Yes | None | |
Foggy rain | Any | Any | 50% | 90% | None to Calm | 150% | Yes | None | |
Hard snow | Mainly Winter | -270 °C – -0.5 °C (-454 °F – 31.1 °F) | 80% | 80% | None to Moderate | 150% | Yes | 120% | Weather event that can distribute Snow onto the terrain. |
Soft snow | Mainly Winter | -270 °C – -0.5 °C (-454 °F – 31.1 °F) | 80% | 100% | None to Moderate | 150% | Yes | 80% | Weather event that can distribute Snow onto the terrain. |
Flashstorm | Any | Any | 100% | 100% | None to moderate | 100% | No | None | An extreme version of the dry thunderstorm, and an event of its own (rather than normal weather changes). Lightning strike many times in a row in a small area, igniting anything flammable and causing giant wildfires which can spread to your base easily. It also disables rain for a short time. |
- ↑ Can continue even if the temperature exits the appropriate range, once started.
Lightning
Lightning is created either naturally through thunderstorms, or artificially with the flashstorm psycast. These do 10 Flame damage in a 3x3 area (1.9 block radius) and start fires in the area of effect. Dry thunderstorms can be especially dangerous, starting fires around the map without rain to put them out. The flashstorm psycast should be used with caution, preferably in areas without vegetation or during rain. Lightning can also be spawned in with a debug command in development mode.
Lightning is bright enough to momentarily power solar generators and grow plants.