Difference between revisions of "WaterType"

From the CreationKit Wiki
Jump to navigation Jump to search
(→‎Fog Properties: Added more complete information)
 
(4 intermediate revisions by 2 users not shown)
Line 93: Line 93:
==Noise Properties==
==Noise Properties==
===Texture Select===
===Texture Select===
Which channel of the noise texture we want to adjust. Currently only use the first 3 channels (RGB)
Which layer of the noise texture we want to adjust. Currently only use the first 3 layers (RGB channels)
 
===Enable Flowmap===
Enables/disables use of flowmaps for waterType.
 
===Blend Normals===
Enables/disables the blending of the normal map textures for the waterType. Used for blending two different waterTypes together that are using different noise textures (e.g. rivers blended into oceans).
 
===Flowmap Scale===
Scales the size the flowmap texture.


===Wind Direction===
===Wind Direction===
The 360 degree direction we scroll this height map channel in. We do not actually rotate the texture data but rather just scroll the texture coordinates based on the 360 degree vector direction. What this means is, you have to build any direction of the wave patterns into the height-map if you want some sort of actual directional movement. (e.g. You wouldn't want waves built on the Y-axis to scroll along the Y-axis causing the waves to appear to move sideways. You would instead want them to scroll on the perpendicular X-axis so they appear to be moving forward in 3D space.)
360 degree direction the height map is scrolled.


===Wind Speed===
===Wind Speed===
Line 102: Line 111:


===Amplitude Scale===
===Amplitude Scale===
Determines the final scaled value of the heights in each height map channel. At 100%, we would be using exactly the heights that are in the texture. Since we combine all 3 height channels into a final normal, we don't want all 3 height channels to be at 100% (unless you have scaled the heights down in each channel manually already). This is because we will have height values reaching above 1.0 and cause the heights to become saturated. This would give us a very flat normal map with the incorrect wave formation. The final look would be as if all waves were at their peak and there was no falloff at all.
Determines the final scaled value of the heights in each height map layer. At 100%, we would be using exactly the heights that are in the texture. Since we combine all 3 height layers into a final normal, we don't want all 3 height layers to be at 100% (unless you have scaled the heights down in each layer manually already). This is because we will have height values reaching above 1.0 and cause the heights to become saturated. This would give us a very flat normal map with the incorrect wave formation. The final look would be as if all waves were at their peak and there was no falloff at all.


===UV Scale===
===UV Scale===
We can scale down any specific height map channel to tile if necessary. I would recommend against using this per-height map channel. A better solution is just to generate the scales you want when you generate the height map channel to begin with. This is better suited for re-using the same height map on a different water surface but allowing you to get some different results to make the water surface look more unique while still using the same height map texture memory. Since artists are restricted to 1 height map per-world-space, this is a good way to have multiple water types that still look different from each other while still using the same height map data.
Scales the size the noise texture is applied to the layer.


===Noise Falloff===
===Noise Falloff===
This determines the falloff curve used for the strength of the normals further from the camera position. The smaller the value, the closer to the camera position will cause the normals to be scaled down until they reach 0. It is possible to have these values high enough so that the normals are at 100% across the entire 5x5 region. However, they will currently not blend correctly into the LOD water unless we come up with some solution.
This determines the falloff curve used for the strength of the normals further from the camera position. The smaller the value, the closer to the camera position will cause the normals to be scaled down until they reach 0.


===Select Noise===
===Select Noise===
This determines what noise texture is used for this water type. In exteriors, this has to match up to the world-space water type or a warning will trigger. In interiors, the restriction is removed allowing each water type to use whatever noise texture it desires. We only allow this since, on average, interiors run faster then exteriors. However, it will still be up to the artist/designer setting up the interior to make sure that they do not abuse the texture memory by going overboard with water types using multiple unique height-maps.
This determines what noise texture is used for the layer. In exteriors, this has to match up to the world-space water type or a warning will trigger. In interiors, the restriction is removed allowing each waterType to use whatever noise texture it desires. We only allow this since, on average, interiors run faster then exteriors. However, it will still be up to the artist/designer setting up the interior to make sure that they do not abuse the texture memory by going overboard with waterTypes using multiple unique height-maps.


==Fog Properties==
==Fog Properties==
Fog effects applied to water may be thought of as general 'murkiness'. The distance between the Near Plane and the Far Plane is a gradient between full transparency (no fog effect) and no transparency (full fog effect), and determines how quickly objects are obscured. The fog effect is achieved by changing the transparency of the water color, thus has no color in and of itself. To change the fog color, change the Shallow and Deep water colors.
===Above Water/Under Water===
===Above Water/Under Water===
Which fog values to adjust.
Which fog values to adjust. Fog properties may be set in one of two modes: Above Water and Under Water.
: Above water fog is seen when looking down into the water from above its surface.
: Above Water properties affect the appearance of water fog from above the water plane looking down into the water (i.e., shore).
: Underwater fog is seen while under the water surface looking into the distance.
: Under Water properties affect the appearance of water fog while under the water surface looking into the distance.


===Fog Amount===
===Fog Amount===
This scales the overall fog amounts in the water. When looking at the water from above, it is blending between the refractions and the fog colors to determine the final color outcome.
Controls the transparency of the Deep Color water plane. Values range between 0.0 and 1.0. At 0.0, the Deep Color water plane is completely transparent. At 1.0, the Deep Color water plane is fully opaque (no transparency).


===Fog Distance - Near Plane===
===Fog Distance - Near Plane===
The near plane used to determine where the fogging should begin.
Sets the distance in game units below the surface of the water of the Shallow Color water plane. This is where the fog effect will begin. Objects rendered at or before the near plane are rendered at full visibility with no fog effects.


===Fog Distance - Far Plane===
===Fog Distance - Far Plane===
The far plane used to determine where the fogging should end. Everything beyond this value is the full deep water color value.
Sets the distance in game units below the surface of the water of the Deep Color water plane. This is where the fog effect will end. Everything beyond this value is the full Deep color value. Objects rendered at or beyond the far plane are fully obscured by fog effects.


==Depth Properties==
==Depth Properties==
Line 161: Line 172:
* '''Wind Direction''': Texture is not rotated, but rather the texture coordinates are scrolled based on the 360 degree vector direction. ​What this means is, users have to build any direction of the wave patterns into the height-map if some sort of actual directional movement is desired. (e.g. Users wouldn't want waves built on the Y-axis to scroll along the Y-axis causing the waves to appear to move sideways. Instead users would want them to scroll on the perpendicular X-axis so they appear to be moving forward in 3D space.)
* '''Wind Direction''': Texture is not rotated, but rather the texture coordinates are scrolled based on the 360 degree vector direction. ​What this means is, users have to build any direction of the wave patterns into the height-map if some sort of actual directional movement is desired. (e.g. Users wouldn't want waves built on the Y-axis to scroll along the Y-axis causing the waves to appear to move sideways. Instead users would want them to scroll on the perpendicular X-axis so they appear to be moving forward in 3D space.)
* '''UV Scale''': (original note; may not be accurate) We can scale down any specific height map channel to tile if necessary. I would recommend against using this per-height map channel. A better solution is just to generate the scales you want when you generate the height map channel to begin with. This is better suited for re-using the same height map on a different water surface but allowing you to get some different results to make the water surface look more unique while still using the same height map texture memory. Since artists are restricted to 1 height map per-world-space, this is a good way to have multiple waterTypes that still look different from each other while still using the same height map data.
* '''UV Scale''': (original note; may not be accurate) We can scale down any specific height map channel to tile if necessary. I would recommend against using this per-height map channel. A better solution is just to generate the scales you want when you generate the height map channel to begin with. This is better suited for re-using the same height map on a different water surface but allowing you to get some different results to make the water surface look more unique while still using the same height map texture memory. Since artists are restricted to 1 height map per-world-space, this is a good way to have multiple waterTypes that still look different from each other while still using the same height map data.
* '''Noise Falloff''': It is possible to have these values high enough so that the normals are at 100% across the entire 5x5 region. However, they will currently not blend correctly into the LOD water unless a solution is found.


[[Category:WorldData]]
[[Category:WorldData]]
[[Category:Object Classes]]
[[Category:Object Classes]]

Latest revision as of 13:03, 9 December 2021

Water[edit | edit source]

WaterType objects are found in the Object Window under WorldData.

To create a new WaterType,

  1. right-click in the list of WaterTypes in the Object Window
  2. select New from the menu.

To create a new WaterType based off an existing WaterType,

  1. right-click the WaterType you wish to use as a basis
  2. select Duplicate from the menu
    The duplicated water will appear in the Object Window under the Editor ID of the original waterType with waterTypeNameDUPLICATE###.

To delete an existing WaterType,

  1. right-click the WaterType
  2. select Delete from the menu
  3. click Yes to the comfirmation.
    If the waterType is in-use, a second confirmation box will appear listing where it is used. Users will have to confirm again to delete the waterType.

WaterType Dialog[edit | edit source]

General[edit | edit source]

ID[edit | edit source]

Editor ID for the WaterType.

Causes[edit | edit source]

When checked enables the water to cause damage to actors. Enter a number for how much damage per second is received by the actors.

Spell effect[edit | edit source]

The spell effect applied when an actor comes into contact with the waterType.

Name[edit | edit source]

Display name for the waterType.

Imagespace Modifier[edit | edit source]

ImageSpace that is applied when the player is under the water.

Color Properties[edit | edit source]

Shallow Color[edit | edit source]

The color of the water when the water is shallow.

Deep Color[edit | edit source]

The color of the water when the water is deep.

Reflection Color[edit | edit source]

The color mixed with the reflection texture (cubemap) when the Reflectivity Amount is set to less than 100%.

Water Properties[edit | edit source]

Open Sound[edit | edit source]

Sound that is played while in close proximity to the waterType.

Material[edit | edit source]

Material that is applied to the waterType.

Directional Sound[edit | edit source]

Opacity[edit | edit source]

How clear the water is before the fog layer is reached. Affects both above and underwater.

Reflectivity Amount[edit | edit source]

Blend between the solid reflection color (set on the "Water Color" tab) and the rendered reflection texture (cube-map). It is usually best to keep this value at 100% since the rendered reflection color most accurately corresponds to the world around it.

Reflection Magnitude[edit | edit source]

This value determines how much the normals (from the noise wave pattern texture) will affect the distortion amounts of the reflections on the water surface. At 0% you will have perfectly still reflections while at 100% you will have the full effect of distortion coming from the magnitude of the normals.

Refraction Magnitude[edit | edit source]

This is similar to the reflection magnitude in that it scales up/down the distortion of the refractions seen under the water.

Fresnel Amount[edit | edit source]

The Fresnel effect gives the observation that the amount of reflectance you see on a surface depends on the viewing angle. The higher the value, the more reflective the surface will be due to allowing more reflective viewing angles.

Displacement Simulator[edit | edit source]

Displacement is the waves seen when an actor enters the water.

  • Force: The initial force exerted on the water. (e.g. the initial speed of the displacement)
  • Velocity: The overall speed at which the displaced water should travel. (e.g. how viscous the water is)
  • Falloff: Determines the time range before the water displacement dissipates. (e.g. how quickly you want the displacement to disappear)
  • Dampener
  • Starting Size: The size of the ripple.

Linear Velocity[edit | edit source]

The X, Y, Z direction that actors/objects are pushed while interacting with the waterType. This should match visual flow direction of the water.

Angular Velocity[edit | edit source]

Specular Properties[edit | edit source]

Sun Specular Power[edit | edit source]

The specular power of the sun color on the water surface.

Sun Specular Magnitude[edit | edit source]

Sun Sparkle Power[edit | edit source]

Sun Sparkle Magnitude[edit | edit source]

To increase the effect of the sun, we also use a static vector that covers more of the water surface to give a sparkle effect over the entire water surface rather then just from the direction of the sun. This value increases (or decreases) the strength of this effect.

Specular Radius[edit | edit source]

Specular Brightness[edit | edit source]

Specular Power[edit | edit source]

Noise Properties[edit | edit source]

Texture Select[edit | edit source]

Which layer of the noise texture we want to adjust. Currently only use the first 3 layers (RGB channels)

Enable Flowmap[edit | edit source]

Enables/disables use of flowmaps for waterType.

Blend Normals[edit | edit source]

Enables/disables the blending of the normal map textures for the waterType. Used for blending two different waterTypes together that are using different noise textures (e.g. rivers blended into oceans).

Flowmap Scale[edit | edit source]

Scales the size the flowmap texture.

Wind Direction[edit | edit source]

360 degree direction the height map is scrolled.

Wind Speed[edit | edit source]

Determines how fast the UV coordinates are scrolled.

Amplitude Scale[edit | edit source]

Determines the final scaled value of the heights in each height map layer. At 100%, we would be using exactly the heights that are in the texture. Since we combine all 3 height layers into a final normal, we don't want all 3 height layers to be at 100% (unless you have scaled the heights down in each layer manually already). This is because we will have height values reaching above 1.0 and cause the heights to become saturated. This would give us a very flat normal map with the incorrect wave formation. The final look would be as if all waves were at their peak and there was no falloff at all.

UV Scale[edit | edit source]

Scales the size the noise texture is applied to the layer.

Noise Falloff[edit | edit source]

This determines the falloff curve used for the strength of the normals further from the camera position. The smaller the value, the closer to the camera position will cause the normals to be scaled down until they reach 0.

Select Noise[edit | edit source]

This determines what noise texture is used for the layer. In exteriors, this has to match up to the world-space water type or a warning will trigger. In interiors, the restriction is removed allowing each waterType to use whatever noise texture it desires. We only allow this since, on average, interiors run faster then exteriors. However, it will still be up to the artist/designer setting up the interior to make sure that they do not abuse the texture memory by going overboard with waterTypes using multiple unique height-maps.

Fog Properties[edit | edit source]

Fog effects applied to water may be thought of as general 'murkiness'. The distance between the Near Plane and the Far Plane is a gradient between full transparency (no fog effect) and no transparency (full fog effect), and determines how quickly objects are obscured. The fog effect is achieved by changing the transparency of the water color, thus has no color in and of itself. To change the fog color, change the Shallow and Deep water colors.

Above Water/Under Water[edit | edit source]

Which fog values to adjust. Fog properties may be set in one of two modes: Above Water and Under Water.

Above Water properties affect the appearance of water fog from above the water plane looking down into the water (i.e., shore).
Under Water properties affect the appearance of water fog while under the water surface looking into the distance.

Fog Amount[edit | edit source]

Controls the transparency of the Deep Color water plane. Values range between 0.0 and 1.0. At 0.0, the Deep Color water plane is completely transparent. At 1.0, the Deep Color water plane is fully opaque (no transparency).

Fog Distance - Near Plane[edit | edit source]

Sets the distance in game units below the surface of the water of the Shallow Color water plane. This is where the fog effect will begin. Objects rendered at or before the near plane are rendered at full visibility with no fog effects.

Fog Distance - Far Plane[edit | edit source]

Sets the distance in game units below the surface of the water of the Deep Color water plane. This is where the fog effect will end. Everything beyond this value is the full Deep color value. Objects rendered at or beyond the far plane are fully obscured by fog effects.

Depth Properties[edit | edit source]

Reflections[edit | edit source]

Refraction[edit | edit source]

Normals[edit | edit source]

Specular Lighting[edit | edit source]

Wave Pattern Properties[edit | edit source]

Texture Select[edit | edit source]

Which channel of the noise texture we want to adjust. Currently only use the first 3 channels (RGB)

Noise Type[edit | edit source]

Which type of noise we want to generate. Currently, only Fractal Brownian Motion (FBM) noise type is active since that is what the system is based off. We can change this later if need be.

X-Frequency[edit | edit source]

How much the noise is tiled along the X-axis.

Y-Frequency[edit | edit source]

How much the noise is tiled along the Y-axis.

Octaves[edit | edit source]

The number of times we sum the noise at different powers to give us a much more interesting noise pattern that resembles choppier waves. The more octaves we sum, the choppier the waves will will get since we are compounding smaller waves on top of larger waves multiple times until it gets so small that we are limited by the resolution of the texture. Using a 256x256 texture, 4 octaves is about the limit of pixel resolution that will be visible on screen.

Amplitude[edit | edit source]

This determines the overall height range of the waves. The higher the amplitude is means the greater the range will be between 0 and 1 of the height values. 0.5 is the default to get the smoothest wave data per channel.

Lacunarity[edit | edit source]

This is a measure of how a fractal fills space. Dense fractals have a low lacunarity. As the coarseness of the fractal increases, so does the lacunarity [1]. So in the case of FBM noise, the higher the lacunarity value is, the less gaps you will see in the noise and it will add more sharp height values. This is not usually desired since smoother waves are more often visibly pleasing then very sharp differences in heights.

Bias[edit | edit source]

This value will alter the final color output in favor of either its low or high values. For example, the higher the bias value is, the gray values will shift closer to white and black. Whereas, the lower the bias, the whites and blacks will approach gray. It is another way to define the contrast in the different color values through

Gain[edit | edit source]

This will increase or decrease the gradient of the final noise function around a given point. This causes shifts in the overall gradient color scheme coming from the noise function.

Random Seed[edit | edit source]

Used to get different noise patterns for the waves. It is good to use different seed values for the different height map channels in order to get more unique noise patterns per channel.

Notes[edit | edit source]

  • Enabling water damage will disable water splashes.
  • Wind Direction: Texture is not rotated, but rather the texture coordinates are scrolled based on the 360 degree vector direction. ​What this means is, users have to build any direction of the wave patterns into the height-map if some sort of actual directional movement is desired. (e.g. Users wouldn't want waves built on the Y-axis to scroll along the Y-axis causing the waves to appear to move sideways. Instead users would want them to scroll on the perpendicular X-axis so they appear to be moving forward in 3D space.)
  • UV Scale: (original note; may not be accurate) We can scale down any specific height map channel to tile if necessary. I would recommend against using this per-height map channel. A better solution is just to generate the scales you want when you generate the height map channel to begin with. This is better suited for re-using the same height map on a different water surface but allowing you to get some different results to make the water surface look more unique while still using the same height map texture memory. Since artists are restricted to 1 height map per-world-space, this is a good way to have multiple waterTypes that still look different from each other while still using the same height map data.
  • Noise Falloff: It is possible to have these values high enough so that the normals are at 100% across the entire 5x5 region. However, they will currently not blend correctly into the LOD water unless a solution is found.