# Immersive Virtual Reality Experience of Historical Events Using Haptics and Locomotion Simulation
## 2 Materials and Methods  
### Design of the Virtual Environment  
For the development of our system, we used the Unreal Engine 4 (UE4) [30]. It includes an editor for creating and managing scenes (levels), materials, characters, animations, and so forth. The engine allows being modified by plugins, written in C++, so that a developer can extend the functionality or graphical user interface if needed. The virtual reality system we utilized was HTC Vive. The Vive components we deployed in our application were a Head-Mounted Display (HMD) for the visualization of our scene, the Vive base stations for room-scale tracking and the Vive trackers for tracking the wrist position and rotation.  
The virtual environment consists of two parts. The first is a visualization of the underwater site where the mechanism was found, and the second is on the ship carrying it. Both scenes are represented in a descriptive way and are not historically accurate because the goal was to present the general idea of the potentials of such a system.  
The underwater virtual scene is populated with 3D models that represent the various artifacts that divers recovered from the wreck throughout the years such as bronze and marble statues, ceramic jars, bronze and silver coins, and the mechanism itself [31]. It also contains flora and fauna typical of a sea bottom. For an enhanced underwater effect we used the UE4 Volumetric Fog that computes density and lighting at every point in the camera frustum, for any media included and taking into account any number of lighting affecting the fog. This scene was designed in a more game-like manner allowing us to examine if it would help the users be more engaged in the procedure. The goal is to find a certain object to proceed to the next scene. While the user navigates in the scene they find various findings and can read information about them as shown in Figure 1.  
The scene on the ship was designed on the basis that the user will be able to navigate freely on the vessel and interact with certain elements. All individual elements follow the laws of physics. The vessel itself has a buoyancy component and moves according to the waves. Some of the elements the user can interact with are:* **Steer the wheel**: the user can grab the wheel with both their hands and navigate the ship (Figure 2). The ship contains two thrusters, left and right, which give the necessary turn force depending on the wheel's rotation (Figure 2(a));
* **Look through the binoculars**: When the user goes to the binoculars he can look through them. A render texture is added to the viewport that is taken from a camera with a higher depth ratio so that everything appears closer;
* **Use the Antikythera Mechanism**: The user can grab the reconstructed mechanism and rotate it to see the positions of the various stars and planets. Additional information will be given to the user to understand how the mechanism works and what each gear represents (Figure 2(b)).  
Both scenes have realistic lighting rendering and various weather conditions can be applied to them such as rain, snow, wind, and so forth. In the underwater scene, large-scale ray-traced water caustics will be implemented in real-time using cascaded caustic maps, a hybrid method using ray tracing and rasterization, which allows water caustic coverage to wide view distance in real-time [32]. Special effects like smoke, fire, and underwater toroidal bubbles are implemented via the UE4 Cascade Particle System, a fully integrated and modular particle effects editor for real-time editing of various complex effects.