Virtual Reality Horror Game


Contrast Adjustment

Use the number pad: 7 increases contrast in the left eye, 1 decreases it. 9 increases the contrast in the right eye, 3 decreases it.

Main Game

Left analog stick to move, right analog stick to move camera. Note: it's more comfortable to turn your head.

The A button turns on the flashlight. The B button picks up keys. When the player is close enough to the radio, it will toggle it on and off. The left trigger button allows the player to run.

IMPORTANT NOTE: The game will prompt the player to press start. Sometimes, when this happens, the screen will (in yellow text) display, "Hit 'return' to reset'", and the player will not be able to move. In order to nullify this effect, press shift.


The developers of this game are horror enthusiasts. So, naturally, when the opportunity to take the virtual reality class came about, they wanted to create a horror game for the Oculus Rift. The goal was to experiment with the different ways that an immersive experience like the Oculus could enhance the scare factor for the users.

Simulating Scotopic and Photopic Vision

The main focus of this project is to attempt to simulate human low light vision and the transition between scotopic and photopic vision.

A Shader for the Transition

The main effect for this transition is a luminosity adapter developed by Eugene Parkov. His shader and research can be found here. The effect takes the current luminosity of the view from the camera and gradually applies changes based off of what has been in view before. For example, if you were staring at a well-lit scene, then you turned away from the light, you would see complete darkness until your eyes have become adjusted. If you were to become adjusted to the darkness and turn on a flashlight, you would become blinded since the intensity is way brighter than what you have adjusted to, and thus your eyes must adjust again.

Parkov’s shader was incomplete for a realistic simulation of the scotopic to photopic transition. The shader provided a single transition time from light to dark and from dark to light. In reality, the transition from scotopic to photopic (a few seconds) is a lot shorter than the transition from photopic to scotopic (a few minutes). Thus, to supplement this, we added a script that changes a light centered on the player so extend the photopic to scotopic transition. The light will be completely black when the user is in photopic vision mode, and will gradually transition to a low ambient light when the user needs to transition to scotopic mode. When the player swaps back to photopic mode, the Parkov shader is able to handle the effect in a realistic amount of time, so the light just quickly shifts to complete black to prepare for the next transition to scotopic.

Adding this extra light works well with the Parkov shader, since the shader primarily amplifies the current luminosity of the scene when the player is looking at a scene below a certain threshold of luminosity. Since the light is completely black in a completely black scene, there is no luminosity for the Parkov shader to amplify, thus the shader will seem to have no effect. As light is slowly added to the surroundings of the player, the shader is able to pick up that this added light is below the threshold of luminosity and correctly amplifies it so the surroundings can be seen.

In order to make scotopic vision useful for the player, the in-game transition from photopic to scotopic is about 5 times as fast as the transition from scotopic to photopic, much faster than the actual transition speed in real life. The scotopic vision can be easily lost if the player encounters a well-lit area, thus making it risky to re-enter a dark corridor. In a horror setting, where the ability to see where you are going could make the difference between victory and game over, the player is a lot more dependent on scotopic vision if they do not want to be running away from what is chasing them by using a light.

The Black Smear Problem

The first problem with developing low light games for the Oculus Rift is the blurring of pure black pixels as the player moves around in the low light. This is an artifact from the Oculus LEDs turning off when set to a pure black value. The LEDs are unable to turn on fast enough to create smooth transitions. To remedy this, a shader needs to be applied to prevent black pixels from ever being true black.

We are using a modified version of a package from DrashVR, found here. The provided shader alters the contrast and the brightness of the final image, completely removing black pixels from the equation. We altered the shader such that it can apply custom adjustments for each eye, and the user can set these at the beginning of the game. It is important that the correction for the black smear is applied after the Parkov luminosity shader, so the correction is not picked up by the Parkov shader as a change in the luminosity of the scene.

Contrast Sensitivity

After applying both the corrections above, we discovered that difference people have different perceptions of subtle contrast and color differences. Not only do these vary from person to person, but also from eye to eye. For example: when one person is in the game with no contrast corrections, they may report that their right eye is unable to see anything in the darkness while their left eye sees just fine. However, when another person tries, they could report the opposite. This is attributed to a human inability to detect subtle differences in gradation, which is the key component for creating scotopic vision in VR. Given the results of having many people try the game, a small difference in contrast of one eye can determine if the player can successfully perceive the simulated scotopic vision in game.

Why Scotopic Vision in VR

In many games for the Oculus Rift, scenes are bright and colorful. Low light isn’t too terribly important for most genres; however, in horror survival, it is a must. Simulating the transition between scotopic and photopic vision increases the immersion in the horror environment as well as provides an interesting set of mechanics that can both help and hinder the player’s ability to achieve his/her goal. Without scotopic vision implemented, moving through a dark alley in a game can be very difficult, and natural scotopic vision may not trigger for a half hour or more. Thus, computer assistance is needed in order to simulate the low light vision in a timely fashion that maintains the feel of the game.

Further Questions

It is untested if human scotopic vision will even be able to make out objects in a dark VR experience. Since the scene is controlled by the LEDs, would you see the scene in scotopic vision, or would you see the insides of the Oculus Rift?

Edge detection would probably be a better simulator for scotopic vision. Using it to lightly shade the edges of objects would probably provide a more realistic feel. However, would this increase the need for black smear correction? What happens when contrast needs to be added and the color of objects start becoming noticeable? Will it take away from the experience?