It is undeniable – VR is rapidly becoming a part of our everyday life just like grocery shopping. It’s no longer a futuristic, unreachable, exclusive technology only the very privileged can afford by spending hundreds of dollars on the Oculus Rift and the few high-end devices that can handle high-quality VR experience. I’ve been lucky enough to get a front-row seat in the industry to watch how – in two years’ time – VR went from a few-minute experimental movie promotion to medical treatments backed with billions. VR is here, available to anyone, there are dozens of VR glasses that are compatible with most smartphones, available from $10 to $100, and you can spend hours browsing all the VR content you can download for free.
Now that I made sure you know what you already know, that VR is hip and popular, let’s get to the point and see what this article is about, and who I am addressing. In this article, I would like to demonstrate how you can easily turn your 3D scene into a VR experience – more exactly, into an interactive 360-degree spherical image which you can view with or without your VR glass, look around in the scene, navigate, teleport yourself into the 3D world you created. At work we use EXR outputs of the scene we rendered in our 3D application, and it usually ends up in a game engine – preferably in Unreal or Unity – and as the foreground elements are added, the compositing is done and the scene is optimized, we can test the VR experience on different platforms. But now I wouldn’t really get into this, because this article focuses on how we can turn our scene into (monoscopic) VR in a few steps, using Facebook’s or YouTube’s ability to turn images/videos into 360-degree content, without having to buy any interactive panorama converter.
For this demonstration, I’m using a 3D environment I made in e-on software’s Vue Infinite 2015, featuring our Mountain Lake Scene Set and an EXR skydome I had in my library and I’m allowed to use :). In a nutshell, I was curious about how Mountain Lake would look like with environment mapping, so I loaded the scene, switched to Environment Map, loaded the .exr as the skydome, set the scene for image-based lighting and tweaked the lighting until I got acceptable results. I placed a camera somewhere in the middle of the lake, a few meters above the water, enabled Panoramic view (360-degree) and Spherical render (180-degree) in the Render Options, set up a decent quality, and rendered the scene at 4K. That’s the minimum I recommend for our purpose, but if you have time, 8K looks even better.
Note: if you are a professional or if you use Vue on a regular basis, I assume you know how to follow these steps. In case something is unclear, don’t hesitate to ask!
Uploading Panorama Render to Facebook
When you’re scrolling through your Facebook timeline in your lunch break or whenever you have a few minutes of boredom to check what your buddies are up to, I’m pretty sure you’ve come across several 360-degree photos your friends posted – panoramas you can drag with your mouse, or navigate by turning and tilting your phone. It’s a fairly new feature, it’s pretty cool, only the image quality needs some improvement, so we can view the image with our VR glasses after dinner as well. As a 3D artist, I bet your first thought was “Can I do the same with my 3D renders?” – Yes, you can. Is Facebook going to recognize that it’s a panorama render? Well, not really… not without a little tweak.
The difference between a panorama photo and a panorama render is that the EXIF data of the panorama photo you took with your camera or phone contains the metadata necessary for 360-degree conversion. In your image file, this metadata is missing, and without it, your image is just a 4K 2:1 image. The panorama won’t be recognized.
Adding the missing data
The easiest way to make your render ready for conversion is to “assign” it to a certain camera manufacturer and model that is compatible with the platform. One of them is the Ricoh Theta 360-degree camera. Before walking you through the steps, I need to tell you that this works with .jpg format only, so if you saved your render in another format, convert it or re-save it in .jpg. The process is easy: right-click on your image and select “Properties”. Go to the Details tab, where the metadata can be found. If you scroll down a bit, you’ll see the Camera details, which is totally blank, of course, but luckily, you can modify it.
To the Camera Maker field, type Ricoh, and to the model, type RICOH THETA S. Click Apply, then OK.
Now you have all the data you need, you can upload your render to Facebook, just like any other image, and you will see that this time, your render will appear as an interactive 360-degree image.
This is a nice and easy method to convert your render into an interactive 360-degree panorama, but there’s a downside. Facebook’s strong compression and conversion to HD will cause a significant quality loss, resulting in compression artifacts (and nausea). That’s why it’s better to upload your render to YouTube, where you can view it at 4K… and you can also share it on Facebook.
Converting your render into a compatible 360-degree video
If we want a better quality experience, we can also turn our still render into an interactive 360-degree video. This way, we can view our image at a higher resolution, and we’ll have a much more pleasant VR experience.
The first step is to make a video file of your render. There are several ways and tools to do this; I used Adobe After Effects. I loaded the image, dragged it into the composition, set a duration of 5 seconds (it doesn’t really matter how long, since the video is one static image, but 5 seconds doesn’t take long to render), and exported the composition to Media Encoder render queue. In Media Encoder’s Export Settings, I unticked Export Audio, since I didn’t add any audio file to the video. In Basic Video Settings, I ticked Render at Maximum Depth and Use Maximum Quality. Here you have several options to output your video, and you can also pick from dozens of presets. There is also a 4K YouTube preset you can use, just make sure you adjust the resolution if needed, untick audio and tick maximum depth and quality. The video was saved in .mp4 format, and it was almost ready to be uploaded to YouTube.
Adding the missing data
Just like photos, videos also need a certain metadata to be compatible with 360-degree playback. For this, you need to download an application called Spatial Media Metadata Injector. At Google’s Support page, you can find the instructions and the download links for Windows and Mac. When you open the application, you will see three options (for spherical video, stereoscopic 3D and video with spatial audio). First, click on Open and load the video file, then select the first option only (spherical 360). After this, click on Inject metadata.
Your video will be saved in the same format in the same directory, with “_injected” added to the end of the file name by default, but you can also enter a name yourself. NOW the video is ready to be uploaded. YouTube will recognize the metadata, and will convert the video into an interactive 360-degree video which you can view at max. 4K.
If you want to share it on Facebook, you can share the link to the YouTube video, this way you can avoid Facebook’s awful image and video compression.
Making a 360-degree video of your render also has a downside. Whenever the video ends, suggested videos pop up, so it’s better to remind your viewers to pause the “video” to view your scene and navigate. This is just a little inconvenience, but good to know.
These are the two easiest ways of several methods to turn your 3D scene into interactive spherical panorama. I already started making much more 360-degree scenes (not just what you see in the main camera view), and though rendering takes a while, seeing your render in virtual reality is very rewarding and entertaining.
If you know any other good methods, feel free to share it! Thank you for reading this post. Go have some fun!