Development notes

VR Speed Reader Milestone 2: blurring the other words

In order to force the reader to focus upon the current word, but still be able to take advantage of information in their peripheral vision, we apply a blur to all words other than the current one. The blur is relatively subtle when not looking directly at the words, but very noticeable when they are brought into the fovea.

This was fairly straightforward and efficient – most of the delay in implementing it was diagnosing the Unity 5 bug mentioned in the previous post. The basic idea is borrowed from this Gamedev StackExchange post, which suggested using DepthMask. The principal is to render two quads, one with the sharp text, and right in front of it, another with the blurry text. Between rendering the sharp and the blurry quad, I render a special masking quad, which is located in front of both quads, but only renders to the depth buffer, not the color buffers. The result is that the front quad does not write any pixels to the locations where the masking quad is found. This allows me to mask any portion of the document I choose by simply moving the masking quad to that location.

In the screenshot/video below the blur effect is exaggerated for emphasis – in reality it would probably be preferable to have it be less severe. I experimented with moving my head while reading, and as expected the counter-rotation of my eyes continued to track the selected word in the text with no issue.



One thought on “VR Speed Reader Milestone 2: blurring the other words

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s