Henry has been one of the first content that I’ve tried on my Oculus Rift CV1. It is the experience that I used to show to every person when I introduced him/her to virtual reality: no risk of motion sickness, amazing graphics, and lots of feelings. A great work by Oculus Story Studio, for sure. That’s why when I heard that Oculus was going to publish a new version of Henry for Oculus Go, I could do nothing but try it.
Henry for Oculus Rift is a little masterpiece of graphical optimizations: this short movie has an amazing quality and is all rendered in real time by Unreal Engine. I remember having read an article at that time about all the optimizations and all the various rendering settings they had to employ to guarantee Henry running at 90Hz while rendering in real time. It was amazing.
So, how is it possible that such a complex scene can run on the not-so-powerful Oculus Go? The answer is: it is not possible. In fact, the version that Oculus has released for the Go is just a video that the app plays automatically. So, they have rendered the Oculus experience to a video and they are showcasing it for the Oculus Go. VR videos are not an amazing topic, but in this case, I’ll have to make an exception since also this video visualization is a matter of super-optimizations.
The author of the video encoding is, in fact, a god in person, that is John Carmack. Just for this reason, you should all watch Henry on the Oculus Go. He has developed a new technology to watch 5K x 5K stereoscopic videos at 60 Hz on the Oculus Go. This means that thanks to him, you can now watch amazing videos on your affordable headset. He has used a technology that he calls “dynamic encoding” and has explained what it does as follows
Basically, it makes a 2k x 2k baseline, then extracts the core 5k x 2k section (1k from each eye) and cuts it into 10 segments, of which only three plus the baseline are decoded at one time. Vsync locked frame release + low latency fast-path Audio 360 spatialization.
— John Carmack (@ID_AA_Carmack) May 25, 2018
I admit that when John Carmack speaks, I understand only 50% of what he says (I’m not godlike, yet), but I can understand that the trick is not decoding the whole video at each frame, but only a part of it, this way it is possible to spare computational resources and everything can run at a very high resolution and framerate even on the Oculus Go.
Someone has argued that Visbit, that runs on the more powerful Vive Focus, already streams 8K videos, and Carmack has burnt them this way
Anyone touting 8k video on VR headsets has an immediate credibility problem, because any pixels above 5k are beyond the display resolution, and actually detrimental due to increased aliasing.
— John Carmack (@ID_AA_Carmack) June 2, 2018
I tried Visbit player and I can tell that it works well, even if I agree with Carmack that current VR headsets have a so limited resolution that going beyond a certain limit with the video player starts having no sense.
Anyway, the video technology developed by the god is not used to stream Henry’s video: the video content is downloaded and played locally for increased performance. As forecasted by the above tweet, the download size is pretty heavy and the final size of the video is 1.3 GB. Carmack states that it could have been made with a higher bitrate for an even better visual quality, but he decided to keep the file size decent to not make the download too heavy.
This is encoded at CRF 22 to keep the size down to 1.3 GB for reasonable download size. If you were building for location based use, I would use a good bit more bitrate.
— John Carmack (@ID_AA_Carmack) June 11, 2018
The original file size, in fact, is around 7.8 GB… it would saturate almost all the disk space of my Go!
The 5760×5760 master is 7.8 GB. The dynamic 5k at CRF 18 is 2.3 GB.
— John Carmack (@ID_AA_Carmack) June 11, 2018
That said, how is Henry on Oculus Go? And how does it compare with the Rift’s version?
Well, today I watched the Go version and then I re-watched the Rift version to be able to make a comparison. And the final judgment is that the Rift version is obviously better: it is more realistic and more immersive.
The Henry version on Oculus Go has the following problems:
- All the intro has been cut out. I think that this has been made to keep the file size as little as possible, but this comes at the cost that there’s no more Elijah Wood telling you why Henry is sad and can’t make friends, you miss the sense of the story. Also, the initial part with the ladybug flying around you has been removed, I guess also because the ladybug flies towards the floor and following it you would see all the distortions of the lower part of the video;
- The video shows all the issues of 360 videos: the more you look further from the center, the more everything becomes distorted. When you look straight up or down, you obtain the maximum distortions. If in the Henry video you look below you, you feel as if there were a curved valley under your feet and that’s disturbing. It is a bit like living inside a sphere and that’s strange;
- If you try tilting your head, your eyes start crossing and they can eventually explode;
- All the lighting magic of the real-time rendering here is not possible, so all the materials appear a bit duller than in the PC version;
- It is 3 DOF. When reviewing the Go, I said that most of the time in Go’s apps I haven’t felt the absence of the positional tracking, while in Henry I really missed it. Since it is an emotional experience, I wanted to come closer to the main character, but it was not possible and that broke the magic.
For these reasons, I found the Go version of Henry less immersive than its Rift counterpart. It is a matter of presence: after having watched Henry on the Go, I played the Rift version on the PC and after some minutes I started feeling empathy for the hedgehog, I felt his sadness. This hasn’t happened for me on the Go: it is not something that I chose, it is something that has happened spontaneously, so I guess that all the added realism of the PC version led to more immersion and so also more presence. The magic was never broken, so I really felt like living with a cute sad hedgehog.
Comparisons apart, the work that Carmack has made is a little masterpiece. If you haven’t ever seen Henry on Rift, for sure you would remain amazed by watching it on the Go. First of all, the story of Henry is very emotional and for sure you’ll fall in love with this hedgehog that is celebrating his birthday without friends. Then the video quality is fantastic: if you look forward, with your head straight, the graphical appearance is amazing. If you don’t tilt your head in any direction, but you only rotate it to look to the left or to the right, you just say “WOW”. There are actually some parts where this version can compare with the real-time PC version. John Carmack wanted to raise the bar for video consumption on low power devices and he reached that goal for sure. I tried watching other videos on the Go for comparison and this one outperforms them for sure. It is great what he has been able to make, the results are impressive. I really hope that Oculus will release more videos employing this technology.
And it is also interesting to notice all the tricks they’ve used to try to adapt this experience to a video version: for instance, the upper part of the house appears more lighted so that everything appears a bit blurred and you notice less the enormous distortions that are in the upper part of the video. Or, as I’ve said, Oculus has removed the initial part with the ladybug flying around you, because it would have had a bad effect inside a video.
I liked Henry on Go and I think that I’ll use it to introduce people to this device. I advise you to give Henry a Go (pun intended): if you are interested, you can find it here. Be ready to be amazed by video quality .
(Header image by Oculus)
The post Henry for Oculus Go review: a step forward for VR videos playback appeared first on The Ghost Howls.