Render an Oculus Cube Map using CV-VRCam

Photo of Rick Barrett

Instructor Rick Barrett

Share this video
  • Duration: 09:03
  • Views: 8590
  • Made with Release: 17
  • Works with Release: 15 and greater

Render Oculus VR Cube Maps with CV-VRCam 1.5 and greater

Cube Maps are a popular format for virtual reality stills, and are natively supported by the Oculus 360 Photos app, the Orbx viewer and several third-party viewers. Cube maps offer higher resolution and less distortion than the equirectangular maps typically used for video.

In this tutorial, we’ll create a cube map from an environment created by Mike Winkelman aka Beeple.
Beeple Resources



- Cube Maps are a popular format for virtual reality stills and are actively supported by the Oculus 360 Photos app, the Orbx Viewer and several third party viewers. Cube Maps offer higher resolution and less distortion than the Equirectangular Maps typically used for video. In this tutorial I will create a Cube Map for an environment created by Mike Winkelmann a.k.a. Beeple. Beeple's created tons of great environments. In fact he creates a new render each day. And he's made a lot of his source files available to everyone under the Creative Commons at his site For this example we'll use the MOONVIRUS scene. Once you download and extract that file we can open it up in Cinema 4D and we'll begin creating a Cubic Map for this environment. The first thing you'll need to do is go to Plugins, CV-VRCam, Merge Camera Rig . And this Camera Rig isn't actually strictly necessary. You can simply use the camera that's already built into the scene but the camera rig makes it a little bit easier to view the scene in all the various directions. Before we mess with it though let's go ahead and get in positioned within the scene. And I often like to simply make it a child of whatever camera is already existing in the scene. And go in and zero out all the coordinates so that it is directly in the same position as that camera. I notice here also that this camera does have a Vibrate tag applied. I'm actually only going to be rendering a still so it doesn't really matter but I'm going to go ahead and remove that now because we're typically not going to want to have something like a Vibrate tag on a VR render. Now with the VR cam positioned I can go ahead and view this. The Forward view, the Left view, the Reverse view, Right, Up and Down. Just to get an idea of how this scene is going to look like from all the various perspectives. I went ahead and scrubbed my time-slider to frame 280 here because I like that position within the environment. And again for a Cubic Map we're only concerned with rendering a still image from one specific vantage point. You can adjust the rotation of the camera if you would like to reposition the forward view as someone begins looking at the scene. I like it right here at the default orientation. Now we just need to make sure that the Forward Cam is active and we'll go ahead and jump into CV-VRCam and choose to create the Render Settings. And this is going to add some default render settings into the scene for common output types. We're going to go out to Cubic VR and I'm going to use the 1536s preset. This preset will export a Stereo Cubic image with each cube face 1536 by 1536. Because the Stereo Cube Map includes 12 faces and they're aligned in a horizontal strip, our total width is going to be 1536 times 12 or 18,432. Now that is a very large image and as we've talked about before, high resolution is essential in VR because you're stretching this image all the way around the viewer. If you want to save some render time for previews, there is a half-size preset already loaded in here at 768s. Or you can also output to the Cubic Mono formats. So here we have our 1536s preset and if we jump into CV-VRCam here, we can see that we're outputting in a Cubic Mode with Stereo, default Eye Separation and there is an option here for Cubic Edge Fixup. This is an option that for the most part you can just leave at the default of Warp but it does provide a few different ways that we internally calculate the image that might eliminate some artifacts if they show up in your particular project. An even more important concern when it comes to eliminating artifacts is your Anti-Aliasing settings. Cinema 4D doesn't allow us to restrict the Anti-Aliasing to each side of the cube or each pane of the Cube Map. So with certain Anti-Aliasing settings it will actually smear the pixels across the scene and create a visible seam when you view the map through the Cubic Map viewer. For that reason we recommend starting with Geometry Anti-Aliasing and a Cubic Filter with a Custom Size. And these settings will avoid any seam artifacts. Now of course Geometry AA is rarely enough and you'll often need to go into Best Anti-Aliasing. And in my testing I've found that you can use Best Anti-Aliasing at any level as long as you use a Cubic Filter and you set the filter width to one or less. The filter height can actually be much higher. As high as you want. Because the seams are all horizontal so they're all in the width direction. Alternatively you can also use the Sinc filter, but if you use the Sinc filter, the filter width needs to be limited to 0.5 . So I've found that your best results are going to come from the Cubic Filter with a Filter Width of one. And of course if you see visible seams, this is the first thing that you might need to check in order to fix those. Now unfortunately the Physical render is going to smear those seams every single time. So the one solution I have found for that when you need to render using the Physical render is to render at twice the Resolution, which I know is huge but you can often render with lower Render Settings and when you scale down you'll eliminate not only those seam artifacts but also some of the visible noise that you might get from the lower Render Settings. In this case we're going to stick with the Standard size and the Standard render engine. And again, we're using Best Anti-Aliasing one by four with a Cubic Filter that's also one by four. Now, one of the new feature of CV-VRCam is the Pole Merging which will actually eliminate the Stereo effect at the Top and the Bottom in order to minimize the distortion that that could cause. The default settings are a good starting point but if you continue to see distortion, you can jump into a higher Exponent, a lower Merge Angle or you can switch the Merge Mode to Linear which will cause the effect to not be as gradual but it will eliminate the distortion entirely. In this case we don't need to worry too much about the Pole Merging because there's nothing above the camera and only one single grid-line below the camera. So I think we can just stick with the default settings. So with all our settings dialed in we'll go ahead and render this out to the Picture Viewer. And this particular scene renders fairly quickly which is one of the reasons why I chose it. It's a great test scene and it looks really awesome in VR. While this is rendering I want to remind you that CV-VRCam currently works with the Standard or Physical render engine and it doesn't currently support Sketch and Toon or Hair. Those are some limitations we're working on fixing for a future release but in the meantime you'll need to work around them. Another thing to keep in mind is that Cubic Map rendering is natively supported within Octane. In fact on the Camera you can simply add a Octane tag, OctaneCameraTag. Set your Camera type to Panoramic and in the Panoramic tab, set your Camera Mode to Cube Map. And that's going to output the same type of Cube Map that you can view on the Oculus 360 Photos app. This render is just about complete and as soon as it does complete what we're going to do is save it out as a PNG file. On my machine here which does have an Oculus Rift I can save it directly into the Pictures folder inside of OculusPhotos. And I'm going to go ahead and call this "Beeple-Moonvirus." Now, if you have a Gear VR you can save this in your Oculus 360 Photos folder for the 360 photos viewer or within the Orbx Media folder if you want to use the Orbx viewer. And I do recommend the Orbx Viewer on the Gear VR, it's excellent. Here in the Oculus Rift I'm simply going to go to the 360 Photos app and in the app here I can choose My Photos, OculusPhotos and we'll choose Beeple-Moonvirus which we just rendered and now we can view the scene in 360 VR on the Oculus Rift. So with CV-VRCam it's easy to render Cube Maps and transport your viewers into a 3D environment that you've created.
Resume Auto-Scroll?