Simply put: because a program for the Vive needs to run at 90 frames per second on two screens. Let’s see where this number comes from and put it in some perspective.
Your average show on cable tv runs at around 25 frames per second, which is enough to give a credible illusion of movement if you’re just watching. In computer games, you’re not just passively watching, you’re also interacting with the game, and so a higher frame rate is desirable. After all, at 25 frames per second, any input you provide to the game might take up to 40 ms to have any visible effect in the game, which can make the game feel unresponsive. In most video games, up to 60 frames per second will suffice to make the game feel good.
In Virtual Reality, the game doesn’t only need to deal with button presses, but with users moving their heads and expecting the image to change in response to this. In the real world, this response is near instant, the limiting factor is the speed at which our brains are capable of processing new imagery. Failing to deliver this responsiveness in VR will not only make the game feel sluggish, it can cause nausea over time, and make the entire experience an unpleasant one, an effect that is called “Virtual Reality Sickness”, and has some similarity with motion sickness.
For this reason, the displays inside the HTC Vive run at a refresh rate of 90Hz, which means they draw a new image 90 times per seconds. To take full advantage of this, the program needs to keep up with this, and be able to provide a new image 90 times per second.
This is not all there is to it though: VR headsets contain two screen, one for each eye. These screens display different images, corresponding to the different positions of the eyes in the face, which is what gives us a sense of depth in vision. Thus, 90 times per second the program has to update the state of the world, i.e. where the user is, what the orientation of his head is, where objects in the world are, etc. But for each of those frames, the program has to generate two separate images, each from a different position in the world, and so 180 different images are generated per second. A PC needs quite a hefty CPU and GPU to be able to do this.
This requirement is not only a challenge to the consumer’s wallet, it is also a challenge to developers of VR applications, as a lot of work needs to be put into optimizing the program to achieve this frame rate. More on this in a later blog post.