Daggerfall Mod:DFRemake/Exterior Water

Mod / Daggerfall: Daggerfall Mod: DFRemake(Redirected from Daggerfall:DFRemake/Exterior Water)

Like Original WaterEdit

Originally in DF the exterior water was just a flat plane upon which you sunk slightly and had reduced movement (felt like walking in mud).This is a very simple approach to implement as the landscape mesh will just be made flat, textured with water, and the appropriate adjustments made to the camera position and movement. While this is a simple design and faithfully reproduces the original game, it may be better to try to create a better system.

Advantages Disadvantages
  • Very simple to implement
  • Faithful to the original game
  • Consistent water appearance at sea and in-land (uses the same textures).
  • Not very interesting from a player's perspective
  • Not realistic


Separate Water PlaneEdit

This is a more complex design but is one seen in a variety of games (such as Morrowind). For this approach the base land generation is the same underwater as it is above water. A semi-transparent water plane is created, typically at Z=0 for convienence. When the player is under the water plane their movement is adjusted appropriately along with basic display effects (a blue fog, bubbles, and blue tint for instance).

Advantages Disadvantages
  • Allows underwater exploration
  • Relatively simple (only requires the addition of a water plane and water effects).
  • There is nothing underwater to explore in the original game (there are some underwater flats I believe though).
  • Extra work would need to be done to add underwater features.
  • The shoreline created by this method may not be adequate (depends on the landscape creation and how DB clips the water/land).
  • Possible performance issues (as there would be more polygons required for water surface).
  • Cannot created dynamic water above sea-level (no rivers or lakes other than the major ones).


Adjustable Water PlaneEdit

This is an extension from the previous design with the change that the water plane is not held to a constant Z=0 position, but can vary as we go in-land. This creates the possibility of more realistic in-land lakes and rivers (as opposed to the fake textured water tiles as used in DF).

There are a few ways the water level can be adjusted. One is to have the water flat on the sea but be at a slight angle underneath the land. This is relatively simple but does require the engine have some knowledge of where the land and sea is. Another idea would be to have the water level simply mirror the average land level, offset by a set amount (like a water table). This is actually quite easy to do and the offset can be adjusted a variety of ways to create different shore lines (for example, in the desert the water table would be much lower than the land while in the jungle it would be much closer and for towns it could be adjusted down as needed).

Advantages Disadvantages
  • In-land lakes/rivers become a possibility (they are still random and depend on the landscape generation however).
  • Exactly how to adjust the in-land water level may be difficult (likely would require a good deal of tweaking to perfect).
  • In-land water may tend to bury locations/town. Land or water height under towns would have to be adjusted. Underwater dungeon entrances might actually be a good thing.
  • May have possibly issues with shore line quality.
  • More of a performance issue since water is everywhere (land quality may have to be reduced to compensate).


Dynamic Water EffectsEdit

If we decide to use a separate water plane, it will rather boring to just have it static. Real water has waves and undulates rather than sitting still. There are a few ways we can achieve this.

  • Move Water Plane Up/Down: This is the simplest design and is easy to do, though the quality of the animation may not be very impressive.
  • Create Waves: A much more involved process which would require the adjustment of water vertices up/down to simulate waves. This can result in a very good effect but requires a good deal of processing power. There is also the problem of not being able to directly manipulate mesh vertices in DB (recreating the water plane each frame from a memblock is likely too slow).

Pixel Shader EffectsEdit

It is likely possible to apply some simple pixel shader effects to the water to make it more realistic (like in Morrowind for example). More experience with DB's shader capabilities is needed to determine how effective and possible this is.


In-Land Water Texture TilesEdit

Originally, DF simply used basic textures to simulate water in-land. If the in-land water effects work well with a water plane, these textures can be ignored, making landscape texturing a little easier. Otherwise, a method of creating a consistent pattern of water textures in-land will have to be devised.


ToDoEdit

  • Test how a water plane intersects with land to see the shore line quality.
  • How good/bad does simply moving a water plane up/down look?
  • How difficult is it to adjust the water plane vertices to create waves? How long does it take?
  • What is the effect on performance of a seperate water plane (both transparent and not)?
  • Experiment with pixel shader water effects (including some performance metrics for comparison).